Cmdlets SFB

You might also like

You are on page 1of 4234

Contents

Reference
skype
Add-CsSlaDelegates
Approve-CsDeviceUpdateRule
Backup-CsPool
Clear-CsDeviceUpdateFile
Clear-CsDeviceUpdateLog
Clear-CsOnlineTelephoneNumberReservation
Clear-CsPersistentChatRoom
Complete-CsCceApplianceRegistration
Complete-CsCceApplianceUnregistration
Convert-CsUserData
ConvertTo-JsonForPSWS
Copy-CsVoicePolicy
Debug-CsAddressBookReplication
Debug-CsDataConference
Debug-CsInterPoolReplication
Debug-CsIntraPoolReplication
Debug-CsLisConfiguration
Debug-CsStorageServiceFailures
Debug-CsUnifiedContactStore
Disable-CsAdDomain
Disable-CsAdForest
Disable-CsComputer
Disable-CsHostingProvider
Disable-CsMeetingRoom
Disable-CsOnlineDialInConferencingUser
Disable-CsOnlineSipDomain
Disable-CsPublicProvider
Disable-CsUser
Enable-CsAdDomain
Enable-CsAdForest
Enable-CsComputer
Enable-CsHostingProvider
Enable-CsMeetingRoom
Enable-CsOnlineDialInConferencingUser
Enable-CsOnlineSipDomain
Enable-CsPublicProvider
Enable-CsReplica
Enable-CsTopology
Enable-CsUser
Export-CsArchivingData
Export-CsAutoAttendantHolidays
Export-CsConfiguration
Export-CsLisConfiguration
Export-CsOrganizationalAutoAttendantHolidays
Export-CsPersistentChatData
Export-CsRgsConfiguration
Export-CsUserData
Find-CsGroup
Find-CsOnlineApplicationInstance
Get-CsAccessEdgeConfiguration
Get-CsAdContact
Get-CsAdditionalInternalDomain
Get-CsAdDomain
Get-CsAddressBookConfiguration
Get-CsAddressBookNormalizationConfiguration
Get-CsAddressBookNormalizationRule
Get-CsAdForest
Get-CsAdminRole
Get-CsAdminRoleAssignment
Get-CsAdPrincipal
Get-CsAdServerSchema
Get-CsAdUser
Get-CsAllowedDomain
Get-CsAnalogDevice
Get-CsAnnouncement
Get-CsApplicationEndpoint
Get-CsArchivingConfiguration
Get-CsArchivingPolicy
Get-CsAudioConferencingProvider
Get-CsAudioTestServiceApplication
Get-CsAuthConfig
Get-CsAutoAttendant
Get-CsAutoAttendantHolidays
Get-CsAutoAttendantStatus
Get-CsAutoAttendantSupportedLanguage
Get-CsAutoAttendantSupportedTimeZone
Get-CsAutoAttendantTenantInformation
Get-CsAutodiscoverConfiguration
Get-CsAVEdgeConfiguration
Get-CsBackupServiceConfiguration
Get-CsBackupServiceStatus
Get-CsBandwidthPolicyServiceConfiguration
Get-CsBlockedDomain
Get-CsBroadcastMeetingConfiguration
Get-CsBroadcastMeetingPolicy
Get-CsBusyOptions
Get-CsCallerIdPolicy
Get-CsCallingLineIdentity
Get-CsCallParkOrbit
Get-CsCallViaWorkPolicy
Get-CsCdrConfiguration
Get-CsCertificate
Get-CsClientAccessLicense
Get-CsClientCertificate
Get-CsClientPinInfo
Get-CsClientPolicy
Get-CsClientVersionConfiguration
Get-CsClientVersionPolicy
Get-CsClientVersionPolicyRule
Get-CsCloudCallDataConnector
Get-CsCloudCallDataConnectorConfiguration
Get-CsCloudMeetingPolicy
Get-CsClsAgentStatus
Get-CsClsConfiguration
Get-CsClsRegion
Get-CsClsScenario
Get-CsClsSearchTerm
Get-CsClsSecurityGroup
Get-CsCommonAreaPhone
Get-CsComputer
Get-CsConferenceDirectory
Get-CsConferenceDisclaimer
Get-CsConferencingConfiguration
Get-CsConferencingPolicy
Get-CsConfigurationStoreLocation
Get-CsConversationHistoryConfiguration
Get-CsCpsConfiguration
Get-CsDatabaseMirrorState
Get-CsDeviceUpdateConfiguration
Get-CsDeviceUpdateRule
Get-CsDiagnosticConfiguration
Get-CsDiagnosticHeaderConfiguration
Get-CsDialInConferencingAccessNumber
Get-CsDialInConferencingConfiguration
Get-CsDialInConferencingDtmfConfiguration
Get-CsDialInConferencingLanguageList
Get-CsDialPlan
Get-CsEffectivePolicy
Get-CsEffectiveTenantDialPlan
Get-CsEnhancedEmergencyServiceDisclaimer
Get-CsExternalAccessPolicy
Get-CsExternalUserCommunicationPolicy
Get-CsExUmContact
Get-CsFileTransferFilterConfiguration
Get-CsFIPSConfiguration
Get-CsGraphPolicy
Get-CsGroupPickupUserOrbit
Get-CsHealthMonitoringConfiguration
Get-CsHostedVoicemailPolicy
Get-CsHostingProvider
Get-CsHuntGroup
Get-CsHuntGroupTenantInformation
Get-CsHybridApplicationEndpoint
Get-CsHybridMediationServer
Get-CsHybridPSTNAppliance
Get-CsHybridPSTNSite
Get-CsImConfiguration
Get-CsImFilterConfiguration
Get-CsImTranslationConfiguration
Get-CsIPPhonePolicy
Get-CsKerberosAccountAssignment
Get-CsLisCivicAddress
Get-CsLisLocation
Get-CsLisPort
Get-CsLisServiceProvider
Get-CsLisSubnet
Get-CsLisSwitch
Get-CsLisWirelessAccessPoint
Get-CsLocationPolicy
Get-CsManagementConnection
Get-CsManagementStoreReplicationStatus
Get-CsMcxConfiguration
Get-CsMediaConfiguration
Get-CsMeetingConfiguration
Get-CsMeetingMigrationStatus
Get-CsMeetingRoom
Get-CsMobilityPolicy
Get-CsNetworkBandwidthPolicyProfile
Get-CsNetworkConfiguration
Get-CsNetworkInterface
Get-CsNetworkInterRegionRoute
Get-CsNetworkInterSitePolicy
Get-CsNetworkRegion
Get-CsNetworkRegionLink
Get-CsNetworkSite
Get-CsNetworkSubnet
Get-CsOAuthConfiguration
Get-CsOAuthServer
Get-CsOnlineApplicationEndpoint
Get-CsOnlineApplicationInstanceAssociation
Get-CsOnlineApplicationInstanceAssociationStatus
Get-CsOnlineDialInConferencingBridge
Get-CsOnlineDialInConferencingLanguagesSupported
Get-CsOnlineDialinConferencingPolicy
Get-CsOnlineDialInConferencingServiceNumber
Get-CsOnlineDialinConferencingTenantConfiguration
Get-CsOnlineDialInConferencingTenantSettings
Get-CsOnlineDialInConferencingUser
Get-CsOnlineDialInConferencingUserInfo
Get-CsOnlineDialInConferencingUserState
Get-CsOnlineDialOutPolicy
Get-CsOnlineDirectoryTenant
Get-CsOnlineDirectoryTenantNumberCities
Get-CsOnlineEnhancedEmergencyServiceDisclaimer
Get-CsOnlineLisCivicAddress
Get-CsOnlineLisLocation
Get-CsOnlineNumberPortInOrder
Get-CsOnlineNumberPortOutOrderPin
Get-CsOnlinePSTNGateway
Get-CsOnlinePstnUsage
Get-CsOnlineSchedule
Get-CsOnlineSipDomain
Get-CsOnlineTelephoneNumber
Get-CsOnlineTelephoneNumberAvailableCount
Get-CsOnlineTelephoneNumberInventoryAreas
Get-CsOnlineTelephoneNumberInventoryCities
Get-CsOnlineTelephoneNumberInventoryCountries
Get-CsOnlineTelephoneNumberInventoryRegions
Get-CsOnlineTelephoneNumberInventoryTypes
Get-CsOnlineTelephoneNumberReservationsInformation
Get-CsOnlineUser
Get-CsOnlineVoicemailPolicy
Get-CsOnlineVoicemailUserSettings
Get-CsOnlineVoiceRoute
Get-CsOnlineVoiceRoutingPolicy
Get-CsOnlineVoiceUser
Get-CsOrganizationalAutoAttendant
Get-CsOrganizationalAutoAttendantHolidays
Get-CsOrganizationalAutoAttendantStatus
Get-CsOrganizationalAutoAttendantSupportedLanguage
Get-CsOrganizationalAutoAttendantSupportedTimeZone
Get-CsOrganizationalAutoAttendantTenantInformation
Get-CsOutboundCallingNumberTranslationRule
Get-CsOutboundTranslationRule
Get-CsPartnerApplication
Get-CsPersistentChatAddin
Get-CsPersistentChatCategory
Get-CsPersistentChatComplianceConfiguration
Get-CsPersistentChatConfiguration
Get-CsPersistentChatEligiblePrincipal
Get-CsPersistentChatEndpoint
Get-CsPersistentChatPolicy
Get-CsPersistentChatRoom
Get-CsPersistentChatState
Get-CsPinPolicy
Get-CsPlatformServiceSettings
Get-CsPool
Get-CsPoolBackupRelationship
Get-CsPoolFabricState
Get-CsPoolUpgradeReadinessState
Get-CsPresenceManagementState
Get-CsPresencePolicy
Get-CsPresenceProvider
Get-CsPrivacyConfiguration
Get-CsProxyConfiguration
Get-CsPstnUsage
Get-CsPublicProvider
Get-CsPushNotificationConfiguration
Get-CsQoEConfiguration
Get-CsRegistrarConfiguration
Get-CsReportingConfiguration
Get-CsRgsAgentGroup
Get-CsRgsConfiguration
Get-CsRgsHolidaySet
Get-CsRgsHoursOfBusiness
Get-CsRgsQueue
Get-CsRgsWorkflow
Get-CsRoutingConfiguration
Get-CsServerApplication
Get-CsServerPatchVersion
Get-CsServerVersion
Get-CsService
Get-CsSimpleUrlConfiguration
Get-CsSipDomain
Get-CsSipResponseCodeTranslationRule
Get-CsSite
Get-CsSlaConfiguration
Get-CsStaticRoutingConfiguration
Get-CsStorageServiceConfiguration
Get-CsTeamsCallingPolicy
Get-CsTeamsCallParkPolicy
Get-CsTeamsClientConfiguration
Get-CsTeamsGuestCallingConfiguration
Get-CsTeamsGuestMeetingConfiguration
Get-CsTeamsGuestMessagingConfiguration
Get-CsTeamsInteropPolicy
Get-CsTeamsMeetingBroadcastConfiguration
Get-CsTeamsMeetingBroadcastPolicy
Get-CsTeamsMeetingConfiguration
Get-CsTeamsMeetingPolicy
Get-CsTeamsMessagingPolicy
Get-CsTeamsUpgradeConfiguration
Get-CsTeamsUpgradePolicy
Get-CsTeamsVideoInteropServicePolicy
Get-CsTelemetryConfiguration
Get-CsTenant
Get-CsTenantDialPlan
Get-CsTenantFederationConfiguration
Get-CsTenantHybridConfiguration
Get-CsTenantLicensingConfiguration
Get-CsTenantMigrationConfiguration
Get-CsTenantPublicProvider
Get-CsTenantUpdateTimeWindow
Get-CsTestDevice
Get-CsTestUserCredential
Get-CsThirdPartyVideoSystem
Get-CsThirdPartyVideoSystemPolicy
Get-CsTopology
Get-CsTrunk
Get-CsTrunkConfiguration
Get-CsTrustedApplication
Get-CsTrustedApplicationComputer
Get-CsTrustedApplicationEndpoint
Get-CsTrustedApplicationPool
Get-CsUCPhoneConfiguration
Get-CsUICulture
Get-CsUnassignedNumber
Get-CsUser
Get-CsUserAcp
Get-CsUserDatabaseState
Get-CsUserLocationStatus
Get-CsUserPoolInfo
Get-CsUserPstnSettings
Get-CsUserReplicatorConfiguration
Get-CsUserServicesConfiguration
Get-CsUserServicesPolicy
Get-CsUserSession
Get-CsVideoInteropServerConfiguration
Get-CsVideoInteropServerSyntheticTransactionConfiguration
Get-CsVideoInteropServiceProvider
Get-CsVideoTrunk
Get-CsVideoTrunkConfiguration
Get-CsVoiceConfiguration
Get-CsVoicemailReroutingConfiguration
Get-CsVoiceNormalizationRule
Get-CsVoicePolicy
Get-CsVoiceRoute
Get-CsVoiceRoutingPolicy
Get-CsVoiceTestConfiguration
Get-CsWatcherNodeConfiguration
Get-CsWebServiceConfiguration
Get-CsWindowsService
Get-CsXmppAllowedPartner
Get-CsXmppGatewayConfiguration
Grant-CsArchivingPolicy
Grant-CsBroadcastMeetingPolicy
Grant-CsCallerIdPolicy
Grant-CsCallingLineIdentity
Grant-CsCallViaWorkPolicy
Grant-CsClientPolicy
Grant-CsClientVersionPolicy
Grant-CsCloudMeetingPolicy
Grant-CsConferencingPolicy
Grant-CsDialoutPolicy
Grant-CsDialPlan
Grant-CsExternalAccessPolicy
Grant-CsExternalUserCommunicationPolicy
Grant-CsGraphPolicy
Grant-CsHostedVoicemailPolicy
Grant-CsIPPhonePolicy
Grant-CsLocationPolicy
Grant-CsMobilityPolicy
Grant-CsOnlineVoicemailPolicy
Grant-CsOnlineVoiceRoutingPolicy
Grant-CsOUPermission
Grant-CsPersistentChatPolicy
Grant-CsPinPolicy
Grant-CsPresencePolicy
Grant-CsSetupPermission
Grant-CsTeamsCallingPolicy
Grant-CsTeamsCallParkPolicy
Grant-CsTeamsInteropPolicy
Grant-CsTeamsMeetingBroadcastPolicy
Grant-CsTeamsMeetingPolicy
Grant-CsTeamsMessagingPolicy
Grant-CsTeamsUpgradePolicy
Grant-CsTeamsVideoInteropServicePolicy
Grant-CsTenantDialPlan
Grant-CsThirdPartyVideoSystemPolicy
Grant-CsUserServicesPolicy
Grant-CsVoicePolicy
Grant-CsVoiceRoutingPolicy
Import-CSAnnouncementFile
Import-CsAutoAttendantHolidays
Import-CsCertificate
Import-CsCompanyPhoneNormalizationRules
Import-CsConfiguration
Import-CsDeviceUpdate
Import-CsLegacyConferenceDirectory
Import-CsLegacyConfiguration
Import-CsLisConfiguration
Import-CsOnlineAudioFile
Import-CsOrganizationalAutoAttendantHolidays
Import-CsPersistentChatData
Import-CsRgsAudioFile
Import-CsRgsConfiguration
Import-CsUserData
Install-CsAdServerSchema
Install-CsDatabase
Install-CsMirrorDatabase
Invoke-CsArchivingDatabasePurge
Invoke-CsBackupServiceSync
Invoke-CsCdrDatabasePurge
Invoke-CsComputerFailBack
Invoke-CsComputerFailOver
Invoke-CsDatabaseFailover
Invoke-CsManagementServerFailover
Invoke-CsManagementStoreReplication
Invoke-CsPoolFailBack
Invoke-CsPoolFailOver
Invoke-CsQoEDatabasePurge
Invoke-CsStorageServiceFlush
Invoke-CsUcsRollback
Lock-CsClientPin
Merge-CsLegacyTopology
Move-CsAnalogDevice
Move-CsApplicationEndpoint
Move-CsCommonAreaPhone
Move-CsConferenceDirectory
Move-CsExUmContact
Move-CsLegacyUser
Move-CsManagementServer
Move-CsMeetingRoom
Move-CsRgsConfiguration
Move-CsThirdPartyVideoSystem
Move-CsUser
New-CsAdditionalInternalDomain
New-CsAddressBookConfiguration
New-CsAddressBookNormalizationConfiguration
New-CsAddressBookNormalizationRule
New-CsAdminRole
New-CsAllowedDomain
New-CsAnalogDevice
New-CsAnnouncement
New-CsArchivingConfiguration
New-CsArchivingPolicy
New-CsAutoAttendant
New-CsAutoAttendantCallableEntity
New-CsAutoAttendantCallFlow
New-CsAutoAttendantCallHandlingAssociation
New-CsAutoAttendantDialScope
New-CsAutoAttendantMenu
New-CsAutoAttendantMenuOption
New-CsAutoAttendantPrompt
New-CsAutodiscoverConfiguration
New-CsAVEdgeConfiguration
New-CsBandwidthPolicyServiceConfiguration
New-CsBlockedDomain
New-CsCallerIdPolicy
New-CsCallingLineIdentity
New-CsCallParkOrbit
New-CsCallViaWorkPolicy
New-CsCdrConfiguration
New-CsClientPolicy
New-CsClientPolicyEntry
New-CsClientVersionConfiguration
New-CsClientVersionPolicy
New-CsClientVersionPolicyRule
New-CsCloudCallDataConnectorConfiguration
New-CsClsConfiguration
New-CsClsProvider
New-CsClsRegion
New-CsClsScenario
New-CsClsSecurityGroup
New-CsCommonAreaPhone
New-CsConferenceDirectory
New-CsConferencingConfiguration
New-CsConferencingPolicy
New-CsCpsConfiguration
New-CsDeviceUpdateConfiguration
New-CsDiagnosticConfiguration
New-CsDiagnosticHeaderConfiguration
New-CsDiagnosticsFilter
New-CsDialInConferencingAccessNumber
New-CsDialInConferencingConfiguration
New-CsDialInConferencingDtmfConfiguration
New-CsDialPlan
New-CsEdgeAllowAllKnownDomains
New-CsEdgeAllowList
New-CsEdgeDomainPattern
New-CsEmergencyNumber
New-CsExtendedTest
New-CsExternalAccessPolicy
New-CsExternalUserCommunicationPolicy
New-CsExUmContact
New-CsFileTransferFilterConfiguration
New-CsFIPSConfiguration
New-CsGroupPickupUserOrbit
New-CsHealthMonitoringConfiguration
New-CsHostedVoicemailPolicy
New-CsHostingProvider
New-CsHuntGroup
New-CsHybridApplicationEndpoint
New-CsHybridPSTNSite
New-CsImConfiguration
New-CsImFilterConfiguration
New-CsImTranslationConfiguration
New-CsIssuedCertId
New-CsKerberosAccount
New-CsKerberosAccountAssignment
New-CsLocationPolicy
New-CsMcxConfiguration
New-CsMediaConfiguration
New-CsMeetingConfiguration
New-CsMobilityPolicy
New-CsNetworkBandwidthPolicyProfile
New-CsNetworkBWAlternatePath
New-CsNetworkBWPolicy
New-CsNetworkInterRegionRoute
New-CsNetworkInterSitePolicy
New-CsNetworkMediaBypassConfiguration
New-CsNetworkRegion
New-CsNetworkRegionLink
New-CsNetworkSite
New-CsNetworkSubnet
New-CsOAuthServer
New-CsOnlineApplicationEndpoint
New-CsOnlineApplicationInstanceAssociation
New-CsOnlineAudioFile
New-CsOnlineBulkAssignmentInput
New-CsOnlineDateTimeRange
New-CsOnlineLisCivicAddress
New-CsOnlineLisLocation
New-CsOnlineNumberPortInOrder
New-CsOnlinePSTNGateway
New-CsOnlineSchedule
New-CsOnlineTimeRange
New-CsOnlineVoiceRoute
New-CsOnlineVoiceRoutingPolicy
New-CsOrganizationalAutoAttendant
New-CsOrganizationalAutoAttendantCallableEntity
New-CsOrganizationalAutoAttendantCallFlow
New-CsOrganizationalAutoAttendantCallHandlingAssociation
New-CsOrganizationalAutoAttendantDialScope
New-CsOrganizationalAutoAttendantMenu
New-CsOrganizationalAutoAttendantMenuOption
New-CsOrganizationalAutoAttendantPrompt
New-CsOutboundCallingNumberTranslationRule
New-CsOutboundTranslationRule
New-CsPartnerApplication
New-CsPersistentChatAddin
New-CsPersistentChatCategory
New-CsPersistentChatComplianceConfiguration
New-CsPersistentChatConfiguration
New-CsPersistentChatEndpoint
New-CsPersistentChatPolicy
New-CsPersistentChatRoom
New-CsPinPolicy
New-CsPlatformServiceSettings
New-CsPresencePolicy
New-CsPresenceProvider
New-CsPrivacyConfiguration
New-CsProxyConfiguration
New-CsPublicProvider
New-CsPushNotificationConfiguration
New-CsQoEConfiguration
New-CsRegistrarConfiguration
New-CsReportingConfiguration
New-CsRgsAgentGroup
New-CsRgsAnswer
New-CsRgsCallAction
New-CsRgsHoliday
New-CsRgsHolidaySet
New-CsRgsHoursOfBusiness
New-CsRgsPrompt
New-CsRgsQuestion
New-CsRgsQueue
New-CsRgsTimeRange
New-CsRgsWorkflow
New-CsRoutingConfiguration
New-CsServerApplication
New-CsSimpleUrl
New-CsSimpleUrlConfiguration
New-CsSimpleUrlEntry
New-CsSipDomain
New-CsSipProxyCustom
New-CsSipProxyRealm
New-CsSipProxyTCP
New-CsSipProxyTLS
New-CsSipProxyTransport
New-CsSipProxyUseDefault
New-CsSipProxyUseDefaultCert
New-CsSipResponseCodeTranslationRule
New-CsStaticRoute
New-CsStaticRoutingConfiguration
New-CsStorageServiceConfiguration
New-CsTeamsCallParkPolicy
New-CsTeamsMeetingBroadcastPolicy
New-CsTeamsMeetingPolicy
New-CsTeamsMessagingPolicy
New-CsTeamsUpgradePolicy
New-CsTelemetryConfiguration
New-CsTenantDialPlan
New-CsTenantUpdateTimeWindow
New-CsTestDevice
New-CsThirdPartyVideoSystem
New-CsThirdPartyVideoSystemPolicy
New-CsTrunkConfiguration
New-CsTrustedApplication
New-CsTrustedApplicationComputer
New-CsTrustedApplicationEndpoint
New-CsTrustedApplicationPool
New-CsUCPhoneConfiguration
New-CsUnassignedNumber
New-CsUserReplicatorConfiguration
New-CsUserServicesConfiguration
New-CsUserServicesPolicy
New-CsVideoInteropServerConfiguration
New-CsVideoInteropServerSyntheticTransactionConfiguration
New-CsVideoInteropServiceProvider
New-CsVideoTrunkConfiguration
New-CsVoicemailReroutingConfiguration
New-CsVoiceNormalizationRule
New-CsVoicePolicy
New-CsVoiceRegex
New-CsVoiceRoute
New-CsVoiceRoutingPolicy
New-CsVoiceTestConfiguration
New-CsWatcherNodeConfiguration
New-CsWebLink
New-CsWebOrigin
New-CsWebServiceConfiguration
New-CsWebTrustedCACertificate
New-CsXmppAllowedPartner
Publish-CsLisConfiguration
Publish-CsTopology
Register-CsHybridPSTNAppliance
Register-CsOnlineDialInConferencingServiceNumber
Remove-CsAdditionalInternalDomain
Remove-CsAddressBookConfiguration
Remove-CsAddressBookNormalizationConfiguration
Remove-CsAddressBookNormalizationRule
Remove-CsAdminRole
Remove-CsAllowedDomain
Remove-CsAnalogDevice
Remove-CsAnnouncement
Remove-CsArchivingConfiguration
Remove-CsArchivingPolicy
Remove-CsAutoAttendant
Remove-CsAutodiscoverConfiguration
Remove-CsAVEdgeConfiguration
Remove-CsBackupServiceConfiguration
Remove-CsBandwidthPolicyServiceConfiguration
Remove-CsBlockedDomain
Remove-CsBusyOptions
Remove-CsCallerIdPolicy
Remove-CsCallingLineIdentity
Remove-CsCallParkOrbit
Remove-CsCallViaWorkPolicy
Remove-CsCdrConfiguration
Remove-CsCertificate
Remove-CsClientPolicy
Remove-CsClientVersionConfiguration
Remove-CsClientVersionPolicy
Remove-CsClientVersionPolicyRule
Remove-CsClsConfiguration
Remove-CsClsRegion
Remove-CsClsScenario
Remove-CsClsSecurityGroup
Remove-CsCommonAreaPhone
Remove-CsConferenceDirectory
Remove-CsConferenceDisclaimer
Remove-CsConferencingConfiguration
Remove-CsConferencingPolicy
Remove-CsConfigurationStoreLocation
Remove-CsConversationHistoryConfiguration
Remove-CsCpsConfiguration
Remove-CsDeviceUpdateConfiguration
Remove-CsDeviceUpdateRule
Remove-CsDiagnosticConfiguration
Remove-CsDiagnosticHeaderConfiguration
Remove-CsDialInConferencingAccessNumber
Remove-CsDialInConferencingConfiguration
Remove-CsDialInConferencingDtmfConfiguration
Remove-CsDialPlan
Remove-CsEnhancedEmergencyServiceDisclaimer
Remove-CsExternalAccessPolicy
Remove-CsExternalUserCommunicationPolicy
Remove-CsExUmContact
Remove-CsFileTransferFilterConfiguration
Remove-CsFIPSConfiguration
Remove-CsGroupPickupUserOrbit
Remove-CsHealthMonitoringConfiguration
Remove-CsHostedVoicemailPolicy
Remove-CsHostingProvider
Remove-CsHuntGroup
Remove-CsHybridApplicationEndpoint
Remove-CsHybridPSTNSite
Remove-CsImConfiguration
Remove-CsImFilterConfiguration
Remove-CsImTranslationConfiguration
Remove-CsKerberosAccountAssignment
Remove-CsLisLocation
Remove-CsLisPort
Remove-CsLisServiceProvider
Remove-CsLisSubnet
Remove-CsLisSwitch
Remove-CsLisWirelessAccessPoint
Remove-CsLocationPolicy
Remove-CsManagementConnection
Remove-CsMcxConfiguration
Remove-CsMediaConfiguration
Remove-CsMeetingConfiguration
Remove-CsMobilityPolicy
Remove-CsNetworkBandwidthPolicyProfile
Remove-CsNetworkConfiguration
Remove-CsNetworkInterRegionRoute
Remove-CsNetworkInterSitePolicy
Remove-CsNetworkRegion
Remove-CsNetworkRegionLink
Remove-CsNetworkSite
Remove-CsNetworkSubnet
Remove-CsOAuthServer
Remove-CsOnlineApplicationEndpoint
Remove-CsOnlineApplicationInstanceAssociation
Remove-CsOnlineDialInConferencingTenantSettings
Remove-CsOnlineLisCivicAddress
Remove-CsOnlineLisLocation
Remove-CsOnlineNumberPortInOrder
Remove-CsOnlinePSTNGateway
Remove-CsOnlineSchedule
Remove-CsOnlineTelephoneNumber
Remove-CsOnlineVoiceRoute
Remove-CsOnlineVoiceRoutingPolicy
Remove-CsOrganizationalAutoAttendant
Remove-CsOutboundCallingNumberTranslationRule
Remove-CsOutboundTranslationRule
Remove-CsPartnerApplication
Remove-CsPersistentChatAddin
Remove-CsPersistentChatCategory
Remove-CsPersistentChatComplianceConfiguration
Remove-CsPersistentChatConfiguration
Remove-CsPersistentChatEndpoint
Remove-CsPersistentChatMessage
Remove-CsPersistentChatPolicy
Remove-CsPersistentChatRoom
Remove-CsPinPolicy
Remove-CsPlatformServiceSettings
Remove-CsPresencePolicy
Remove-CsPresenceProvider
Remove-CsPrivacyConfiguration
Remove-CsProxyConfiguration
Remove-CsPublicProvider
Remove-CsPushNotificationConfiguration
Remove-CsQoEConfiguration
Remove-CsRegistrarConfiguration
Remove-CsReportingConfiguration
Remove-CsRgsAgentGroup
Remove-CsRgsHolidaySet
Remove-CsRgsHoursOfBusiness
Remove-CsRgsQueue
Remove-CsRgsWorkflow
Remove-CsRoutingConfiguration
Remove-CsServerApplication
Remove-CsSimpleUrlConfiguration
Remove-CsSipDomain
Remove-CsSipResponseCodeTranslationRule
Remove-CsSlaConfiguration
Remove-CsSlaDelegates
Remove-CsStaticRoutingConfiguration
Remove-CsStorageServiceConfiguration
Remove-CsTeamsCallParkPolicy
Remove-CsTeamsInteropPolicy
Remove-CsTeamsMeetingBroadcastPolicy
Remove-CsTeamsMeetingPolicy
Remove-CsTeamsMessagingPolicy
Remove-CsTeamsUpgradePolicy
Remove-CsTelemetryConfiguration
Remove-CsTenantDialPlan
Remove-CsTenantUpdateTimeWindow
Remove-CsTestDevice
Remove-CsTestUserCredential
Remove-CsThirdPartyVideoSystem
Remove-CsThirdPartyVideoSystemPolicy
Remove-CsTrunkConfiguration
Remove-CsTrustedApplication
Remove-CsTrustedApplicationComputer
Remove-CsTrustedApplicationEndpoint
Remove-CsTrustedApplicationPool
Remove-CsUCPhoneConfiguration
Remove-CsUnassignedNumber
Remove-CsUserAcp
Remove-CsUserReplicatorConfiguration
Remove-CsUserServicesConfiguration
Remove-CsUserServicesPolicy
Remove-CsUserStoreBackupData
Remove-CsVideoInteropServerConfiguration
Remove-CsVideoInteropServerSyntheticTransactionConfiguration
Remove-CsVideoInteropServiceProvider
Remove-CsVideoTrunkConfiguration
Remove-CsVoiceConfiguration
Remove-CsVoicemailReroutingConfiguration
Remove-CsVoiceNormalizationRule
Remove-CsVoicePolicy
Remove-CsVoiceRoute
Remove-CsVoiceRoutingPolicy
Remove-CsVoiceTestConfiguration
Remove-CsWatcherNodeConfiguration
Remove-CsWebServiceConfiguration
Remove-CsXmppAllowedPartner
Request-CsCertificate
Reset-CsDeviceUpdateRule
Reset-CsNotificationQueues
Reset-CsPoolRegistrarState
Reset-CsRoutingGroup
Restore-CsDeviceUpdateRule
Revoke-CsClientCertificate
Revoke-CsOUPermission
Revoke-CsSetupPermission
Search-CsClsLogging
Search-CsOnlineTelephoneNumberInventory
Select-CsOnlineTelephoneNumberInventory
Set-CsAccessEdgeConfiguration
Set-CsAddressBookConfiguration
Set-CsAddressBookNormalizationConfiguration
Set-CsAddressBookNormalizationRule
Set-CsAdminRole
Set-CsAllowedDomain
Set-CsAnalogDevice
Set-CsAnnouncement
Set-CsApplicationServer
Set-CsArchivingConfiguration
Set-CsArchivingPolicy
Set-CsArchivingServer
Set-CsAudioTestServiceApplication
Set-CsAuthConfig
Set-CsAutoAttendant
Set-CsAutodiscoverConfiguration
Set-CsAVEdgeConfiguration
Set-CsBackupServiceConfiguration
Set-CsBandwidthPolicyServiceConfiguration
Set-CsBlockedDomain
Set-CsBroadcastMeetingConfiguration
Set-CsBusyOptions
Set-CsCallerIdPolicy
Set-CsCallingLineIdentity
Set-CsCallParkOrbit
Set-CsCallParkServiceMusicOnHoldFile
Set-CsCallViaWorkPolicy
Set-CsCceApplianceConfigurationReplicationStatus
Set-CsCceApplianceDeploymentStatus
Set-CsCceApplianceStatus
Set-CsCdrConfiguration
Set-CsCertificate
Set-CsClientPin
Set-CsClientPolicy
Set-CsClientVersionConfiguration
Set-CsClientVersionPolicy
Set-CsClientVersionPolicyRule
Set-CsCloudCallDataConnector
Set-CsCloudCallDataConnectorConfiguration
Set-CsClsConfiguration
Set-CsClsRegion
Set-CsClsScenario
Set-CsClsSearchTerm
Set-CsClsSecurityGroup
Set-CsCommonAreaPhone
Set-CsConferenceDisclaimer
Set-CsConferenceServer
Set-CsConferencingConfiguration
Set-CsConferencingPolicy
Set-CsConfigurationStoreLocation
Set-CsConversationHistoryConfiguration
Set-CsCpsConfiguration
Set-CsDeviceUpdateConfiguration
Set-CsDiagnosticConfiguration
Set-CsDiagnosticHeaderConfiguration
Set-CsDialInConferencingAccessNumber
Set-CsDialInConferencingConfiguration
Set-CsDialInConferencingDtmfConfiguration
Set-CsDialPlan
Set-CsDirector
Set-CsEdgeServer
Set-CsEnhancedEmergencyServiceDisclaimer
Set-CsExternalAccessPolicy
Set-CsExternalUserCommunicationPolicy
Set-CsExUmContact
Set-CsFileTransferFilterConfiguration
Set-CsFIPSConfiguration
Set-CsGroupPickupUserOrbit
Set-CsHealthMonitoringConfiguration
Set-CsHostedVoicemailPolicy
Set-CsHostingProvider
Set-CsHuntGroup
Set-CsHybridApplicationEndpoint
Set-CsHybridMediationServer
Set-CsHybridPSTNAppliance
Set-CsHybridPSTNSite
Set-CsImConfiguration
Set-CsImFilterConfiguration
Set-CsImTranslationConfiguration
Set-CsIPPhonePolicy
Set-CsKerberosAccountAssignment
Set-CsKerberosAccountPassword
Set-CsLisLocation
Set-CsLisPort
Set-CsLisServiceProvider
Set-CsLisSubnet
Set-CsLisSwitch
Set-CsLisWirelessAccessPoint
Set-CsLocationPolicy
Set-CsManagementConnection
Set-CsManagementServer
Set-CsMcxConfiguration
Set-CsMediaConfiguration
Set-CsMediationServer
Set-CsMeetingConfiguration
Set-CsMeetingRoom
Set-CsMobilityPolicy
Set-CsMonitoringServer
Set-CsNetworkBandwidthPolicyProfile
Set-CsNetworkConfiguration
Set-CsNetworkInterRegionRoute
Set-CsNetworkInterSitePolicy
Set-CsNetworkRegion
Set-CsNetworkRegionLink
Set-CsNetworkSite
Set-CsNetworkSubnet
Set-CsOAuthConfiguration
Set-CsOAuthServer
Set-CsOnlineApplicationEndpoint
Set-CsOnlineDialInConferencingBridge
Set-CsOnlineDialInConferencingServiceNumber
Set-CsOnlineDialInConferencingTenantSettings
Set-CsOnlineDialInConferencingUser
Set-CsOnlineDialInConferencingUserDefaultNumber
Set-CsOnlineDirectoryUser
Set-CsOnlineEnhancedEmergencyServiceDisclaimer
Set-CsOnlineLisCivicAddress
Set-CsOnlineLisLocation
Set-CsOnlineNumberPortInOrder
Set-CsOnlineNumberPortOutOrderPin
Set-CsOnlinePSTNGateway
Set-CsOnlinePstnUsage
Set-CsOnlineSchedule
Set-CsOnlineVoicemailPolicy
Set-CsOnlineVoicemailUserSettings
Set-CsOnlineVoiceRoute
Set-CsOnlineVoiceRoutingPolicy
Set-CsOnlineVoiceUser
Set-CsOnlineVoiceUserBulk
Set-CsOrganizationalAutoAttendant
Set-CsOutboundCallingNumberTranslationRule
Set-CsOutboundTranslationRule
Set-CsPartnerApplication
Set-CsPersistentChatActiveServer
Set-CsPersistentChatAddin
Set-CsPersistentChatCategory
Set-CsPersistentChatComplianceConfiguration
Set-CsPersistentChatConfiguration
Set-CsPersistentChatPolicy
Set-CsPersistentChatRoom
Set-CsPersistentChatState
Set-CsPinPolicy
Set-CsPlatformServiceSettings
Set-CsPresenceManagementState
Set-CsPresencePolicy
Set-CsPresenceProvider
Set-CsPrivacyConfiguration
Set-CsProxyConfiguration
Set-CsPstnGateway
Set-CsPstnUsage
Set-CsPublicProvider
Set-CsPushNotificationConfiguration
Set-CsQoEConfiguration
Set-CsRegistrar
Set-CsRegistrarConfiguration
Set-CsReportingConfiguration
Set-CsRgsAgentGroup
Set-CsRgsConfiguration
Set-CsRgsHolidaySet
Set-CsRgsHoursOfBusiness
Set-CsRgsQueue
Set-CsRgsWorkflow
Set-CsRoutingConfiguration
Set-CsServerApplication
Set-CsSimpleUrlConfiguration
Set-CsSipDomain
Set-CsSipResponseCodeTranslationRule
Set-CsSite
Set-CsSlaConfiguration
Set-CsStaticRoutingConfiguration
Set-CsStorageServiceConfiguration
Set-CsTeamsCallingPolicy
Set-CsTeamsCallParkPolicy
Set-CsTeamsClientConfiguration
Set-CsTeamsGuestCallingConfiguration
Set-CsTeamsGuestMeetingConfiguration
Set-CsTeamsGuestMessagingConfiguration
Set-CsTeamsMeetingBroadcastConfiguration
Set-CsTeamsMeetingBroadcastPolicy
Set-CsTeamsMeetingConfiguration
Set-CsTeamsMeetingPolicy
Set-CsTeamsMessagingPolicy
Set-CsTeamsUpgradeConfiguration
Set-CsTeamsUpgradePolicy
Set-CsTelemetryConfiguration
Set-CsTenantDialPlan
Set-CsTenantFederationConfiguration
Set-CsTenantHybridConfiguration
Set-CsTenantMigrationConfiguration
Set-CsTenantPublicProvider
Set-CsTenantUpdateTimeWindow
Set-CsTestDevice
Set-CsTestUserCredential
Set-CsThirdPartyVideoSystem
Set-CsThirdPartyVideoSystemPolicy
Set-CsTrunkConfiguration
Set-CsTrustedApplication
Set-CsTrustedApplicationEndpoint
Set-CsTrustedApplicationPool
Set-CsUCPhoneConfiguration
Set-CsUICulture
Set-CsUnassignedNumber
Set-CsUser
Set-CsUserAcp
Set-CsUserDatabaseState
Set-CsUserPstnSettings
Set-CsUserReplicatorConfiguration
Set-CsUserServer
Set-CsUserServicesConfiguration
Set-CsUserServicesPolicy
Set-CsVideoGateway
Set-CsVideoInteropServer
Set-CsVideoInteropServerConfiguration
Set-CsVideoInteropServerSyntheticTransactionConfiguration
Set-CsVideoInteropServiceProvider
Set-CsVideoTrunkConfiguration
Set-CsVoiceConfiguration
Set-CsVoicemailReroutingConfiguration
Set-CsVoiceNormalizationRule
Set-CsVoicePolicy
Set-CsVoiceRoute
Set-CsVoiceRoutingPolicy
Set-CsVoiceTestConfiguration
Set-CsWatcherNodeConfiguration
Set-CsWebServer
Set-CsWebServiceConfiguration
Set-CsXmppAllowedPartner
Set-CsXmppGatewayConfiguration
Show-CsClsLogging
Start-CsClsLogging
Start-CsExMeetingMigration
Start-CsPool
Start-CsWindowsService
Stop-CsClsLogging
Stop-CsWindowsService
Sync-CsClsLogging
Sync-CsUserData
Test-CsAddressBookService
Test-CsAddressBookWebQuery
Test-CsASConference
Test-CsAudioConferencingProvider
Test-CsAVConference
Test-CsAVEdgeConnectivity
Test-CsCertificateConfiguration
Test-CsClientAuth
Test-CsClientAuthentication
Test-CsComputer
Test-CsDatabase
Test-CsDataConference
Test-CsDialInConferencing
Test-CsDialPlan
Test-CsEffectiveTenantDialPlan
Test-CsExStorageConnectivity
Test-CsExStorageNotification
Test-CsExUMConnectivity
Test-CsExUMVoiceMail
Test-CsFederatedPartner
Test-CsGroupExpansion
Test-CsGroupIM
Test-CsIM
Test-CsInterTrunkRouting
Test-CsKerberosAccountAssignment
Test-CsLisCivicAddress
Test-CsLisConfiguration
Test-CsLocationPolicy
Test-CsManagementServer
Test-CsMcxConference
Test-CsMcxP2PIM
Test-CsMcxPushNotification
Test-CsOnlineCarrierPortabilityIn
Test-CsOnlineLisCivicAddress
Test-CsOnlinePortabilityIn
Test-CsOUPermission
Test-CsP2PAV
Test-CsP2PVideoInteropServerSipTrunkAV
Test-CsPersistentChatMessage
Test-CsPhoneBootstrap
Test-CsPresence
Test-CsPstnOutboundCall
Test-CsPstnPeerToPeerCall
Test-CsRegistration
Test-CsReplica
Test-CsSetupPermission
Test-CsTopology
Test-CsTrunkConfiguration
Test-CsUcwaConference
Test-CsUnifiedContactStore
Test-CsVoiceNormalizationRule
Test-CsVoicePolicy
Test-CsVoiceRoute
Test-CsVoiceTestConfiguration
Test-CsVoiceUser
Test-CsWatcherNodeConfiguration
Test-CsWebApp
Test-CsWebAppAnonymous
Test-CsWebScheduler
Test-CsXmppIM
Uninstall-CsDatabase
Uninstall-CsMirrorDatabase
Unlock-CsClientPin
Unpublish-CsLisConfiguration
Unregister-CsHybridPSTNAppliance
Unregister-CsOnlineDialInConferencingServiceNumber
Update-CsAddressBook
Update-CsAdminRole
Update-CsAutoAttendant
Update-CsClsLogging
Update-CsOrganizationalAutoAttendant
Update-CsTenantMeetingUrl
Update-CsUserData
Update-CsUserDatabase
minutes to read • Edit Online

Add-CsSlaDelegates
In ths Article

Use the `Add-CsSlaDelegates` cmdlet to add a delegate to a shared number in Shared Line Appearance (SLA). A
shared number in SLA is an Enterprise Voice user that is capable of receiving multiple calls at a time and
forwarding them to its delegates, who answer the call.

Syntax
Add-CsSlaDelegates [-Identity] <UserIdParameter> -Delegate <Uri> [-Confirm] [-PassThru] [-WhatIf]
[<CommonParameters>]

Description
SLA is a feature in Skype for Business (SfB ) for handling multiple calls on a specific number called a shared
number. SLA can configure any enterprise voice enabled SfB user as a shared number with multiple lines to
respond to multiple calls. The calls are not actually received on the shared number, instead they are forwarded to
users that act as delegates for the shared number. Any one of the delegates can pick up the call while the rest of the
delegates get a notification on their phone about who picked up the call and which line has become busy as a result.
Both the number of lines and the delegates are configurable for a shared number in SLA. In addition, advanced
options such as BusyOption (what happens in a situation when all lines are busy) and MissedCallOption (the case
in which none of the delegates pick up a call) can also be configured for a shared number.
The Add-CsSlaDelegates cmdlet provides a way to retrieve a shared number configuration.

NOTE: Logging in with the account created for the SLA number is not supported. Using the SLA number account
with any device or Desktop Client can result in unpredictable behavior. It is not necessary to use that account for
the Shared Line Appearance feature to function.
By default, members of the RTCUniversalServerAdmins group are authorized to run the Add-CsSlaDelegates . To
return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Add-CsSlaDelegates"}

Examples
-------------------------- Example 1 --------------------------

Add-CsSlaDelegates -Identity emergency -Delegate sip:delegate_1@contosohealth.com

This example adds a delegate “delegate_1@contosohealth.com” to an SLA configuration identified by “emergency”.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Delegate
Specifies a user that will respond to a call on the shared number specified by the Identity parameter. This parameter
requires a valid sip address.

Type: Uri
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Identity
Indicates the identity of the shared number to which the delegate will be added. User identities can be specified
using one of five formats:
SIP address
Example: sip:kenmyer@litwareinc.com
User principal name (UPN )
Example: kenmyer@litwareinc.com
Domain name and logon name in the form domain\logon
Example: litwareinc\kenmyer
Active Directory display name (this form typically requires quotes)
Example: "Ken Myer"
Active Directory distinguished name
Example: CN=KenMyer,CN=Users,DC=Atlanta,DC=Corp,DC=litware,DC=com

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
The presence of the passthru switch causes the cmdlet to pass the current objects through the pipeline.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Outputs
SlaConfiguration Object
The Add-CsSlaDelegates cmdlet returns a Microsoft.Rtc.Management.SlaConfiguration object.
minutes to read • Edit Online

Approve-CsDeviceUpdateRule
In ths Article

Approves a device update rule that has been imported to the system. After a device update rule has been approved,
the corresponding update will automatically be downloaded and installed by client devices affected by the update.
This cmdlet was introduced in Lync Server 2010.

Syntax
Approve-CsDeviceUpdateRule [[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Approve-CsDeviceUpdateRule [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server uses device update rules as a way to provide firmware updates to devices that run Skype
for Business Phone Edition. Periodically, administrators upload a set of device update rules to Skype for Business
Server; after those rules have been tested and approved, they are automatically downloaded and applied to the
appropriate devices as those devices connect to the system. By default, devices check for new update rules each
time they turn on and connect to Skype for Business Server. Devices also check for updates every 24 hours after
that initial sign on.
Each new device update rule added to the system is marked as "Pending." That means that the update will be
downloaded and installed by the appropriate test devices; however, it will not be downloaded and installed by client
devices in general. This gives you an opportunity to test the updates and ensure that there are no adverse effects
before you make this update widely available. As soon as you are convinced that the update has passed your tests
and will work for your organization, you can then use the Approve-CsDeviceUpdateRule cmdlet to approve the
update.
When you approve an update, the PendingVersion of the associated update rule is assigned to the
ApprovedVersion and the PendingVersion property is cleared. For example, suppose the PendingVersion of a new
update rule is version 1.0.0.1. After you run the Approve-CsDeviceUpdateRule cmdlet, the PendingVersion will be set
to a null value, and the ApprovedVersion will be set to 1.0.0.1. The next time a client device logs on, the device will
automatically check to see if there are any newly-approved updates applicable for that device. If so, the update will
automatically be downloaded and installed.
Who can run this cmdlet: By default, members of the following groups are authorized to run the
Approve-CsDeviceUpdateRule cmdlet locally: RTCUniversalServerAdmins. To return a list of all the role-based access
control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created
yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Approve-CsDeviceUpdateRule"}

Examples
-------------------------- Example 1 --------------------------

Approve-CsDeviceUpdateRule -Identity service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-420a-82ac-


dc2d9b1222ff9

The command shown in Example 1 approves the device update rule d5ce3c10-2588-420a-82ac-dc2d9b1222ff9
found on the service WebServer:atl-cs-001.litwareinc.com.
-------------------------- Example 2 --------------------------

Get-CsDeviceUpdateRule -Filter service:WebServer:atl-cs-001.litwareinc.com* | Approve-CsDeviceUpdateRule

Example 2 approves all the device update rules that have been configured for the service WebServer:atl-cs-
001.litwareinc.com. To do this, the command first calls the Get-CsDeviceUpdateRule cmdlet along with the Filter
parameter; the filter value "service:WebServer:atl-cs-001.litwareinc.com*" ensures that only those rules that have an
Identity that begins with the string value "service:WebServer:atl-cs-001.litwareinc.com" will be returned. (By
definition, these are all the device update rules that have been assigned to the service WebServer:atl-cs-
001.litwareinc.com.) This filtered collection is then piped to the Approve-CsDeviceUpdateRule cmdlet, which approves
each rule in the collection.
-------------------------- Example 3 --------------------------

Get-CsDeviceUpdateRule | Where-Object {$_.Brand -eq "LG-Nortel"} | Approve-CsDeviceUpdateRule

The command shown in Example 3 approves all the device update rules for the specified brand (LG -Nortel). To do
this, the command first calls the Get-CsDeviceUpdateRule cmdlet to return a collection of all the device update rules
currently in use in the organization. This collection is then piped to the Where-Object cmdlet, which picks out only
those rules where the Brand property is equal to LG -Nortel. The filtered collection is then piped to the
Approve-CsDeviceUpdateRule cmdlet, which approves each rule in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier for the device update rule being approved. The Identity for a device update rule consists of two
parts: the service where the device update rule has been assigned (for example, service:WebServer:atl-cs-
001.litwareinc.com) and a globally unique identifier (GUID ). Consequently, a device update rule configured for the
Redmond site will have an Identity similar to this: service:WebServer:atl-cs-001.litwareinc.com /d5ce3c10-2588-
420a-82ac-dc2d9b1222ff9.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdate.Rule object. The
Approve-CsDeviceUpdateRule cmdlet accepts pipelined instances of the device update rule object.

Outputs
None. Instead, the Approve-CsDeviceUpdateRule cmdlet approves instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdate.Rule object.

Related Links
Get-CsDeviceUpdateRule
Remove-CsDeviceUpdateRule
Reset-CsDeviceUpdateRule
Restore-CsDeviceUpdateRule
minutes to read • Edit Online

Backup-CsPool
In ths Article

Creates a backup copy of the specified Skype for Business Server pool. This cmdlet was introduced in Lync Server
2013.

Syntax
Backup-CsPool -PoolFqdn <Fqdn> [-Category <BackupCategory>] [-Confirm] [-FailedOverPoolOnly] [-Force]
[-FullBackup] [-LocalStore] [-Report <String>] [-RetryCount <Int32>] [-SteadyState] [-WaitTime <TimeSpan>]
[-WhatIf] [<CommonParameters>]

Description
The Backup-CsPool cmdlet enables administrators to copy user data and conference data for a Registrar pool to a
specified backup pool. If the primary pool should fail or otherwise become unavailable, users homed on that
primary pool can then be "failed over" to the backup pool. Those users can then log on to Skype for Business
Server via the backup pool and continue to use that pool until their home pool has been restored.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Backup-CsPool"}

Skype for Business Server Control Panel: The functions carried out by the Backup-CsPool cmdlet are not available
in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Backup-CsPool -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example 1 backs up the pool atl-cs-001.litwareinc.com.


-------------------------- Example 2 --------------------------

Backup-CsPool -PoolFqdn "atl-cs-001.litwareinc.com" -SteadyState

In Example 2, a "steady state" backup is done for the pool atl-cs-001.litwareinc.com.

Parameters
-Category
Enables you to select the Skype for Business Server modules that will be backed up; if this parameter is not present
then all the modules will be backed up. Allowed values are:
CMS
UserData

Type: BackupCategory
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FailedOverPoolOnly
When specified, backup will take place only if the pool is in a failed over state. If you use this parameter then you
must also use the FullBackup parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FullBackup
When present, backup will not begin until the backup service has reached its final state. You cannot use both the
FullBackup parameter and the SteadyState parameter in the same command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LocalStore
Retrieves the topology information from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool being backed up. For example:
-SourcePoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
File path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\BackupPool.html"

If this file already exists, it will be overwritten when you run the cmdlet.
By default, reports are written to the AppData\Local\Temp folder in your user profile.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RetryCount
Maximum number of times Backup-CsPool will try to call the backup service before failing.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SteadyState
When present, backup will not begin until the backup service has reached a steady state. A "steady state" occurs
when the pool switches to read-only or failover/failback mode and no longer produces any new data that needs to
be backed up.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WaitTime
Amount of time (in seconds) that the cmdlet will wait before checking to see if the backup service is in either the full
state or the steady state.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Backup-CsPool cmdlet does not accept pipelined data.

Outputs
None.

Related Links
Get-CsBackupServiceConfiguration
Get-CsBackupServiceStatus
Get-CsPoolBackupRelationship
minutes to read • Edit Online

Clear-CsDeviceUpdateFile
In ths Article

Deletes any rejected device update files that are no longer associated with a device. This cmdlet was introduced in
Lync Server 2010.

Syntax
Clear-CsDeviceUpdateFile [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Each time new device updates are uploaded to the system, a corresponding device update rule is created. By
default, these new device update rules are assigned to the Pending state; that means that the rules can be
downloaded and installed on test devices, but not on production devices. In turn, this gives you an opportunity to
test the updates before making them available to users. If testing is successful, you can then run the
Approve-CsDeviceUpdateRule cmdlet to make these device updates available to users.

If testing is not successful then you can use the Reset-CsDeviceUpdateRule cmdlet or the
Restore-CsDeviceUpdateRule cmdlet to reject an update. When these cmdlets are run, the device update is
disassociated from its device update rule. At that point, administrators can then use the Clear-CsDeviceUpdateFile
cmdlet to remove the disassociated updates from the server.
Who can run this cmdlet: By default, members of the following groups are authorized to run the
Clear-CsDeviceUpdateFile cmdlet locally: RTCUniversalServerAdmins. To return a list of all the role-based access
control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created
yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Clear-CsDeviceUpdateFile"}

Examples
-------------------------- Example 1 --------------------------

Clear-CsDeviceUpdateFile -Identity "service:WebServer:atl-cs-001.litwareinc.com"

The command shown in Example 1 deletes all the device update files from the service WebServer:atl-cs-
001.litwareinc.com that are no longer associated with a device.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the service hosting the device update files. For example, this syntax clears device update files
from the Web Services service for the pool atl-cs-001.litwareinc.com: -Identity "service:WebServer:atl-cs-
001.litwareinc.com".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Clear-CsDeviceUpdateFile cmdlet does not accept pipelined input.

Outputs
None. The Clear-CsDeviceUpdateFile cmdlet does not return any values.

Related Links
Clear-CsDeviceUpdateLog
Get-CsDeviceUpdateConfiguration
minutes to read • Edit Online

Clear-CsDeviceUpdateLog
In ths Article

Deletes all the Device Update Web service log and audit files that are older than the specified number of days. This
cmdlet was introduced in Lync Server 2010.

Syntax
Clear-CsDeviceUpdateLog [-Identity] <XdsIdentity> [-DaysBack] <Int32> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
The Device Update Web service keeps an extensive collection of log files; this collection includes both audit logs
conducted by the service itself as well as log files uploaded from client devices such as cell phones. Depending on
the amount of device update activity, and depending on the number of client devices used in your organization,
your server could soon become "cluttered" with Device Update Web service logs. The Clear-CsDeviceUpdateLog
cmdlet provides a way for you to reduce the number of log files stored on the server: all you have to do is run the
cmdlet and specify the maximum age (in days) of the files that should not be deleted. Any log files older than that
maximum age will be removed from the system.
Who can run this cmdlet: By default, members of the following groups are authorized to run the
Clear-CsDeviceUpdateLog cmdlet locally: RTCUniversalServerAdmins. To return a list of all the role-based access
control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created
yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Clear-CsDeviceUpdateLog"}

Examples
-------------------------- Example 1 --------------------------

Clear-CsDeviceUpdateLog -Identity "service:WebServer:atl-cs-001.litwareinc.com" -DaysBack 10

The command shown in Example 1 connects to the Device Update Web service with the Identity
"service:WebServer:atl-cs-001.litwareinc.com" and deletes all the device and audit logs that are more than 10 days
old.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DaysBack
Maximum age (in days) of the log files to be maintained. All log files older than the value specified using the
DaysBack parameter will be deleted. For example, if you set DaysBack to 7 then any log files more than seven days
old will be removed.
This parameter can be set to any integer value between 1 and 30, inclusive.

Type: Int32
Required: True
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the service hosting the Device Update Web service log files. For example, this syntax clears
Device Update Web service log files from the Web Services for the pool atl-cs-001.litwareinc.com: -Identity
"service:WebServer:atl-cs-001.litwareinc.com".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None. The Clear-CsDeviceUpdateLog cmdlet does not accept pipelined input.

Outputs
None. The Clear-CsDeviceUpdateLog cmdlet does not return any values.

Related Links
Clear-CsDeviceUpdateFile
Get-CsDeviceUpdateConfiguration
minutes to read • Edit Online

Clear-CsOnlineTelephoneNumberReservation
In ths Article

Use the `Clear-CsOnlineTelephoneNumberReservation` cmdlet to clear a reserved list of telephone numbers before
they are acquired. The telephone numbers will then be available for search and reservation again.

Syntax
Clear-CsOnlineTelephoneNumberReservation [-Tenant <Guid>] -ReservationId <String>
-InventoryType <String> [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
This cmdlet will fail if any of the numbers in the reservation have already been assigned. An error message will
identify the source of the failure.

Examples
-------------------------- Example 1 --------------------------

Clear-CsOnlineTelephoneNumberReservation -ReservationId b1ae43f5-07ab-4b81-be32-4b8cc2d11f75 -InventoryType


Service

This example clears a reservation with an inventory type of "Service".

Parameters
-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
Specifies the target telephone number type for the cmdlet. Acceptable values are:
"Service" for numbers assigned to conferencing support.
"Subscriber" for numbers supporting public switched telephone network (PSTN ) functions.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReservationId
Specifies the identification of the reservation you want to clear.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None

Related Links
Online version:
minutes to read • Edit Online

Clear-CsPersistentChatRoom
In ths Article

Removes all the content from a Persistent Chat chat room beginning with the oldest item in the room and
continuing through the specified end date. This cmdlet was introduced in Lync Server 2013.

Syntax
Clear-CsPersistentChatRoom [-Identity] <String> -EndDate <DateTime> [-Confirm] [-WhatIf] [<CommonParameters>]

Clear-CsPersistentChatRoom [-Instance] <ChatRoom> -EndDate <DateTime> [-Confirm] [-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service provides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
Persistent Chat discussions take the form of messages posted in individual chat rooms; chat rooms are discussion
forums based on specific topics. By design, messages posted in a chat room remain there forever; at any time, users
can return to the room and review all the messages that have been previously posted.
However, there might be times when administrators need to clear a chat room of all (or at least some) of its
messages; this might done to free up space in the database or because the chat room is changing its focus.
Regardless, the Clear-CsPersistentChatRoom cmdlet provides a way for you to delete all the messages in a chat
room or to delete all the message posted during a specified period of time (for example, all the messages posted
before August 1, 2018).
NOTE: To remove a more finely-targeted set of messages (for example, all the messages posted by a specific user)
use the Remove-CsPersistentChatMessage cmdlet.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Clear-CsPersistentChatRoom"}

Skype for Business Server Control Panel: The functions carried out by the Clear-CsPersistentChatRoom cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------
Clear-CsPersistentChatRoom -Identity "atl-cs-001.litwareinc.com\ITChatRoom" -EndDate "3/1/2018"

The command shown in Example removes all the content from the Persistent Chat chat room ITChatRoom that was
added to the room on or before March 1, 2018.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatRoom | Clear-CsPersistentChatRoom -EndDate "3/1/2018" -Confirm:$False

In Example 2, content added on or before March 1, 2018 is removed from all the chat rooms in the organization. To
do this, the command first calls the Get-CsPersistentChatRoom cmdlet without any parameters in order to return a
collection of all the chat rooms in the organization. That collection is then piped to the Clear-CsPersistentChatRoom
cmdlet, which removes content added on or before March 1, 2018 from each room in the collection. Note that, in
order to suppress the confirmation prompt which would otherwise appear each time you tried to clear a different
chat room, the Confirm parameter is added using this syntax: -Confirm:$False

Parameters
-Confirm
Prompts you for confirmation before executing the command. If you set the value of this parameter to False then
you will not get a confirmation prompt when you run the cmdlet:
-Confirm:$False

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EndDate
Indicates the last date for which content should be removed. For example, if you specify an EndDate of 3/1/2018
(March 1, 2018 in US English) then all the Persistent Chat content added to the room on or before 3/1/2018 will be
deleted.
You must specify an EndDate when running the Clear-CsPersistentChatRoom cmdlet.

Type: DateTime
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Identity of the chat room whose content is to be removed. For example:
-Identity "atl-cs-001.litwareinc.com\ITChatRoom"
Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: ChatRoom
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Clear-CsPersistentChatRoom cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.GroupChat.Cmdlets.ChatRoomObject object.

Outputs
None. Instead, Clear-CsPersistentChatRoom modifies existing instances of the
Microsoft.Rtc.Management.GroupChat.Cmdlets.ChatRoomObject object.

Related Links
Remove-CsPersistentChatMessage
minutes to read • Edit Online

Complete-CsCceApplianceRegistration
In ths Article

Provide the topic introduction here.

Syntax
Complete-CsCceApplianceRegistration [[-Identity] <Object>] [-BypassDualWrite <Object>] [-Confirm] [-Force] [-
Instance <Object>] [-Tenant <Object>] [-WhatIf] [-AsJob] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert descriptive text for example 1.


Insert example commands for example 1.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassDualWrite
PARAMVALUE: $true | $false

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsGlobalRelativeIdentity

Type: Object
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
PARAMVALUE: PSObject

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Complete-CsCceApplianceUnregistration
In ths Article

Provide the topic introduction here.

Syntax
Complete-CsCceApplianceUnregistration [[-Identity] <Object>] [-BypassDualWrite <Object>] [-Confirm] [-Force]
[-Tenant <Object>] [-WhatIf] [-AsJob] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassDualWrite
PARAMVALUE: $true | $false

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsGlobalRelativeIdentity

Type: Object
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Convert-CsUserData
In ths Article

Converts exported user data to the data format used by Skype for Business Server. This cmdlet was introduced in
Lync Server 2013.

Syntax
Convert-CsUserData -InputFile <String> -OutputFile <String> -TargetVersion <ConvertTarget>
[-ConfDirectoryFilter <String>] [-Force] [-UserFilter <String>] [<CommonParameters>]

Description
The Convert-CsUserData cmdlet takes data exported by using the Export-CsUserData cmdlet and then converts that
data to the user data format used by Skype for Business Server. In turn, that enables the Import-CsUserData cmdlet
to import that data to the appropriate server version.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Convert-CsUserData"}
Skype for Business Server Control Panel: The functions carried out by the Convert-CsUserData cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Convert-CsUserData -InputFile "C:\Logs\Lync2013Data.Zip" -OutputFile "C:\Logs\Lync2010Data.xml" -TargetVersion


Lync2010

The command shown in Example 1 converts the user data stored in the file C:\Logs\Lync2013Data.zip to the user
data format used in Lync Server 2010. The converted data is stored in the XML file C:\Logs\Lync2010Data.xml.
-------------------------- Example 2 --------------------------

Convert-CsUserData -InputFile "C:\Logs\Lync2013Data.Zip" -OutputFile "C:\Logs\Lync2010data.xml" -TargetVersion


Lync2010 -UserFilter "kenmyer@litwareinc.com"

Example 2 shows how you can convert data for a single user; in this example, the user with the SIP address
kenmyer@litwareinc.com. This is done by including the UserFilter parameter followed by the user's SIP address
(minus the sip: prefix).

Parameters
-ConfDirectoryFilter
Enables you to convert conference directory data. To do this, include the ConfDirectoryFilter parameter and specify
the Identity of the conference directory:
-ConfDirectoryFilter 13
You can retrieve conference directory Identities by using this command:
Get-CsConferenceDirectory | Select-Object Identity, ServiceId

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InputFile
Full path to the .ZIP file or .XML file containing the user data to be converted. For example:
-InputFile "C:\Data\Lync2010.zip"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutputFile
Full path to the file that will store the converted data. If you are outputting the data using the Microsoft Lync Server
2010 format then the output file must use a .XML file extension; for example:
-OutputFile "C:\Data\ConvertedLync2010Data.xml"
If you are using the Microsoft Lync Server 2013 Preview format, the output file must use a .ZIP file extension:
-OutputFile "C:\Data\ConvertedLyncData.zip"
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetVersion
Indicates the format for the converted data. Allowed values are:
Lync2010
Current

Type: ConvertTarget
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserFilter
Enables you to convert data for a single user. That user specified by using his or her SIP address, minus the sip:
prefix. For example:
-UserFilter "kenmyer@litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Convert-CsUserData cmdlet does not accept pipelined input.

Outputs
The Convert-CsUserData cmdlet creates either XML or ZIP files, depending on whether the converted data is to be
used with Lync Server or with Skype for Business Server.

Related Links
Export-CsUserData
Import-CsUserData
Sync-CsUserData
Update-CsUserData
minutes to read • Edit Online

ConvertTo-JsonForPSWS
In ths Article

Converts an object to a JSON -formatted string for PowerShell Web Services.

Syntax
ConvertTo-JsonForPSWS [-InputObject] <Object> [-Depth <Int>] [-Compress] [<CommonParameters>]

Description
The ConvertTo-JsonForPSWS cmdlet converts any object to a string in JavaScript Object Notation (JSON ) format for
PowerShell Web Services. The properties are converted to field names, the property values are converted to field
values, and the methods are removed.
You can then use the ConvertTo-JsonForPSWS cmdlet to convert a JSON -formatted string to a JSON object, which is
easily managed in Windows PowerShell.

Examples
-------------------------- Example 1 --------------------------

PS C:\> (Get-UICulture).Calendar | ConvertTo-JsonForPSWS


{
"MinSupportedDateTime": "\/Date(-62135568000000)\/",
"MaxSupportedDateTime": "\/Date(253402300799999)\/",
"AlgorithmType": "SolarCalendar",
"CalendarType": "Localized",
"Eras": [
1
],
"TwoDigitYearMax": 2029,
"IsReadOnly": false
}

This command uses the ConvertTo-JsonForPSWS cmdlet to convert a GregorianCalendar object to a JSON -
formatted string for PowerShell Web Services.
-------------------------- Example 2 --------------------------

PS C:\> @{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-JsonForPSWS -Compress


{"Admin":"True","Account":"User01","Domain":"Domain01"}

This command shows the effect of using the Compress parameter of ConvertTo-JsonForPSWS . The compression
affects only the appearance of the string, not its validity.
-------------------------- Example 3 --------------------------
PS C:\> Get-Date | Select-Object -Property * | ConvertTo-JsonForPSWS
{
"DisplayHint": {
"value": 2,
"Value": "DateTime"
},
"DateTime": "domingo, 27 de mayo de 2018 19:01:15",
"Date": "\/Date(1527390000000)\/",
"Day": 27,
"DayOfWeek": {
"value": 0,
"Value": "Sunday"
},
"DayOfYear": 147,
"Hour": 19,
"Kind": {
"value": 2,
"Value": "Local"
},
"Millisecond": 225,
"Minute": 1,
"Month": 5,
"Second": 15,
"Ticks": 636630444752251610,
"TimeOfDay": {
"Hours": 19,
"Minutes": 1,
"Seconds": 15,
"Ticks": 684752251610,
"Days": 0,
"Milliseconds": 225,
"TotalDays": 0.79253732825231482,
"TotalHours": 19.020895878055555,
"TotalMilliseconds": 68475225.161,
"TotalMinutes": 1141.2537526833335,
"TotalSeconds": 68475.225161
},
"Year": 2018
}

This command shows how to use the ConvertTo-JsonForPSWS cmdlet to convert an object to a JSON string for
PowerShell Web Services.
It uses the ConvertTo-JsonForPSWS cmdlet to convert a System.DateTime object from the Get-Date cmdlet to a
JSON -formatted string for PowerShell Web Services. The command uses the Select-Object cmdlet to get all () of
the properties of the *DateTime object. The output shows the JSON string that ConvertTo-JsonForPSWS returned.
-------------------------- Example 4 --------------------------

PS C:\> $JsonSecurityHelp = Get-Content $Pshome\Modules\Microsoft.PowerShell.Security\en-


US\Microsoft.PowerShell.Security.dll-Help.xml | ConvertTo-JsonForPSWS

This command uses the ConvertTo-JsonForPSWS cmdlet to convert a Windows PowerShell Help file from XML
format to JSON format for PowerShell Web Services.

Parameters
-Compress
Omits white space and indented formatting in the output string.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Depth
Specifies how many levels of contained objects are included in the JSON representation. The default value is 2.

Type: Int
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InputObject
Specifies the objects to convert to JSON format. Enter a variable that contains the objects, or type a command or
expression that gets the objects. You can also pipe an object to ConvertTo-JsonForPSWS .

The InputObject parameter is required, but its value can be null ($Null) or an empty string. When the input object is
$Null, ConvertTo-JsonForPSWS does not generate any output. When the input object is an empty string,
ConvertTo-JsonForPSWS returns an empty string.

Type: Object
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.Object
You can pipe any object to ConvertTo-JsonForPSWS.

Outputs
System.String

Related Links
ConvertTo-Json
minutes to read • Edit Online

Copy-CsVoicePolicy
In ths Article

This cmdlet has been deprecated for use with Lync Server 2013 and Lync Online. Administrators should use the
`Grant-CsVoicePolicy` cmdlet to assign voice policies to Lync Online tenant accounts.

Syntax
Description
This cmdlet has been deprecated for use with Lync Server 2013 and Lync Online. Administrators should use the
Grant-CsVoicePolicy cmdlet to assign voice policies to Lync Online tenant accounts.

Examples
-------------------------- Example 1 --------------------------

PS C:\> {{ Add example code here }}

{{ Add example description here }}

Parameters
-AsJob

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassDualWrite

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Debug-CsAddressBookReplication
In ths Article

Verifies replication between Active Directory and the Skype for Business Server Address book service. This cmdlet
was introduced in Lync Server 2013.

Syntax
Debug-CsAddressBookReplication [-DomainController <String>] [-Force] [-OutLoggerVariable <String>]
[-OutVerboseVariable <String>] [-PoolFqdn <Fqdn>] [-User <String>] [-VerifyNormalization] [-VerifyReplication]
[-AnalyzeFailures] [-StartDate <DateTime>] [-Tenant <Guid>] [<CommonParameters>]

Description
Address Book servers are intermediaries between Active Directory Domain Services (AD DS ) and Skype for
Business Server. The Address Book server ensures that the user information stored in Skype for Business Server is
in sync with the user information stored in Active Directory. This is done by periodically syncing Address Book files
with information stored in the User database.
The Debug-CsAddressBookReplication cmdlet enables administrators to verify that data is being replicated
between Active Directory and Skype for Business Server. Fully testing replication between Active Directory and the
Address Book server can potentially be time-consuming and resource-intensive; because of that, it is recommended
that Debug-CsAddressBookReplication only be used in troubleshooting scenarios. If you want to periodically "spot
check" the functioning of your Address Book server you should use the Test-CsAddressBookService cmdlet and/or
the Test-CsAddressBookWebQuery cmdlet instead.
The functions carried out by the Debug-CsAddressBookReplication cmdlet are not available in the Skype for
Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Debug-CsAddressBookReplication

The command shown in Example 1 verifies Address book replication for the current pool. To verify replication for a
specified pool, include the PoolFqdn parameter followed by the fully qualified domain name of the pool to be
verified.
-------------------------- Example 2 --------------------------

Debug-CsAddressBookReplication -User "sip:kenmyer@litwareinc.com"

In Example 2, the User parameter is included when verifying Address book replication for the current pool. When
the User parameter is included, additional related information is returned for the specified user.
-------------------------- Example 3 --------------------------

Debug-CsAddressBookReplication -User "sip:kenmyer@litwareinc.com" -VerifyReplication

Example 3 uses the VerifyReplication parameter to make a change to the specified user account and then verify that
this change can be successfully replicated to the Address Book.
-------------------------- Example 4 --------------------------

Debug-CsAddressBookReplication -VerifyNormalization

The command shown in Example 4 uses the VerifyNormalization parameter to return information about user
accounts where Address Book normalization rules could not be applied.

Parameters
-AnalyzeFailures
When included in a command, Debug-CsAddessBookReplication will return information about any SQL Server
stored procedure errors (SprocExecuteErrors) associated with the Address Book. The returned data includes
information about which stored procedure failed; when the procedure failed; and how many times the procedure
has failed. Debug-CsAddressBookReplication will also return the SQL error code and provide the failed SQL
statement. Among other things, that enables you to rerun the statement from within the SQL debugger.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify a domain controller to connect to when verifying Address book replication. If this parameter
is not included then the cmdlet will use the first available domain controller.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutLoggerVariable
When present, detailed output from running the cmdlet will be stored in the specified variable. This variable
includes a pair of methods - ToHTML and ToXML - that can then be used to save that output to either an HTML or
an XML file.
To store output in a logger variable named $TestOutput use the following syntax:
-OutLoggerVariable TestOutput

Note: Do not prepend a $ character when specifying the variable name.


To save the information stored in the logger variable to an HTML file, use a command similar to this:
$TestOutput.ToHTML() \> C:\Logs\TestOutput.html

To save the information stored in the logger variable to an XML file, use a command similar to this:
$TestOutput.ToXML() \> C:\Logs\TestOutput.xml

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutVerboseVariable
When present, detailed output from running the cmdlet will be stored in the specified variable. For example, to
store output in a variable named $TestOutput use the following syntax
-OutVerboseVariable TestOutput

Do not prepend a $ character when specifying the variable name.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool being checked. If this parameter is not included then the Debug-
CsAddressBookReplication cmdlet will verify the current pool.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartDate
Indicates the earliest activity date for the errors returned by the AnalyzeFailures parameter. For example, if you set
the start date to 3/1/2018 (Match 1, 2018, in U.S. English) any errors prior to that date (for example, errors
recorded on February 21, 2018) will be excluded from the returned data.
Use the date-time formats specified by your Regional and Language Options settings when assigning values to the
StartDate parameter.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which address book
replication is being verified. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-User
When included, returns detailed replication information for the specified user accounts. The user account to be
verified can be specified by using the user's SIP address, email address, or SamAccountName.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VerifyNormalization
If specified, detailed information will be returned for any user accounts where Address book normalization failed.
Normalization rules are used to convert phone numbers to the E.164 format used by Skype for Business Server.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VerifyReplication
When specified, the Debug-CsAddressBookReplication cmdlet will modify the specified user account in Active
Directory and then verify that the changes are replicated to the Address book. Note that the user account
modification is for testing purposes only, and will not actually change the property values of that account.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
The Debug-CsAddressBookReplication cmdlet does not accept pipelined input.

Outputs
The Debug-CsAddressBookReplication cmdlet returns instances of the
Microsoft.Rtc.SyntheticTransactions.Activities.Database.AddressBookReplicationTaskOutput object.

Related Links
Test-CsAddressBookService
Test-CsAddressBookWebQuery
minutes to read • Edit Online

Debug-CsDataConference
In ths Article

Returns diagnostic information for the data conferencing capabilities included in Skype for Business Server.

Syntax
Debug-CsDataConference [-Force] [-Report <String>] [-TargetFqdn <Fqdn>] [<CommonParameters>]

Description
The functions carried out by the Debug-CsDataConference cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Debug-CsDataConference

The command shown in Example 1 returns diagnostic information for the Conferencing Server installed on the
local computer.
-------------------------- Example 2 --------------------------

Debug-CsDataConference -TargetFqdn "atl-cs-001.litwareinc.com"

In Example 2, diagnostic information is returned for the Conferencing Server installed on the remote computer atl-
cs-001.litwareinc.com.
-------------------------- Example 3 --------------------------

Debug-CsDataConference | Select-Object -ExpandProperty Details | Format-List

Example 3 returns detailed Conferencing Server diagnostic information for the local computer, but displays this
information in an easy-to-read format. To do this, the command first calls the Debug-CsDataConference cmdlet to
return the diagnostic information. That information is then piped to the Select-Object cmdlet. The Select-Object
cmdlet uses the ExpandProperty parameter to return complete information for the Details property. (By default,
only a small portion of the data in the Details property is displayed onscreen.) Finally, the data found in the Details
property is piped to the Format-List cmdlet, which displays the data in an easy-to-read format.

Parameters
-Force
Suppresses the display of any nonfatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\DataConference.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetFqdn
Fully qualified domain name of the computer where the Skype for Business Server 2015 Conferencing Server is
installed. If this parameter is not included, the Debug-CsDataConference cmdlet will run against the local computer.
If Conferencing Server is not installed on the local computer, an error will occur.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
The Debug-CsDataConference cmdlet does not accept pipelined input.

Outputs
Microsoft.Rtc.Management.DataCollabDiag.ServerResult

Related Links
Test-CsDataConference
minutes to read • Edit Online

Debug-CsInterPoolReplication
In ths Article

Verifies that replication is working between a Registrar pool and its assigned backup pool. This cmdlet was
introduced in Lync Server 2013.

Syntax
Debug-CsInterPoolReplication -PoolFqdn <Fqdn> [-BackupModule <BackupModules>] [-Force] [-Confirm]
[-DatabaseCommandTimeoutInSeconds <Int32>] [-ResyncSignatureMismatchItems] [-SuppressMultiMasterDetection]
[-WhatIf] [<CommonParameters>]

Description
In Skype for Business Server each Registrar pool can be associated with a backup pool. The backup pool maintains
a copy of all the data stored on the primary pool. Should the primary pool become unavailable then users of that
pool can automatically be "failed over" to the backup pool. This enables those users to continue to use Skype for
Business Server even though their home pool is not available. The Debug-CsInterPoolReplication cmdlet is used to
compare the data stores on a primary pool and its backup pool, and thus verify that replication between the two
pools is working as expected.
Note that this command will fail if the pool being tested has not been assigned a backup pool.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Debug-CsInterPoolReplication"}

The functions carried out by the Debug-CsInterPoolReplication cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Debug-CsInterPoolReplication -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example 1 verifies the full replication status between the pool atl-cs-001.litwareinc.com
and its previously-assigned backup pool.
-------------------------- Example 2 --------------------------

Debug-CsInterPoolReplication -PoolFqdn "atl-cs-001.litwareinc.com" -BackupModule DataConf

In Example 2, only the replication of data conferencing data is verified between the pool atl-cs-001.litwareinc.com
and its previously-assigned backup pool.
Parameters
-BackupModule
Enables administrators to specify the data store to be verified. Allowed values are:
All
CentralMgmt
PresenceFocus
DataConf
The default value is All.

Type: BackupModules
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabaseCommandTimeoutInSeconds
PARAMVALUE: Int32

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the primary pool being tested. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"
Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResyncSignatureMismatchItems
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SuppressMultiMasterDetection
When included in the command, Debug-CsInterPoolReplication will not verify whether or not the pool is part of a
multi-master replication configuration before beginning its verification checks.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Debug-CsInterPoolReplication does not accept pipelined data.

Outputs
String
minutes to read • Edit Online

Debug-CsIntraPoolReplication
In ths Article

Verifies the synchronous replication of a pool by comparing the data stored for a specified user on a primary Front
End server with data for that same user stored on replica Front End servers. This cmdlet was introduced in Lync
Server 2013.

Syntax
Debug-CsIntraPoolReplication [-ConferenceDirectory] <XdsGlobalRelativeIdentity> [-Force] [<CommonParameters>]

Debug-CsIntraPoolReplication [-UserUri] <UserIdParameter> [-Force] [<CommonParameters>]

Debug-CsIntraPoolReplication [-PoolFqdn] <XdsGlobalRelativeIdentity> [-Force] [-Service <String>] [-ShowAll]


[-Type <ServiceEnumerationType>] [<CommonParameters>]

Description
The Debug-CsIntraPoolReplication cmdlet provides a way for administrators to verify that replication is taking
place between a primary Front End server and its replica Front End servers. This can be done in one of two ways: 1)
by verifying that the data for a specified user is identical on the Front End server and all its replica servers; or, 2) by
verifying that the data for a conference directory is identical on the Front End server and all its replica servers. To
perform either of these two tasks, Debug-CsIntraPoolReplication first connects to the primary Front End server and
constructs an XML file containing user or conference directory data. The cmdlet then connects to the replica
servers, constructs similar XML files, then verifies that selected content in the XML files is identical.
The Debug-CsIntraPoolReplication cmdlet verifies replication for a pool by taking one or more user accounts (or
one conference directory) and querying a primary Front End server and all its replica Front End servers for data
about that account (or conference directory). The information retrieved from the primary Front End server and the
replica servers is then compared: if the data matches, then it is assumed that intrapool replication is working as
expected.
Note that this cmdlet can only be called using users or conference directories homed on Skype for Business Server.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Debug-CsIntraPoolReplication"}

The functions carried out by the Debug-CsIntraPoolReplication cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------
Debug-CsIntraPoolReplication -UserUri "sip:kenmyer@litwareinc.com"

The command shown in Example 1 verifies replication on a Front End server by using the user with the SIP address
"sip:kenmyer@litwareinc.com".
-------------------------- Example 2 --------------------------

Get-CsUser -OU "OU=Redmond,dc=litwareinc,dc=com" | ForEach-Object {Debug-CsIntraPoolReplication $_.Identity}

In Example 2, replication is verified by using all the users who have user accounts in the Redmond OU. To do this,
the command first calls Get-CsUser along with the OU parameter; the parameter value
"OU=Redmond,dc=litwareinc,dc=com" limits the returned data to user accounts found in the Redmond OU. Those
accounts are then piped to the ForEach-Object cmdlet which, in turn, uses Debug-CsIntraPoolReplication cmdlet to
verify the replication status of each account in the OU.
-------------------------- Example 3 --------------------------

"sip:kenmyer@litwareinc.com","sip:pilar@litwareinc.com" | ForEach-Object {Debug-CsIntraPoolReplication -UserUri


$_}

The command shown in Example 3 verifies replication status by using a pair of user SIP addresses. To perform this
task, the two SIP addresses (enclosed in quotation marks and separated by using a comma) are piped to the
ForEach-Object cmdlet, which then runs the Debug-CsIntraPoolReplication cmdlet against each SIP address..
-------------------------- Example 4 --------------------------

Debug-CsIntraPoolReplication -ConferenceDirectory 13

In Example 4, replication is verified for the conference directory with the ID 13.
-------------------------- Example 5 --------------------------

Get-CsUser -Filter {RegistrarPool -eq "atl-cs-001.litwareinc.com"} | Debug-CsIntraPoolReplication UserUri


{$_.Identity}

Example 5 shows how you can verify replication for all the users homed on a specified Registrar pool. To do this,
the command first calls Get-CsUser along with the Filter parameter; the filter value {RegistrarPool -eq "atl-cs-
001.litwareinc.com"} limits the returned data to user accounts homed on the Registrar pool atl-cs-
001.litwareinc.com. Those accounts are then piped to the Debug-CsIntraPoolReplication cmdlet, which verifies
replication for each user in the pool.

Parameters
-ConferenceDirectory
Enables you to verify the replication of a conference directory. Conference directories should be specified using the
directory Identity; conference directory Identities can be retrieved by using this command:
Get-CsConferenceDirectory | Select-Object Identity, ServiceId

You cannot use the ConferenceDirectory parameter and the UserUri parameter in the same command.
Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool to be checked. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Service
Enables you to specify a particular service to be verified.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowAll
When included in the command, shows information about all the services involved in replication.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Enables you to specify the type of replication to be verified. Allowed values are:
ConferenceDirectory
Routing

Type: ServiceEnumerationType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserUri
SIP address of the user account employed in testing intra-pool replication. For example:
-UserUri sip:kenmyer@litwareinc.com

You cannot use the ConferenceDirectory parameter and the UserUri parameter in the same command.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. Debug-CsIntraPoolReplication accepts a
pipelined string value representing the SIP address or Active Directory display name of a user account that has
been enabled for Lync Server. The cmdlet also accepts pipelined instances of the Active Directory user object for a
Lync Server-enabled user.

Outputs
Debug-CsIntraPoolReplication returns instances of the
Microsoft.Rtc.Management.UserPinservice.Data.syncReplicationDetails object.

Related Links
Get-CsManagementStoreReplicationStatus
Test-CsReplica
minutes to read • Edit Online

Debug-CsLisConfiguration
In ths Article

Displays the Enhanced 9-1-1 (E9-1-1) Location Information service (LIS ) configuration in XML format. This cmdlet
was introduced in Lync Server 2010.

Syntax
Debug-CsLisConfiguration [-Force] [-LocalStore] [<CommonParameters>]

Description
The LIS configuration for an Enterprise Voice E9-1-1 implementation is stored in compressed format. This cmdlet
un-compresses the configuration and displays it in XML format. This can make it quicker to debug issues with a
configuration.
This cmdlet retrieves the location information from the Central Management store. When this information is
created, it is stored in the location database; it does not move to the Central Management store until it is published
with the Publish-CsLisConfiguration cmdlet. If the location information has not been published (or has been un-
published with the Unpublish-CsLisConfiguration cmdlet), the Debug-CsLisConfiguration cmdlet will not return
anything.
Who can run this cmdlet: By default, members of the following groups are authorized to run the Debug-
CsLisConfiguration cmdlet locally: RTCUniversalServerAdmins. To return a list of all the role-based access control
(RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created yourself), run
the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Debug-CsLisConfiguration"}

Examples
-------------------------- Example 1 --------------------------

Debug-CsLisConfiguration | Format-Table -Wrap

Running this command will display the entire LIS configuration to the Skype for Business Server Management
Shell window in XML format. By default, the output of the Debug-CsLisConfiguration cmdlet is displayed on one
line, with an ellipsis (…) at the end of the line indicating that there's more than one line of data. Therefore, in this
example we pipe the output to the Format-Table cmdlet, specifying the Wrap parameter, to display the full output
wrapped to fit in the display window.

Parameters
-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Management.Automation.PSCustomObject

Related Links
Publish-CsLisConfiguration
Unpublish-CsLisConfiguration
Import-CsLisConfiguration
Export-CsLisConfiguration
Test-CsLisConfiguration
minutes to read • Edit Online

Debug-CsStorageServiceFailures
In ths Article

Use the Debug-CsStorageServiceFailures cmdlet to return debugging data for the Skype for Business Storage
Service.

Syntax
Debug-CsStorageServiceFailures [-AdapterId <Guid>] [-Binding <String>] [-Component <Component>]
[-EndTime <DateTime>] [-Force] [-HostNameStorageService <String>] [-OutFileName <String>] [-SipUri <String>]
[-StartTime <DateTime>] [<CommonParameters>]

Description
The information returned can vary by system configuration. The following is a generic sample of the information
returned with for a user specified by the SipUri parameter.
AdapterId : bc24207f-08a7-4569-b984-a90f78a49d46
EndpointId : archcdruser2@vdomain.com
EndpointStatusTime : 5/8/2018 6:33:52 PM
EndpointStatusDetail : StoreWebException: code=ErrorEwsAutodiscover, reason=GetUserSettings
failed, smtpAddress=archcdruser0@vdomain.com, Autodiscover
Uri=https://dc.vdomain.com/autodiscover/badautodiscover.svc, Autodiscover
WebProxy=<NULL>, WebExceptionStatus=ProtocolError --->
System.Net.WebException: The remote server returned an error: (404) Not
Found.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchan
ge.WebServices.Data.IEwsHttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverRequest.Intern
alExecute()
--- End of inner exception stack trace ---
at Microsoft.Rtc.Internal.Storage.Exchange.ExchangeContext.SendGetUserSet
tingsRequest(StoreContext ctx, String smtpAddress) in c:\depot\lcs\hf\src\de
v\server\lcs\lyss\LyssService\Exchange\ExchangeContext.cs:line 250
at Microsoft.Rtc.Internal.Storage.Exchange.ExchangeContext.GetUserEwsSett
ings(StoreContext ctx, String smtpAddress, CacheMode cacheMode) in c:\depot\
lcs\hf\src\dev\server\lcs\lyss\LyssService\Exchange\ExchangeContext.cs:line
656
Other :

Examples
-------------------------- Example 1 --------------------------

Debug-CsStorageServiceFailures -SipURI kmyer@contoso.com

This example returns debugging information about storage service failures relating to user kmyer@contoso.com.
-------------------------- Example 2 --------------------------

Debug-CsStorageServiceFailures -Component ConversationHistory

This example returns debugging information about storage service failures relating to the conversation history
component.

Parameters
-AdapterId
Specifies the GUID of the data adapter on which to gather the debugging information.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Binding
Specifies the Windows Communication Foundation (WCF ) binding. A WCF binding determines the transport,
encoding, and protocol details required for clients and services to communicate with each other. Valid values are:
NetNamedPipe
NetTCP

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Component
Specifies the storage service component for which debug information will be returned. Acceptable values for the
Component parameter are:
ConversationHistory
ExchangeArchiving
SqlArchiving
QoE
CDR
LegalIntercept
DataPurge
Other

Type: Component
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EndTime
The EndDate parameter specifies the end date of the date range.
Use the short date format defined in the Regional Options settings for the computer on which the command is run.
For example, if the computer is configured to use the short date format mm/dd/yyyy, enter 03/01/2018 to specify
March 1, 2018. You can enter the date only, or you can enter the date and time of day. If you enter the date and time
of day, you must enclose the argument in quotation marks ("), for example, "10/05/2018 5:00 PM".

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostNameStorageService
Fully qualified domain name of the server where the Skype for Business Storage Service is running. This parameter
is required if the Binding parameter is set to NetTCP.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutFileName
Specifies the full path of where to write a text file containing the debug results. Otherwise, they are written to the
console.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipUri
Specifies the Session Initiation Protocol (SIP ) Uniform Resource Identifier (URI) of the user on which to collect
debug data. This is the SIPAddress property of the user as returned by the Get-CsUser cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartTime
The StartDate parameter specifies the start date of the date range.
Use the short date format defined in the Regional Options settings for the computer on which the command is run.
For example, if the computer is configured to use the short date format mm/dd/yyyy, enter 03/01/2018 to specify
March 1, 2018. You can enter the date only, or you can enter the date and time of day. If you enter the date and time
of day, you must enclose the argument in quotation marks ("), for example, "10/05/2018 5:00 PM".

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.String
minutes to read • Edit Online

Debug-CsUnifiedContactStore
In ths Article

Verifies whether the contacts for a user (or group of users) are stored in the unified contacts store.

Syntax
Debug-CsUnifiedContactStore -Identity <UserIdParameter> [-ContactDataExportFileName <String>] [-Force]
[<CommonParameters>]

Debug-CsUnifiedContactStore -PoolFqdn <Fqdn> [-Force] [<CommonParameters>]

Description
The unified contact store (introduced in Lync Server 2013 enables users to access their contact list from multiple
applications, including Skype for Business, Outlook, and Outlook Web App. This access is made available by storing
contact information in a single location: Exchange.
The Debug-CsUnifiedContactStore cmdlet enables administrators to verify whether a specific user or a specific set
of users (that is, all the users with accounts homed in a particular pool) have their contact lists stored in the unified
contact store. If you run the Debug-CsUnifiedContactStore cmdlet against a specific user account, the cmdlet will
indicate whether that user's contacts have been moved for the unified contact store, the number of attempts that
have been made to move those contacts, and the date and time when Skype for Business Server last tried to
migrate the contact list. When called against a pool, the Debug-CsUnifiedContactStore cmdlet returns data similar
to this:
FrontEnd: atl-cs-001.litwareinc.com UcsDisabledCount: 44UcsAllowedCount: 129UcsMigratingCount:
11UcsMigratedCount: FailedUserData:
The Debug-CsUnifiedContactStore cmdlet, and the ContactDataExportFileName parameter, can also be used to
export contact information for a user to an XML file.
The functions carried out by the Debug-CsUnifiedContactStore cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Debug-CsUnifiedContactStore -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example 1 verifies the unified contact store status for all the users who have accounts
homed on the pool atl-cs-001.litwareinc.com.
-------------------------- Example 2 --------------------------
Debug-CsUnifiedContactStore -Identity "kenmyer@litwareinc.com"

In Example 2, the unified contact store status is verified for a single user: the user with the SIP address
"kenmyer@litwareinc.com".

Parameters
-ContactDataExportFileName
File path for the XML file that will contain the contacts for the specified user when those contacts exported from the
unified contact store. For example:
-ContactDataExportFileName "C:\Exports\KenMyer.xml"

Note that you must include the Identity parameter and the SIP address for the user whose contacts you want to
export. If that user has not been enabled for the unified contact store, the command will terminate and no contacts
will be exported.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any nonfatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
SIP address of an individual user whose unified contact store status is being verified. (You can specify only one user
per command.) For example:
-Identity "kenmyer@litwareinc.com"

When specifying the SIP address, the sip: prefix is optional. This syntax will also work:
-Identity "sip:kenmyer@litwareinc.com"

Type: UserIdParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the Registrar pool whose unified contact store status is being verified. All user
accounts homed on the specified pool will be checked. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Presence.Cmdlets.GetUcsFrontEndData

Related Links
Test-CsUnifiedContactStore
minutes to read • Edit Online

Disable-CsAdDomain
In ths Article

Undoes the domain preparation tasks carried out by the Enable-CsAdDomain cmdlet. This cmdlet is typically used
only if you are uninstalling Skype for Business Server from a domain. This cmdlet was introduced in Lync Server
2010.

Syntax
Disable-CsAdDomain [-Domain <Fqdn>] [-DomainController <Fqdn>] [-GlobalCatalog <Fqdn>]
[-GlobalSettingsDomainController <Fqdn>] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
When you install Skype for Business Server in a domain, that domain must be correctly prepared, a process that
includes extending the Active Directory schema to allow for the addition of attributes specific to Skype for Business
Server as well as assigning the required Access Control Entries to the universal groups needed for managing and
operating Skype for Business Server.
If you later decide to uninstall Skype for Business Server (or if you encounter problems during the setup process),
you might need to roll back these domain-level changes. The Disable-CsAdDomain cmdlet provides a way for you
to undo all the domain-level modifications made by the Enable-CsAdDomain cmdlet.
You must be a domain administrator in order to run the Disable-CsAdDomain cmdlet locally.
Historical Note: The tasks carried out by Disable-CsAdDomain are similar to the tasks carried out by the following
Microsoft Office Communications Server 2007 R2 command: Lcscmd.exe /domain /action:DomainUnprep

Examples
-------------------------- Example 1 --------------------------

Disable-CsAdDomain

The command shown in Example 1 rolls back the domain preparation process in the local domain. Because the
Force parameter is not included, the command will fail if the Disable-CsAdDomain cmdlet determines that at least
one Front End Server, A/V Conferencing Server, or Web Services server is still active in the domain.
-------------------------- Example 2 --------------------------

Disable-CsAdDomain -Domain asia.litwareinc.com

Example 2 rolls back the domain preparation process for the domain asia.litwareinc.com.
-------------------------- Example 3 --------------------------
Disable-CsAdDomain -Force

The command shown in Example 3 uses the Force parameter to force the rollback of the domain preparation
process in the local domain. This means that rollback will occur even if the Disable-CsAdDomain cmdlet
determines that at least one Front End Server, A/V Conferencing Server, or Web Services server is still active in the
domain.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
Fully qualified domain name (FQDN ) of the domain where domain preparation should be rolled back (for example,
-Domain asia.litwareinc.com). If this parameter is not included, rollback will take place on the local domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables administrators to specify the FQDN of the domain controller to be used when running Disable-
CsAdDomain. If not specified, the cmdlet will use the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present rollback will occur even if the Disable-CsAdDomain cmdlet determines that at least one Front End,
conferencing, or Web Services server is still active in the domain. If not present then the command will fail if a
Front End, Conferencing, or Web Services server is still active in the domain.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
FQDN of a global catalog server in your domain. This parameter is not required if you are running the Disable-
CsAdDomain cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory Domain Services this parameter must point to the root domain controller. If global settings are
stored in the Configuration container, then any domain controller can be used and this parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\DisableDomain.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
None

Related Links
Enable-CsAdDomain
Get-CsAdDomain
minutes to read • Edit Online

Disable-CsAdForest
In ths Article

Undoes the forest preparation tasks carried out by the Enable-CsAdForest cmdlet. This cmdlet is typically used only
if you are uninstalling Skype for Business Server 2015. This cmdlet was introduced in Lync Server 2010.

Syntax
Disable-CsAdForest [-GroupDomain <Fqdn>] [-GroupDomainController <Fqdn>] [-GlobalCatalog <Fqdn>]
[-GlobalSettingsDomainController <Fqdn>] [-RootDomainController <Fqdn>] [-Report <String>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
When you install Skype for Business Server, you make a number of forest-level changes to Active Directory
Domain Services. These changes (which can be carried out by using the Enable-CsAdForest cmdlet) include
creating objects and display specifiers that are specific to Skype for Business Server 2015, creating universal
security groups needed to manage Skype for Business Server, and granting global settings object access
administrative rights and permissions to these groups.
If you later decide to uninstall Skype for Business Server (or if you encounter issues during the setup process) you
might need to roll back these forest-level changes. The Disable-CsAdForest cmdlet provides a way for you to undo
all the forest-level modifications made by the Enable-CsAdForest cmdlet.
You must be an enterprise administrator in order to run the Disable-CsAdForest cmdlet locally.
Historical Note: The tasks carried out by Disable-CsAdForest are similar to the tasks carried out by the following
Microsoft Office Communications Server 2007 R2 command: Lcscmd.exe /forest /action:ForestUnprep

Examples
-------------------------- Example 1 --------------------------

Disable-CsAdForest

The command shown in Example 1 rolls back the forest preparation tasks carried out by the Enable-CsAdForest
cmdlet. Because the Force parameter is not included, the command will fail if the Disable-CsAdForest cmdlet
detects that at least one of the domains in the forest is still prepared for Skype for Business Server. In that case, you
will need to rolls back the domain preparation by running the Disable-CsAdDomain cmdlet.
-------------------------- Example 2 --------------------------

Disable-CsAdForest -Force

In Example 2, forest preparation is rolled back even if the Disable-CsAdForest cmdlet detects that at least one of the
domains in the forest is still prepared for Skype for Business Server. Rollback is forced by including the Force
parameter.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present, forces the rollback of the forest preparation steps even if the Disable-CsAdForest cmdlet detects that at
least one of the domains in the forest is still prepared for Skype for Business Server. If not present, the command
will fail if the Disable-CsAdForest cmdlet detects that at least one of the domains in the forest is still prepared for.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
FQDN of a global catalog server in your domain. This parameter is not required if you are running the Disable-
CsComputer cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory Domain Services, then this parameter must point to the root domain controller. If global settings
are stored in the Configuration container, then any domain controller can be used and this parameter can be
omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GroupDomain
Fully qualified domain name (FQDN ) of the domain where the Skype for Business Server universal groups were
created (for example, -GroupDomain asia.litwareinc.com). If this parameter is not included, the Disable-CsAdForest
cmdlet will look for the universal groups in the local domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GroupDomainController
FQDN of a domain controller where universal group information is stored.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\DisableForest.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RootDomainController
FQDN of the root domain controller, used to create trust paths for clients that need to access resources in domains
other than their own.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
None
minutes to read • Edit Online

Disable-CsComputer
In ths Article

Disables a service or server role that has been removed from a computer running Skype for Business Server. This
cmdlet was introduced in Lync Server 2010.

Syntax
Disable-CsComputer [-Scorch] [-GlobalCatalog <Fqdn>] [-Report <String>] [-Force] [-WhatIf] [-Confirm]
[-GlobalSettingsDomainController <Fqdn>] [<CommonParameters>]

Description
Removing a service or server role from a computer does not automatically update the Skype for Business Server
topology. Instead, that service or role must be disabled before the changes are fully updated in the topology. The
Disable-CsComputer cmdlet provides a way for administrators to disable any services or server roles that have
been removed from the local computer.
Unless you use the Scorch parameter, the Disable-CsComputer cmdlet does not uninstall the Skype for Business
Server software; instead, it simply stops the computer from functioning in its previously assigned role.
You must be a local administrator and a member of the domain in order to run the Disable-CsComputer cmdlet
locally.

Examples
-------------------------- Example 1 --------------------------

Disable-CsComputer

The command shown in Example 1 disables the local computer.


-------------------------- Example 2 --------------------------

Disable-CsComputer -Report C:\Logs\Disable.html

The command shown in Examples 2 also disables the local computer. In addition to disabling the computer,
however, this command records information about the success (or failure) of that task in the file
C:\Logs\Disable.html. This log file is generated by adding the Report parameter followed by the path to the log file
where you want the information recorded.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
Fully qualified domain name (FQDN ) of a global catalog server in your domain. This parameter is not required if
you are running the Disable-CsComputer cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory Domain Services, then this parameter must point to the root domain controller. If global settings
are stored in the Configuration container, then any domain controller can be used and this parameter can be
omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\DisableComputer.html"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Scorch
Uninstalls all Skype for Business Server services and server roles for the local computer.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
Instead, Disable-CsComputer disables instances of the Microsoft.Rtc.Management.Deploy.Internal.Machine object.

Related Links
Enable-CsComputer
Get-CsComputer
Test-CsComputer
minutes to read • Edit Online

Disable-CsHostingProvider
In ths Article

Disables a hosting provider currently in use in your organization. A hosting provider is a third-party organization
that provides instant messaging, presence, and related services for a domain that you would like to federate with.
Hosting providers differ from public providers (such as Yahoo!, MSN, and AOL ) in that their services are not
offered to the general public. This cmdlet was introduced in Lync Server 2010.

Syntax
Disable-CsHostingProvider [[-Identity] <XdsGlobalRelativeIdentity>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Disable-CsHostingProvider [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and, 3) federation between your organization and a third-party hosting provider.
A hosting provider is an organization that provides SIP communication services for other organizations; for
example, Fabrikam, Inc. might host users from Contoso, Northwind Traders, and Wingtip Toys. When you establish
a federation relationship with a hosting provider, you effectively establish federation with any organization hosted
by that provider. For example, if you federate with Fabrikam, your users will be able to exchange instant messages
and presence information with users from Contoso, Northwind Traders, and Wingtip Toys.
Hosting providers are also used in split domain scenarios. In a split domain scenario, some of your Skype for
Business Server 2015 users have accounts hosted on-premises (that is, hosted on your local implementation of
Skype for Business Server). Other users have their accounts maintained off-premises by the third-party hosting
provider. Federating with the hosting provider enables on-premises and off-premises users to communicate with
one another.
In order to federate with a third-party hosting provider you need to create and enable a new hosting provider. (In
addition, the third-party provider will need to create a federation relationship with you.) You can enable a hosting
provider at the time that provider is created; alternatively, you can enable the provider after-the-fact by using the
Enable-CsHostingProvider cmdlet. In addition, you can use the Disable-CsHostingProvider cmdlet to disable the
relationship at any time. When you disable a hosting provider that provider remains a valid federation partner;
however, all communication activity between your organization and the provider will be suspended until the
provider has been re-enabled.
Note that you cannot federate with a hosting provider if your Edge Servers are configured to use default routing
rather than Domain Name System (DNS ) server routing.
By default, members of the following groups are authorized to run the Disable-CsHostingProvider cmdlet locally:
RTCUniversalServerAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Disable-CsHostingProvider"}

Examples
-------------------------- Example 1 --------------------------

Disable-CsHostingProvider -Identity "Fabrikam.com"

The command shown in Example 1 disables the hosting provider Fabrikam.com. Note that this command will
return an error message if Fabrikam.com is already disabled.
-------------------------- Example 2 --------------------------

Get-CsHostingProvider | Where-Object {$_.Enabled -eq $True} | Disable-CsHostingProvider

Example 2 disables all the hosting providers that are currently enabled. To do this, the command first calls the Get-
CsHostingProvider cmdlet to return a collection of all the hosting providers configured for use in the organization.
That collection is then piped to the Where-Object cmdlet, which picks out only those providers where the Enabled
property is equal to True. The filtered collection is then piped to the Disable-CsHostingProvider cmdlet, which
disables each provider in the collection.
-------------------------- Example 3 --------------------------

Get-CsHostingProvider | Where-Object {$_.VerificationLevel -ne "AlwaysVerifiable" -and $_.Enabled -eq $True} |


Disable-CsHostingProvider

In Example 3, all the enabled hosting providers where the verification level is not equal to AlwaysVerifiable are
disabled. To carry out this task, the command first uses the Get-CsHostingProvider cmdlet to return a collection of
all the hosting providers configured for use in the organization. This collection is piped to the Where-Object cmdlet,
which selects only those providers that meet two criteria: 1) the VerificationLevel property is not equal to
AlwaysVerifiable; and, 2) the Enabled property is equal to True. The filtered collection is then piped to the Disable-
CsHostingProvider cmdlet, which disables each provider in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the hosting provider to be disabled. The Identity might be the fully qualified domain (FQDN )
name of the hosting provider (for example, fabrikam.com) or perhaps the name of the company providing the
services (Fabrikam, Inc.).

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider
The Disable-CsHostingProvider cmdlet accepts pipelined instances of the hosting provider object.

Outputs
None
Instead, the cmdlet disables instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider object.
Related Links
Enable-CsHostingProvider
Get-CsHostingProvider
New -CsHostingProvider
Remove-CsHostingProvider
Set-CsHostingProvider
minutes to read • Edit Online

Disable-CsMeetingRoom
In ths Article

Disables a Skype for Business Server meeting room. A meeting room is a conferencing device designed to address
video conferencing and collaboration scenarios in small conference rooms. When you disable a meeting room
object you remove all the Skype for Business Server-specific Active Directory attributes assigned to the user
account that represents the meeting room. However, the Active Directory user account itself is not deleted. This
cmdlet was introduced in Lync Server 2013.

Syntax
Disable-CsMeetingRoom [-Identity] <UserIdParameter> [-Confirm] [-DomainController <Fqdn>] [-PassThru] [-WhatIf]
[-AsJob] [<CommonParameters>]

Description
In Skype for Business Server 2015, meeting rooms are self-contained computer appliances that are installed in
conference rooms and supply advanced meeting capabilities such as:
One touch meeting join experience
Multi-view video gallery
Touch-enabled white-boarding on the front of room screen
Calendar integration to provide access to scheduled meetings
Content sharing and switching
In order to manage these new endpoint devices you must, among other things, create and enable an Exchange
resource mailbox account for the device, then enable that resource account for Skype for Business Server 2015.
Note that, for Skype for Business Server 2015, there are no cmdlets for creating or removing meeting rooms.
Instead, you use the Enable-CsMeetingRoom cmdlet to enable meeting rooms and the Disable-CsMeetingRoom
cmdlet to disable meeting rooms. The resource account must already exist in order for you to enable the meeting
room, and disabling a meeting room only removes that room from your collection of meeting rooms; it does not
delete the resource mailbox account.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Disable-CsMeetingRoom"}

The functions carried out by the Disable-CsMeetingRoom cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------
Disable-CsMeetingRoom -Identity "sip:RedmondMeetingRoom@litwareinc.com"

The command shown in Example 1 disables the meeting room sip:RedmondMeetingRoom@litwareinc.com.


-------------------------- Example 2 --------------------------

Get-CsMeetingRoom | Disable-CsMeetingRoom

In Example 2, all the meeting rooms currently in use in the organization are disabled. To do this, the Get-
CsMeetingRoom cmdlet is first used to retrieve a collection of all the meeting rooms. That collection is then piped
to the Disable-CsMeetingRoom cmdlet, which disables each meeting room in the collection.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to disable a meeting room. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-dc-001) or its fully qualified domain name (FQDN ) (for example, atl-dc-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be configured as a meeting room. Identities are typically specified by
using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain
name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active
Directory display name (for example, Ken Myer).
You can also reference a user account by using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the user who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a meeting room object through the pipeline that represents the meeting room being disabled.
By default, the Disable-CsMeetingRoom cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADMeetingRoom

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
None
Instead, Disable-CsMeetingRoom deletes instance of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADMeetingRoom object.

Related Links
Enable-CsMeetingRoom
Get-CsMeetingRoom
Move-CsMeetingRoom
Set-CsMeetingRoom
minutes to read • Edit Online

Disable-CsOnlineDialInConferencingUser
In ths Article

Use the `Disable-CsOnlineDialInConferencingUser` cmdlet to prevent a Skype for Business Online user from using
dial-in or audio conferencing through Skype for Business Online.

Syntax
Disable-CsOnlineDialInConferencingUser [-WhatIf] [-SendEmailFromDisplayName <String>] [-TenantDomain <String>]
[-SendEmailToAddress <String>] [-SendEmailFromAddress <String>] [-Confirm] [-SendEmail] [[-Identity]
<UserIdParameter>]
[-Tenant <Guid>] [-DomainController <Fqdn>] [-Force] [-AsJob] [<CommonParameters>]

Description
The Disable-CsOnlineDialInConferencingUser cmdlet validates that the user is provisioned for audio conferencing
using Microsoft as the audio conferencing provider and then disables audio conferencing which prevents the user
from setting up audio conferences or meetings.
When a user is disabled, the conference ID or passcode that was assigned to the user is released so it can be used
by another user that is enabled for dial-in or audio conferencing even if they have a license assigned to them.
When you disable the user for audio conferencing using this cmdlet, it will check that the user belongs to the
specified tenant or domain and any audio conferencing information is removed.
If the user is enabled for a third-party audio conferencing provider (ACP ) and the Active Directory information is
set, the cmdlet will fail and you must use the Remove-CsUserACP cmdlet.

Examples
-------------------------- Example 1 --------------------------

PS C:> Disable-CsOnlineDialInConferencingUser -Identity "Pilar Ackerman" -Confirm

This example disables user "Pilar Ackerman" from using audio conferencing and will prompt you to confirm the
operation.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the user account that will be disabled for Skype for Business Online. A user identity can be
specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the
user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the
user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the
user's Active Directory distinguished name.
Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendEmail
Send an email to the user that contains his Audio Conference information.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendEmailFromAddress
You can specify the From Address to send the email that contains the Audio Conference information. This
parameter must be used together with -SendEmailFromDisplayName and -SendEmail.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendEmailFromDisplayName
You can specify the Display Name to send the email that contains the Audio Conference information. This
parameter must be used together with -SendEmailFromAddress and -SendEmail.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendEmailToAddress
You can specify the To Address to send the email that contains the Audio Conference information. This parameter
must be used together with -SendEmail.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
NOTE: This parameter is reserved for internal Microsoft use.
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example: -
Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantDomain
NOTE: This parameter is reserved for internal Microsoft use.
Specifies the domain name for the tenant or organization.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Enable-CsOnlineDialInConferencingUser
Get-CsOnlineDialInConferencingUser
Set-CsOnlineDialInConferencingUser
minutes to read • Edit Online

Disable-CsOnlineSipDomain
In ths Article

This cmdlet prevents provisioning of users in Skype for Business Online for the specified domain. This cmdlet
allows organizations with multiple on-premises deployments of Skype For Business Server or Lync Server to safely
synchronize users from multiple forests into a single Office 365 tenant.

Syntax
Disable-CsOnlineSipDomain -Domain <String> [-Force] [-Confirm] [<CommonParameters>]

Description
NOTE
Only one Skype for Business forest can be in hybrid mode at a given time. For full details on this scenario, including step-by-
step instructions, see Cloud consolidation for Teams and Skype for Business.

This cmdlet enables organizations with multiple on-premises deployments of Skype for Business Server (or Lync
Server ) to safely synchronize users from multiple forests into a single Office 365 tenant. When an online SIP
domain is disabled in Skype for Business Online, provisioning is blocked for users in this SIP domain. This ensures
routing for any on-premises users in this SIP domain continues to function properly.
This cmdlet facilitates consolidation of multiple Skype for Business Server deployments into a single Office 365
tenant. Consolidation can be achieved by moving one deployment at a time into Office 365, provided the
following key requirements are met:
There must be at most 1 O365 tenant involved. Consolidation in scenarios with >1 O365 tenant is not supported.
At any given time, only 1 on-premise SfB forest can be in hybrid mode (Shared Sip Address Space) with Office
365. All other on-premises SfB forests must remain on-premises. (They presumably are federated with each other.)
If 1 deployment is in hybrid mode, all sip domains from any other SfB forests must be disabled using this cmdlet
before they can be synchronized into the tenant with Azure AD Connect. Users in all SfB forests other than the
hybrid forest must remain on-premises.
Organizations must fully migrate each SfB forest individually into the O365 tenant using hybrid mode (Shared
Sip Address Space), and then detach the “hybrid” deployment, before moving on to migrate the next on-
premise SfB deployment.
This cmdlet may also be useful for organizations with on-premises deployments of Skype for Business Server that
have not properly configured Azure AD Connect. If the organization does not sync msRTCSIP -DeploymentLocator
for its users, then Skype for Business Online will attempt to provision online any users with an assigned Skype for
Business license, despite there being users on-premises. While the correct fix is to update the configuration for
Azure AD Connect to sync those attributes, using Disable-CsOnlineSipDomain can also mitigate the problem until
that configuration change can be made. If this cmdlet is run, any users that were previously provisioned online in
that domain will be de-provisioned in Skype for Business Online.
IMPORTANT This cmdlet should not be run for domains that contain users hosted in Skype for Business Online.
Any users in a sip domain that are already provisioned online will cease to function if you disable the online sip
domain:
Their SIP addresses will be removed.
All contacts and meetings for these users hosted in Skype for Business Online will be deleted.
These users will no longer be able to login to the Skype for Business Online environment.
If these users use Teams, they will no longer be able to inter-operate with Skype for Business users, nor will they be
able to federate with any users in other organizations.

Examples
Example 1

PS C:\> Disable-CsOnlineSipDomain -Domain Fabrikam.com

The cmdlet above disables the online sip domain Fabrikam.com. This would be useful in the case where a company,
Contoso.com, that has Skype for Business acquires Fabrikam, which also has an on-premises deployment of Skype
for Business Server. If Contoso is in hybrid mode with Skype for Business Online or if the intent is to configure it
for hybrid, then if the organization wants to synchronize identities from Fabrikam.com into the same O365 tenant,
the organization must first run this cmdlet.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
The SIP domain to be disabled for online provisioning in Skype for Business Online.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses all confirmation prompts that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None

Notes
This cmdlet is for advanced scenarios only. Organizations that are pure online or have only 1 on-premise
deployment need not run this cmdlet.

Related Links
Enable-CsOnlineSipDomain
Get-CsOnlineSipDomain
Cloud consolidation for Teams and Skype for Business
minutes to read • Edit Online

Disable-CsPublicProvider
In ths Article

Disables a public provider configured for use in your organization. A public provider is an organization that
provides instant messaging, presence, and related services to the general public. This cmdlet was introduced in
Lync Server 2010.

Syntax
Disable-CsPublicProvider [[-Identity] <XdsGlobalRelativeIdentity>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Disable-CsPublicProvider [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and, 3) federation between your organization and a third-party hosting provider.
A public provider is an organization that provides Session Initiation Protocol (SIP ) communication services for the
general public. When you establish a federation relationship with a public provider, you effectively establish
federation with any user who has an account hosted by that provider. For example, if you federate with Skype your
users will be able to exchange instant messages and presence information with anyone who has a Skype instant
messaging account.
In order to federate with a public provider you need to create and enable a new public provider. (In addition, the
public provider will need to create a federation relationship with you.) When you create a public provider, you have
the option of either enabling or disabling that federation relationship. If a public provider is enabled, then users in
your organization will be able to exchange instant messages and presence information with people who have
accounts with the public provider. If a public provider is disabled, then your ability to communicate with people who
have accounts with the public provider will be suspended, and will remain suspended until the provider has been
re-enabled. If you need to temporarily suspend a provider relationship you can do so by using the Disable-
CsPublicProvider cmdlet. If you prefer to delete that provider altogether, use the Remove-CsPublicProvider cmdlet.
By default, members of the following groups are authorized to run the Disable-CsPublicProvider cmdlet locally:
RTCUniversalServerAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Disable-CsPublicProvider"}
Examples
-------------------------- Example 1 --------------------------

Disable-CsPublicProvider -Identity "Skype"

Example 1 disables the public provider with the Identity Skype. This command will return an error if Skype is
already disabled.
-------------------------- Example 2 --------------------------

Get-CsPublicProvider | Where-Object {$_.Enabled -eq $True} | Disable-CsPublicProvider

Example 2 disables all the public providers that are currently enabled. To do this, the command first uses the Get-
CsPublicProvider cmdlet to return a collection of all the public providers currently in use in the organization. This
collection is piped to the Where-Object cmdlet, which picks out only those providers where the Enabled property is
equal to True. In turn, this filtered collection is piped to the Disable-CsPublicProvider cmdlet, which disables each
provider in the collection.
-------------------------- Example 3 --------------------------

Get-CsPublicProvider | Where-Object {$_.VerificationLevel -ne "AlwaysVerifiable" -and $_.Enabled -eq $True} |


Disable-CsPublicProvider

The command shown in Example 3 disables all the public providers that are current enabled and that have a
verification level set to AlwaysVerifiable. To accomplish this task, the command first calls the Get-CsPublicProvider
cmdlet to return a collection of all the public providers currently in use in the organization. This collection is then
piped to the Where-Object cmdlet, which selects the providers that meet two criteria: 1) the VerificationLevel
property is equal to AlwaysVerifiable; and, 2) the Enabled property is equal to True. (The -and operator tells the
Where-Object cmdlet that objects must meet all the specified criteria in order to be selected.) The filtered collection
is then piped to the Disable-CsPublicProvider cmdlet, which disables each provider in that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the public provider to be disabled. The Identity is typically the name of the website providing
the services.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider
The Disable-CsPublicProvider cmdlet accepts pipelined instances of the public provider object.

Outputs
None
Instead, the cmdlet disables instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider object.

Related Links
Enable-CsPublicProvider
Get-CsPublicProvider
New -CsPublicProvider
Remove-CsPublicProvider
Set-CsPublicProvider
minutes to read • Edit Online

Disable-CsUser
In ths Article

Modifies the Active Directory account of the specified user or users; this modification prevents users from using
Skype for Business Server clients such as Skype for Business. The Disable-CsUser cmdlet only restricts activity
related to Skype for Business Server; it does not disable or remove a user's Active Directory account. This cmdlet
was introduced in Lync Server 2010.

Syntax
Disable-CsUser [-Identity] <UserIdParameter> [-DomainController <Fqdn>] [-PassThru] [-Confirm] [-WhatIf]
[<CommonParameters>]

Description
The Disable-CsUser cmdlet deletes all the attribute information related to Skype for Business Server from an
Active Directory user account; this prevents the user from logging on to Skype for Business Server.
When you run the Disable-CsUser cmdlet all the Skype for Business Server-related attributes are removed from an
account, including the Identities of any per-user policies that have been assigned to that account. You can later re-
enable the account by using the Enable-CsUser cmdlet. However, all the Skype for Business Server-related
information (such as policy assignments) previously associated with that account will have to be re-created.
If you want to prevent a user from logging on to Skype for Business Server, but do not want to lose all of their
account information, use the Set-CsUser cmdlet instead. For details, see the Set-CsUser cmdlet help topic.
After an account has been disabled with the Disable-CsUser cmdlet, the affected user will no longer be returned by
the Get-CsUser cmdlet; that's because that user no longer has a valid Skype for Business Server account. To
retrieve information for the disabled user account, use the Get-CsAdUser cmdlet.
In addition, user data belonging to the deleted user account will be removed from the backend databases; for
example, the user will be removed from Contacts lists in the organization, and any conferences scheduled by that
user will be deleted.
By default, members of the following groups are authorized to run the Disable-CsUser cmdlet locally:
RTCUniversalUserAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Disable-CsUser"}

Examples
-------------------------- Example 1 --------------------------

Disable-CsUser -Identity "Ken Myer"


Example 1 disables the Skype for Business Server account for the user Ken Myer. In this example, the user's display
name is used to indicate his Identity.
-------------------------- Example 2 --------------------------

Get-CsUser -LdapFilter "Department=Finance" | Disable-CsUser

In Example 2, all the users in the Finance department have their Skype for Business Server 2015 accounts disabled.
To carry out this task, the command first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a
collection of all the users who belong to the Finance department. That collection is then piped to the Disable-
CsUser cmdlet, which disables each account in the collection.
-------------------------- Example 3 --------------------------

Get-CsUser -UnassignedUser | Disable-CsUser

In this example, all the user accounts not currently assigned to a Registrar pool are disabled. To do this, the Get-
CsUser cmdlet is called, along with the UnassignedUser parameter. This parameter restricts the returned data to
users who have valid user accounts but are not assigned to a Registrar pool. That collection is then piped to the
Disable-CsUser cmdlet, which disables each account in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to disable a user account. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-cs-001) or its fully qualified domain name (FQDN ) (for example, atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be disabled. User Identities can be specified by using one of four
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon
name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name
(for example, Ken Myer). You can also reference a user account by using the Active Directory distinguished name.

You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being disabled. By default,
the Disable-CsUser cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser
The Disable-CsUser cmdlet accepts a pipelined string value representing the Identity of a user account that has
been enabled for Skype for Business Server. The cmdlet also accepts pipelined instances of the Active Directory
user object.

Outputs
None
The Disable-CsUser cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.ADConnect.Schema.ADUser object.

Related Links
Enable-CsUser
Get-CsUser
minutes to read • Edit Online

Enable-CsAdDomain
In ths Article

Modifies the security settings on the universal groups created during forest preparation. These modifications
provide the permissions needed to host and manage users enabled for Skype for Business Server within the
domain. This cmdlet was introduced in Lync Server 2010.

Syntax
Enable-CsAdDomain [-Domain <Fqdn>] [-DomainController <Fqdn>] [-SkipPrepareCheck <Boolean>] [-CrossForest]
[-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>] [-Force] [-Report <String>] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
Before you can install Skype for Business Server in a domain, that domain must be correctly prepared, a process
that includes extending the Active Directory schema to allow for the addition of attributes specific to Skype for
Business Server as well as assigning the required Access Control Entries to the universal groups needed for
managing and operating Skype for Business Server. Domain preparation is typically carried out through the Skype
for Business Server Setup Wizard. However, administrators can also perform domain preparation by running the
Enable-CsAdDomain cmdlet.
After the Enable-CsAdDomain cmdlet finishes running, you can use the Get-CsAdDomain cmdlet to verify that the
domain is ready for the next step in the installation process.
If you receive the following error, "Cannot find the object 'CrossRef' in Active Directory" while running tasks to
prepare a child domain of a single-forest environment with multiple domains, you may have to manually add the
RTCComponentUniversalServices group from the parent domain to the Windows Authorization Access group in
the child domain.
Historical Note: This cmdlet carries out tasks similar to those carried out by the following Microsoft Office
Communications Server 2007 R2 command:
Lcscmd.exe /domain /action:DomainPrep

Examples
-------------------------- Example 1 --------------------------

Enable-CsAdDomain

The command shown in Example 1 prepares the local domain for the installation of Skype for Business Server.
-------------------------- Example 2 --------------------------
Enable-CsAdDomain -Domain asia.litwareinc.com

Example 2 prepares the domain asia.litwareinc.com for the installation of Skype for Business Server.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CrossForest
If present, indicates that domain preparation is taking place in a domain in a different forest. This parameter is not
required if the domain being enabled is in the same forest as the computer where the command is being run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
Fully qualified domain name (FQDN ) of the domain where domain preparation is to take place (for example, -
Domain asia.litwareinc.com). If this parameter is not included, domain preparation will take place on the local
domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables administrators to specify the FQDN of the domain controller to be used when running the Enable-
CsAdDomain cmdlet. If not specified, the cmdlet will use the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
FQDN of a global catalog server in your domain. This parameter is not required if you are running the Enable-
CsAdDomain cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory Domain Services, then this parameter must point to the root domain controller. If global settings
are stored in the Configuration container then any domain controller can be used and this parameter can be
omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\DomainPrep.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipPrepareCheck
If set to True ($True), then the Enable-CsAdDomain cmdlet will skip its initial preparation check.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None

Related Links
Disable-CsAdDomain
Get-CsAdDomain
minutes to read • Edit Online

Enable-CsAdForest
In ths Article

Makes the Active Directory modifications required before you can install Skype for Business Server. This includes
making global changes to the Configuration or System containers; creating universal groups; and creating property
sets and display specifiers that are specific to Skype for Business Server. This cmdlet was introduced in Lync Server
2010.

Syntax
Enable-CsAdForest [-GroupDomain <Fqdn>] [-GroupDomainController <Fqdn>] [-GlobalCatalog <Fqdn>]
[-GlobalSettingsDomainController <Fqdn>] [-RootDomainController <Fqdn>] [-Force] [-Report <String>] [-WhatIf]
[-Confirm] [-SkipPrepareCheck <Boolean>] [<CommonParameters>]

Description
Before you can install Skype for Business Server, you must make a number of forest-level changes to Active
Directory Domain Services. This includes creating display specifiers and objects specific to Skype for Business
Server, creating the universal security groups that are needed to manage Skype for Business Server, and granting
global settings object access rights to these groups.
Forest preparation is typically carried out through the Skype for Business Server Setup Wizard. However,
enterprise administrators can also perform forest preparation at any time by running the Enable-CsAdForest
cmdlet.
After the Enable-CsAdForest cmdlet finishes running, you can use the Get-CsAdForest cmdlet to verify that the
forest is ready for the next step in the installation process.
You must be an enterprise administrator in order to run the Enable-CsAdForest cmdlet locally.
Historical Note: This cmdlet carries out tasks similar to those carried out by the following Microsoft Office
Communications Server 2007 R2 command:
Lcscmd.exe /forest /action:ForestPrep

Examples
-------------------------- Example 1 --------------------------

Enable-CsAdForest

This command prepares the Active Directory forest for the installation of Skype for Business Server. Because the
GroupDomain parameter is not used, the universal security groups generated when you run the Enable-
CsAdForest cmdlet will be created in the local domain.
-------------------------- Example 2 --------------------------
Enable-CsAdForest -GroupDomain northamerica.litwareinc.com

This command prepares the Active Directory forest for the installation of Skype for Business Server. The
GroupDomain parameter is used to ensure that the universal security groups created by running the Enable-
CsAdForest cmdlet will be created in the northamerica.litwareinc.com domain.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
FQDN of a global catalog server in your domain. This parameter is not required if you are running the Enable-
CsAdForest cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory, then this parameter must point to the root domain controller. If global settings are stored in the
Configuration container, then any domain controller can be used and this parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GroupDomain
Fully qualified domain name (FQDN ) of the domain where the new universal security groups should be created. If
this parameter is not included, then the groups will be created in the local domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GroupDomainController
FQDN of a domain controller where universal group information is stored.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ForestPrep.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RootDomainController
FQDN of the root domain controller, used to create trust paths for clients that need to access resources in domains
other than their own.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipPrepareCheck
When set to True ($True), causes Enable-CsAdForest to run without first doing its initial preparation checks.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
minutes to read • Edit Online

Enable-CsComputer
In ths Article

Enables new or newly-updated services or server roles on a computer running Skype for Business Server. This
cmdlet was introduced in Lync Server 2010.

Syntax
Enable-CsComputer [-GlobalCatalog <Fqdn>] [-Report <String>] [-Force] [-WhatIf] [-Confirm]
[-GlobalSettingsDomainController <Fqdn>] [<CommonParameters>]

Description
Installing the required software does not automatically cause a computer to adopt a new service role; instead, that
computer must be enabled before it actually begins to function in its new role. The Enable-CsComputer cmdlet
provides a way for administrators to enable newly updated services or server roles on the local computer.
You must be a local administrator and a member of the domain in order to run the Enable-CsComputer cmdlet
locally.

Examples
-------------------------- Example 1 --------------------------

Enable-CsComputer

The command shown in Example 1 activates any new Skype for Business Server services or server roles that have
been installed on the local computer.
-------------------------- Example 2 --------------------------

Enable-CsComputer -Verbose

Example 2 also activates any new Skype for Business Server services or server roles that have been installed on the
local computer. In this case, however, the addition of the Verbose parameter ensures that a step-by-step account of
the tasks being carried out by the Enable-CsComputer cmdlet will be reported on the screen.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
Fully qualified domain name (FQDN ) of a global catalog server in your domain. This parameter is not required if
you are running the Enable-CsComputer cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory, then this parameter must point to the root domain controller. If global settings are stored in the
Configuration container, then any domain controller can be used and this parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\EnableComputer.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
Instead, the Enable-CsComputer cmdlet enables instances of the
Microsoft.Rtc.Management.Deploy.Internal.Machine object.

Related Links
Disable-CsComputer
Get-CsComputer
Test-CsComputer
minutes to read • Edit Online

Enable-CsHostingProvider
In ths Article

Enables a hosting provider for use in your organization. A hosting provider is a third-party organization that
provides instant messaging, presence, and related services for a domain that you would like to federate with.
Hosting providers differ from public providers (such as Yahoo!, MSN, and AOL ) in that their services are not
offered to the general public. This cmdlet was introduced in Lync Server 2010.

Syntax
Enable-CsHostingProvider [[-Identity] <XdsGlobalRelativeIdentity>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Enable-CsHostingProvider [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and, 3) federation between your organization and a third-party hosting provider.
A hosting provider is an organization which provides SIP communication services for other organizations; for
example, Fabrikam, Inc. might host users from Contoso, Northwind Traders and Wingtip Toys. When you establish
a federation relationship with a hosting provider, you effectively establish federation with any organization hosted
by that provider. For example, if you federate with Fabrikam, your users will be able to exchange instant messages
and presence information with users from Contoso, Northwind Traders, and Wingtip Toys.
Hosting providers are also used in split domain scenarios. In a split domain scenario, some of your Skype for
Business Server users have accounts hosted on-premises (that is, hosted on your local implementation of Skype for
Business Server). Other users have their accounts maintained off-premises by the third-party hosting provider.
Federating with the hosting provider enables on-premises and off-premises users to communicate with one
another.
In order to federate with a third-party hosting provider, you need to create and enable a new hosting provider. (In
addition, the third-party provider will need to create a federation relationship with you.) You can enable a hosting
provider at the time that provider is created; alternatively, you can enable that provider after-the-fact by using the
Enable-CsHostingProvider cmdlet
Note that you cannot federate with a hosting provider if your Edge Servers are configured to use default routing
rather than Domain Name System (DNS ) server routing.
By default, members of the following groups are authorized to run the Enable-CsHostingProvider cmdlet locally:
RTCUniversalServerAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Enable-CsHostingProvider"}

Examples
-------------------------- Example 1 --------------------------

Enable-CsHostingProvider -Identity Fabrikam.com

In Example 1, the hosting provider with the Identity Fabrikam.com is enabled for use. Note that this command will
return an error if Fabrikam.com has already been enabled for use.
-------------------------- Example 2 --------------------------

Get-CsHostingProvider | Where-Object {$_.Enabled -eq $False} | Enable-CsHostingProvider

Example 2 shows how you can enable all the hosting providers that are currently disabled. To do this, the command
first calls the Get-CsHostingProvider cmdlet without any additional parameters in order to return a collection of all
the hosting providers currently configured for use in the organization. This collection is then piped to the Where-
Object cmdlet, which selects any provider where the Enabled property is equal to False; by definition, that is any
provider that is currently disabled. This filtered collection is then piped to the Enable-CsHostingProvider cmdlet,
which enables each of the providers in the collection.
-------------------------- Example 3 --------------------------

Get-CsHostingProvider | Where-Object {$_.EnabledSharedAddressSpace -eq $True -and $_.Enabled -eq $False} |


Enable-CsHostingProvider

In Example 3, all of the hosting providers used in a "split domain" setup are enabled for use. (Split domain means
that some of your Skype for Business Server accounts are maintained on-premises while other accounts are
maintained by a hosting provider.) To carry out this task, the command first uses the Get-CsHostingProvider
cmdlet to return a collection of all the currently-configured hosting providers. This collection is then piped to the
Where-Object cmdlet, which selects only those providers that meet two criteria: 1) the
EnabledSharedAddressSpace property is equal to True; and, 2) the Enabled property is equal to False. After that,
the filtered collection is piped to the Enable-CsHostingProvider cmdlet, which enables each provider in the
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the hosting provider to be enabled. The Identity is might be the fully qualified domain name
(FQDN ) of the hosting provider (for example, fabrikam.com) or perhaps the name of the company providing the
services (Fabrikam, Inc.).

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider

Outputs
None
Instead, the cmdlet enables instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider object.

Related Links
Disable-CsHostingProvider
Get-CsHostingProvider
New -CsHostingProvider
Remove-CsHostingProvider
Set-CsHostingProvider
minutes to read • Edit Online

Enable-CsMeetingRoom
In ths Article

Enables a Skype for Business Server meeting room. A meeting room is a conferencing device designed to address
video conferencing and collaboration scenarios in small conference rooms. To enable a meeting room you must
first create an Active Directory user account that will represent that system. Note that, although meeting room
objects are based on user accounts, these objects will not show up when you run the Get-CsUser cmdlet. This
cmdlet was introduced in Lync Server 2013. The process for creating and updating meeting rooms differs
depending on your deployment of Skype for Business Online and Skype for Business Server. Make sure you are
following the guidance here to set up your meeting rooms properly: https://docs.microsoft.com/en-
us/skypeforbusiness/deploy/deploy-clients/with-office-365

Syntax
Enable-CsMeetingRoom [-Identity] <UserIdParameter> [-Confirm] [-DomainController <Fqdn>]
[-HostingProviderProxyFqdn <Fqdn>] [-OriginatorSid <SecurityIdentifier>] [-PassThru] [-ProxyPool <Fqdn>]
[-RegistrarPool <Fqdn>] [-SipAddress <String>] [-SipAddressType <AddressType>] [-SipDomain <Fqdn>] [-WhatIf]
[-AsJob] [<CommonParameters>]

Description
In Skype for Business Server, meeting rooms are self-contained computer appliances that are installed in
conference rooms and supply advanced meeting capabilities such as:
One touch meeting join experience
Multi-view video gallery
Touch-enabled white-boarding on the front of room screen
Calendar integration to provide access to scheduled meetings
Content sharing and switching
In order to manage these new endpoint devices you must, among other things, create and enable an Exchange
resource mailbox account for the device, then enable that resource account for Skype for Business Server. Note
that, for Skype for Business Server, there are no cmdlets for creating or removing meeting rooms. Instead, you use
the Enable-CsMeetingRoom cmdlet to enable meeting rooms and the Disable-CsMeetingRoom cmdlet to disable
meeting rooms. The resource account must already exist in order for you to enable the meeting room, and
disabling a meeting room only removes that room from your collection of meeting rooms; it does not delete the
resource mailbox account.
The process for creating and updating meeting rooms differs depending on your deployment of Skype for Business
Online and Skype for Business Server. Make sure you are following the guidance here to set up your meeting
rooms properly: https://docs.microsoft.com/en-us/skypeforbusiness/deploy/deploy-clients/with-office-365
The functions carried out by the Enable-CsMeetingRoom cmdlet are not available in the Skype for Business Server
Control Panel.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Enable-CsMeetingRoom"}

Examples
-------------------------- Example 1 --------------------------

Enable-CsMeetingRoom -Identity "Redmond Meeting room" -RegistrarPool "atl-cs-001.litwareinc.com" -SipAddress


"sip:RedmondMeetingRoom@litwareinc.com"

The command shown in Example 1 enables the meeting room that has the Identity (in this case, the Active
Directory display name) Redmond Meeting room. The new meeting room is homed on the Registrar pool arl-cs-
001.litwareinc.com and given the SIP address sip:RedmondMeetingRoom@litwareinc.com.
-------------------------- Example 2 --------------------------

Get-CsAdUser -OU "OU=MeetingRooms,dc=litwareinc,dc=com" | Enable-CsMeetingRoom -RegistrarPool "atl-cs-


001.litwareinc.com" -SipAddressType "SamAccountName" -SipDomain "litwareinc.com"

Example 2 enables all the meeting rooms found in the MeetingsRoom OU. (In other words, this command enables
all the user accounts in the MeetingsRoom OU.) To do this, the command first calls the Get-CsAdUser cmdlet along
with the OU parameter; the parameter value "OU=MeetingRooms,dc=litwareinc,dc=com" limits returned data to
user accounts found in the MeetingRooms OU. Those accounts are then piped to the Enable-CsMeetingRoom
cmdlet, which takes each account in the collection and enables that account as a meeting room. Each new meeting
rooms will be home on the Registrar pool atl-cs-001.litwareinc.com and will have a SIP address composed of the
account's SamAccountName parameter (for example, room14) and the SIP domain litwareinc.com.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to enable a meeting room. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-dc-001) or its fully qualified domain name (FQDN ) (for example, atl-dc-001.litwareinc.com).
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostingProviderProxyFqdn
Fully qualified domain name of the hosting provider proxy server. This parameter is used only with Skype for
Business Online.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be configured as a meeting room. Identities are typically specified by
using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain
name and logon name, in the form domain\logon (for example, litwareinc\room14); and, 4) the user's Active
Directory display name (for example, Room 14).
You can also reference a user account by using the user's Active Directory distinguished name.
You can use the asterisk (*) wildcard character when using the Display Name as the user Identity. For example, the
Identity "Smith" returns all the user who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-OriginatorSid
Value of the msRTCSIP -OriginatorSID attribute. This Active Directory attribute is used to enable single sign-on.
This parameter is used only with Skype for Business Online.

Type: SecurityIdentifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a meeting room object through the pipeline that represents the meeting room being enabled
for Skype for Business Server. By default, the Enable-CsMeetingRoom cmdlet does not pass objects through the
pipeline.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyPool
Proxy pool name. This parameter is used only with Skype for Business Online.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegistrarPool
Indicates the Registrar pool where the meeting room's Skype for Business Server 2015 account will be homed.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
Enables you to assign the meeting room a specific SIP address. When specifying the SIP address, preface the
address with "sip:". That means the value supplied to the SipAddress parameter should look something like this:
sip:room14@litwareinc.com

The SipAddress parameter should not be used if you use the SipAddressType parameter in order to have Skype for
Business Server 2015 automatically generate a SIP address for the meeting room.
The SipAddress parameter cannot be used if you are attempting to enable multiple meeting rooms at the same
time. Instead, you must auto-generate SIP address for those rooms by using the SipAddressType parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddressType
Instructs Skype for Business Server to auto-generate a SIP address for the new meeting room. In order to have
Skype for Business Server auto-generate the SIP address, you must include the SipAddressType parameter and
use one of the following parameter values:
FirstLastName: The SIP address is the user's first name and a period followed by the user's last name and the
SIP domain. For example, the user Room 14 would have a SIP address similar to this:
Room.14@litwareinc.com. If you use this address type then you must also include the SipDomain parameter.
EmailAddress: The user's email address (as defined in Active Directory) is used as the SIP
address.UserPrincipalName. The user's UPN is used as the SIP address.
SamAccountName: The SIP address is the user's SamAccountName (logon name) followed by the SIP domain.
For example, the user with the SamAccountName room14 will have a SIP address similar to this:
room14@litwareinc.com. If you use this address type then you must also include the SipDomain parameter.
The SipAddressType parameter is not required if you use the SIPAddress parameter and explicitly assign the user a
SIP address.

Type: AddressType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipDomain
The SIP domain for the meeting room being enabled. This parameter is required if you use the SIPAddressType
parameter to have Skype for Business Server auto-generate a SIP address for the user and you based SIP
addresses on the SamAccountName or the user's first name and last name. This parameter is not required if you
base SIP addresses on the user's email address or UPN; that's because the domain name is already included in
those attribute values.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser
The Enable-CsMeetingRoom cmdlet accepts a pipelined string value representing the Identity of a user account
that has been enabled for Skype for Business Server. The cmdlet also accepts pipelined instances of the Active
Directory user object.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADMeetingRoom
Related Links
Disable-CsMeetingRoom
Get-CsMeetingRoom
Move-CsMeetingRoom
Set-CsMeetingRoom
minutes to read • Edit Online

Enable-CsOnlineDialInConferencingUser
In ths Article

Use the `Enable-CsOnlineDialInConferencingUser` cmdlet to enable a Skype for Business user to access audio
conferencing through Skype for Business Online.

Syntax
Enable-CsOnlineDialInConferencingUser [-AllowPstnOnlyMeetings <Boolean>] [-ServiceNumber <String>]
[-SendEmailFromDisplayName <String>] [-ConferenceId <Int32>] [-TenantDomain <String>]
[-TollFreeServiceNumber <String>] [-SendEmailToAddress <String>] [-SendEmailFromAddress <String>] [-SendEmail]
[[-Identity] <UserIdParameter>] [-Tenant <Guid>] [-AllowTollFreeDialIn <Boolean>] [-DomainController <Fqdn>]
[-ReplaceProvider] [-Force] [-AsJob] [<CommonParameters>]

Description
The Enable-CsOnlineDialInConferencingUser cmdlet allows a Skype for Business user to access audio conferencing
through Skype for Business Online. The cmdlet will validate if the user has the correct license assigned. If the user
already uses Microsoft as the audio conferencing provider, the cmdlet will run without any errors but no changes
are made to the user. The user can be moved from a third-party audio conferencing provider to Microsoft as the
PSTN conferencing provider by using the ReplaceProvider parameter.
If the bridge information (BridgeID or BridgeName) isn't provided and the tenant is just using one audio
conferencing bridge, the user is assigned to the bridge. If the bridge information isn't provided and the tenant uses
multiple audio conferencing bridges, the user is then assigned to the default bridge.
The audio conferencing provider name and domain information is automatically set for the user when they are
enabled for audio conferencing.

Examples
-------------------------- Example 1 --------------------------

PS C:> Enable-CsOnlineDialInConferencingUser -Identity "Ken Meyer" -AllowPstnOnlyMeetings $false -ConferenceId


3659305 -ReplaceProvider -ServiceNumber 14255551234

This example enables a user named Ken Meyer to use audio conferencing and set up Skype for Business Online
dial-in meetings. When the cmdlet runs, it will replace Ken's existing audio conferencing provider information, set
the default phone number to 14255551234 and the ConferenceId for meetings to 3659305.

Parameters
-AllowPstnOnlyMeetings
If true, non-authenticated users can start meetings. If false, non-authenticated callers wait in the lobby until an
authenticated user joins, thereby starting the meeting. An authenticated user is a user who joins the meeting using
a Skype for Business client, or the organizer that joined the meeting via dial-in conferencing and was authenticated
by a PIN number. The default is false.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowTollFreeDialIn
If true, specified toll-free number is used in meeting invitations. If false, specified toll-free number is not allowed to
be used in meeting invitations. The default is true.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConferenceId
Specifies the ConferenceId that will be used by the user for dial-in meetings. The cmdlet will fail if:
The ConferenceId is already being used in the bridge where the user is assigned, or to which the user would be
assigned.
The ConferenceId doesn't meet the ConferenceId format requirements.
ConferenceId and ResetConferenceId are mutually exclusive. When ConferenceId is specified the new
ConferenceId will be assigned to the user. When ResetConferenceId is specified, the user will get an auto-generated
ConferenceId.
Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal
name (UPN ); 3) the user's domain name and logon name, in the form domain\logon (for example,
litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can also
reference a user account by using the user's Active Directory distinguished name.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReplaceProvider
If present, the ReplaceProvider switch causes the user's default conferencing provider information to be set to
Microsoft. If omitted, the Active Directory information will not be updated.
If the ReplaceProvider parameter is not used and the user is enabled for a 3rd party conferencing provider, the
cmdlet will fail.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendEmail
Send an email to the user that contains his Audio Conference information.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendEmailFromAddress
You can specify the From Address to send the email that contains the Audio Conference information. This
parameter must be used together with -SendEmailFromDisplayName and -SendEmail.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendEmailFromDisplayName
You can specify the Display Name to send the email that contains the Audio Conference information. This
parameter must be used together with -SendEmailFromAddress and -SendEmail.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendEmailToAddress
You can specify the To Address to send the email that contains the Audio Conference information. This parameter
must be used together with -SendEmail.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServiceNumber
Specifies the default phone number to be used by the user. The default number is used in meeting invitations. The
service number parameter overwrites the default service number assigned to the bridge for the user. The service
number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example: -
Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command: Get-
CsTenant | Select-Object DisplayName, TenantID
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantDomain
Specifies the domain name for the tenant or organization.
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TollFreeServiceNumber
Specifies a toll-free phone number to be used by the user. This number is then used in meeting invitations. The toll-
free number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Disable-CsOnlineDialInConferencingUser
Get-CsOnlineDialInConferencingUser
Set-CsOnlineDialInConferencingUser
minutes to read • Edit Online

Enable-CsOnlineSipDomain
In ths Article

This cmdlet enables provisioning of users in Skype for Business Online for the specified domain. This cmdlet is only
necessary to run if you previously disabled a domain using Disable-CsOnlineSipDomain. Enable-
CsOnlineSipDomain is used to facilitate consolidation of separate Skype for Business deployments into a single
Office 365 tenant.

Syntax
Enable-CsOnlineSipDomain -Domain <String> [-Force] [-Confirm] [<CommonParameters>]

Description
This cmdlet enables online provisioning of users in the specified SIP domain. In conjunction with Disable-
CsOnlineSipDomain, this cmdlet allows organizations to consolidate multiple on-premises deployments of Skype
for Business Server (or Lync Server ) into a single Office 365 tenant. Consolidation can be achieved by moving one
deployment at a time into Office 365, provided the following key requirements are met:
There must be at most 1 O365 tenant involved. Consolidation for scenarios with > 1 O365 tenant is not supported.
At any given time, only 1 on-premise SfB forest can be in hybrid mode (Shared Sip Address Space) with Office
365. All other on-premises SfB forests must remain on-premises. (They presumably are federated with each other.)
If 1 deployment is in hybrid mode, all online SIP domains from any other SfB forests must be disabled before they
can be synchronized into the tenant with Azure AD Connect. Users in all SfB forests other than the hybrid forest
must remain on-premises.
Organizations must fully migrate (e.g move all users to the cloud) each SfB forest individually into the O365 tenant
using hybrid mode (Shared Sip Address Space), and then detach the “hybrid” deployment, before moving on to
migrate the next on-premise SfB deployment.
Before running this cmdlet for any SIP domain in a Skype for Business Server deployment, you must complete
migration of any other existing hybrid SfB deployment that is in progress. All users in an existing hybrid
deployment must be moved to the cloud, and that existing hybrid deployment must be detached from Office 365,
as described in this article: Disable hybrid to complete migration to the cloud.
IMPORTANT If you have more than one on-premises deployment of Skype for Business Server, you must ensure
SharedSipAddressSpace is disabled in all other Skype for Business Server deployments except the deployment
containing the SIP domain that is being enabled.

Examples
Example 1

PS C:\> Enable-CsOnlineSipDomain -Domain contoso.com

Enables the domain contoso.com for online provisioning in Skype for Business Online.
Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
The SIP domain to be enabled for online provisioning in Skype for Business Online.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses all confirmation prompts that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None

Related Links
Disable-CsOnlineSipDomain
Get-CsOnlineSipDomain
minutes to read • Edit Online

Enable-CsPublicProvider
In ths Article

Enables a public provider configured for use in your organization. A public provider is an organization that provides
instant messaging, presence, and related services to the general public. This cmdlet was introduced in Lync Server
2010.

Syntax
Enable-CsPublicProvider [[-Identity] <XdsGlobalRelativeIdentity>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Enable-CsPublicProvider [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and, 3) federation between your organization and a third-party hosting provider.
A public provider is an organization which provides SIP communication services for the general public. When you
establish a federation relationship with a public provider, you effectively establish federation with any user who has
an account hosted by that provider. For example, if you federate with Skype your users will be able to exchange
instant messages and presence information with anyone who has a Skype instant messaging account.
In order to federate with a public provider you need to create and enable a new public provider. (In addition, the
public provider will need to create a federation relationship with you.) Public providers can be enabled at the time
they are created, or they can be enabled after-the-fact by using the Enable-CsPublicProvider cmdlet.
By default, members of the following groups are authorized to run the Enable-CsPublicProvider cmdlet locally:
RTCUniversalServerAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Enable-CsPublicProvider"}

Examples
-------------------------- Example 1 --------------------------

Enable-CsPublicProvider -Identity "Skype"


The command shown in Example 1 enables the public provider with the Identity Skype. This command will return
an error if Skype is already enabled.
-------------------------- Example 2 --------------------------

Get-CsPublicProvider | Where-Object {$_.Enabled -eq $False} | Enable-CsPublicProvider

Example 2 enables all the public providers that are currently disabled. In order to carry out this task, the command
first uses the Get-CsPublicProvider cmdlet to return a collection of all the public providers configured for use in the
organization. That collection is piped to the Where-Object cmdlet, which selects only those providers where the
Enabled property is equal to False. The filtered collection is then piped to the Enable-CsPublicProvider cmdlet,
which enables each provider in the collection.
-------------------------- Example 3 --------------------------

Get-CsPublicProvider | Where-Object {$_.VerificationLevel -eq "AlwaysVerifiable" -and $_.Enabled -eq $False} |


Enable-CsPublicProvider

Example 3 enables all the public providers that are not currently enabled, provided the verification level of those
providers is set to AlwaysVerifiable. To do this, the command first calls the Get-CsPublicProvider cmdlet to return a
collection of all the public providers currently in use in the organization. This collection is piped to the Where-
Object cmdlet, which picks out those providers that meet two criteria: 1) the VerificationLevel property is equal to
AlwaysVerifiable; and, 2) the Enabled property is equal to False. (The -and operator tells the Where-Object cmdlet
that objects must meet all the specified criteria in order to be selected.) This filtered collection is then piped to the
Enable-CsPublicProvider cmdlet, which enables each provider in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the public provider to be enabled. The Identity is typically the name of the website providing
the services (for example, Yahoo!; AOL; and MSN ).
Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider
The Enable-CsPublicProvider cmdlet accepts pipelined instances of the public provider object.

Outputs
None
Instead, the cmdlet enables instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider object.

Related Links
Disable-CsPublicProvider
Get-CsPublicProvider
New -CsPublicProvider
Remove-CsPublicProvider
Set-CsPublicProvider
minutes to read • Edit Online

Enable-CsReplica
In ths Article

Adds the local computer to the Skype for Business Server replication path. This cmdlet was introduced in Lync
Server 2010.

Syntax
Enable-CsReplica [-GlobalCatalog <Fqdn>] [-Report <String>] [-Force] [-WhatIf] [-Confirm]
[-GlobalSettingsDomainController <Fqdn>] [<CommonParameters>]

Description
When a service or server role is installed on a computer, that computer needs to be added to the replication path;
doing so enables the computer to receive the topology and configuration files from the Central Management store.
The Enable-CsReplica cmdlet provides a way for you to manually add a computer to the replication path. As a
general rule, you will not need to manually add a computer to the replication path. Instead, this will automatically
take place when you install Skype for Business Server 2015 on a computer.

Examples
-------------------------- EXAMPLE 1 -------------------------- (Skype for Business Server 2015)

Enable-CsReplica

The command shown in Example 1 adds the local computer to the Skype for Business Server replication path.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
Fully qualified domain name (FQDN ) of a global catalog server in your domain. This parameter is not required if
you are running the Enable-CsReplica cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory Domain Services, then this parameter must point to the root domain controller. If global settings
are stored in the Configuration container, then any domain controller can be used and this parameter can be
omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\EnableReplica.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
None

Related Links
Get-CsManagementStoreReplicationStatus
minutes to read • Edit Online

Enable-CsTopology
In ths Article

Enables the most recently published Skype for Business Server topology. After you have made changes to your
topology, the changes will not take effect until they have been both published and enabled. This cmdlet was
introduced in Lync Server 2010.

Syntax
Enable-CsTopology [-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>]
[-SkipPrepareCheck <Boolean>] [-Report <String>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
After you have installed Skype for Business Server you will eventually need to make changes to the infrastructure;
for example, you might need to add a new site, delete an existing Registrar pool, or add an additional Archiving
Server. These infrastructure changes must be made by using Topology Builder. After you have made the changes in
Topology Builder, you can then publish and enable those changes using that same tool. These latter two steps are
very important: although you can make as many modifications as you want using Topology Builder, those
modifications do not actually take effect, and your infrastructure will not actually change, until the modifications
have been published and the new topology has been enabled.
When changes are published, the new information (for example, a new site or a new server role) is written to the
Central Management store. However, these new (or newly modified) objects do not immediately join your
topology; that occurs only when the updated topology has been enabled. If you select the Publish option in
Topology Builder you can carry out both of these steps at the same time: the changes will be published (written to
the Central Management store) and the new topology will be enabled.
There might be times, however, when you would prefer to publish your changes and enable your topology as
separate steps; doing so gives you an opportunity to confirm that deployment has succeeded before you bring the
new objects into the topology. To separately publish and then enable topology changes, you must do the following:
1. Publish the modified topology in Topology Builder.
2. Use the Enable-CsTopology cmdlet to cause the published changes to take effect.
From time-to-time you might also need to call the Enable-CsTopology cmdlet in order to enable changes made
outside Topology Builder. For example, the cmdlet must be run after you have used the
CsKerberosAccountAssignment cmdlets to modify Kerberos web authentication.
By default, members of the following groups are authorized to run Enable-CsTopology locally:
RTCUniversalServerAdmins. However, if setup permissions have not been delegated, then you must be a domain
administrator in order to run the cmdlet. In order to give RTCUniversalServerAdmins the right to actually use the
Enable-CsTopology cmdlet, you must run the Set-CsSetupPermission cmdlet against every Active Directory
container that contains computers running Skype for Business Server services. Note that this restriction also
applies to enabling a topology through Topology Builder. If you have not delegated permissions by using Set-
CsSetupPermission, then only a domain administrator will be able to enable a topology through Topology Builder.
In addition, you must be a local administrator on any computer where Skype for Business Server file shares are to
be created; this is required in order to set the necessary security permissions on the shared folders. Alternatively,
you can run Enable-CsTopology if you have full control over the file share. That enables the cmdlet to create the
shared folders and set share-level security permissions. However, a local administrator will then need to add the
share-level security permissions.
To verify that setup permissions have been delegated, run the Test-CsSetupPermission cmdlet against any Active
Directory containers containing computers running Skype for Business Server services.

Examples
-------------------------- Example 1 --------------------------

Enable-CsTopology

The command shown in Example 1 enables the most recently published topology.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
Fully qualified domain name (FQDN ) of a global catalog server in your domain. This parameter is not required if
you are running the Enable-CsTopology cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory Domain Services, then this parameter must point to the root domain controller. If global settings
are stored in the Configuration container, then any domain controller can be used and this parameter can be
omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\Enable_Topology.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipPrepareCheck
If set to True ($True) the Enable-CsTopology cmdlet will skip its initial preparation check.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
Instead, the Enable-CsTopology cmdlet enables instances of the
Microsoft.Rtc.Management.Deploy.Internal.DefaultTopology object.
Related Links
Get-CsTopology
Grant-CsSetupPermission
Publish-CsTopology
Test-CsSetupPermission
Test-CsTopology
minutes to read • Edit Online

Enable-CsUser
In ths Article

Enables one or more users for Skype for Business Server. Users cannot use Skype for Business or other Skype for
Business Server clients until their user accounts have been enabled for Skype for Business Server. This cmdlet was
introduced in Lync Server 2010.

Syntax
Enable-CsUser [-Identity] <UserIdParameter> [-RegistrarPool <Fqdn>] [-SipAddressType <AddressType>]
[-SipDomain <Fqdn>] [-SipAddress <String>] [-HostingProviderProxyFqdn <Fqdn>] [-ProxyPool <Fqdn>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Before a user can log on to Skype for Business Server, that user must meet two requirements: he or she must have
a valid Active Directory account, and that account must be enabled for Skype for Business Server. One way to
enable a user account for Skype for Business Server is to use the Enable-CsUser cmdlet. To use this cmdlet to
enable an account for Skype for Business Server, you must: 1) Select the account (or accounts) to be enabled; 2)
Select a Registrar pool for the account; and 3) Assign the account a SIP address. Skype for Business Server gives
administrators the option of assigning the user a specific SIP address or having Skype for Business Server create a
SIP address for you.
By default, members of the following groups are authorized to run the Enable-CsUser cmdlet locally:
RTCUniversalUserAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Enable-CsUser"}

Examples
-------------------------- Example 1 --------------------------

Enable-CsUser -Identity "Pilar Ackerman" -RegistrarPool "atl-cs-001.litwareinc.com" -SipAddressType


SamAccountName -SipDomain litwareinc.com

In Example 1, the Enable-CsUser cmdlet enables the user account with the display name Pilar Ackerman. In this
example, the user is assigned to the Registrar pool atl-cs-001.litwareinc.com, and Skype for Business Server auto-
generates the SIP address by using the user's SamAccountName (pilar) followed by the SIP domain litwareinc.com.
-------------------------- Example 2 --------------------------

Enable-CsUser -Identity "Pilar Ackerman" -RegistrarPool "atl-cs-001.litwareinc.com" -SipAddress


"sip:pilar@litwareinc.com"
In Example 2, the Active Directory user account belonging to Pilar Ackerman is enabled for use with Skype for
Business Server. In order to configure the account for Skype for Business Server the following parameters are used
along with the Enable-CsUser cmdlet: Identity, which identifies the account to be enabled; RegistrarPool, which
indicates the Standard Edition server or Enterprise Edition Front End pool on which the user is to be homed; and
SipAddress, which specifies the SIP address for the new user. In this case, the SIP address is explicitly assigned
instead of using Skype for Business Server to auto-generate the address.
-------------------------- Example 3 --------------------------

Get-CsAdUser -LdapFilter "department=Finance" | Enable-CsUser -RegistrarPool "atl-cs-001.litwareinc.com" -


SipAddressType SamAccountName -SipDomain litwareinc.com

In Example 3, all the users who work for the Finance department have their accounts enabled for Skype for
Business Server. To carry out this task, the Get-CsAdUser cmdlet is used, along with the LdapFilter parameter, to
return a collection of all the users who work for the Finance department. That information is then piped to the
Enable-CsUser cmdlet, which enables each account in the collection for Skype for Business Server.
In order to enable an account, you must specify the user's Registrar pool and the user's SIP address. In this
example, the Registrar pool is specified by using the RegistrarPool parameter. The SIP address is not directly
assigned, however. Instead, two parameters, SipAddressType and SipDomain, are added to the command. That
means that a new SIP address consisting of the user's SamAccountName and the SIP domain name will
automatically be generated for each account. For example, a user with the SamAccountName kenmyer will be
given the SIP address sip:kenmyer@litwareinc.com.
-------------------------- Example 4 --------------------------

Get-CsAdUser -Filter {Enabled -ne $True} | Enable-CsUser -RegistrarPool "atl-cs-001.litwareinc.com" -


SipAddressType SamAccountName -SipDomain litwareinc.com

Example 4 enables all the Active Directory users who have not yet been enabled for Skype for Business Server. To
do this, the Get-CsAdUser cmdlet is invoked, along with the Filter parameter. The filter {Enabled -ne $True} returns
a collection of all the users who have not been enabled for Skype for Business Server. That collection is then piped
to the Enable-CsUser cmdlet, which enables each account, assigning the user to the Registrar pool atl-cs-
001.litwareinc.com and auto-generating a SIP address for each user.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to enable a user account. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-cs-001) or its fully qualified domain name (FQDN ) (for example, atl-cs-001.litwareinc.com).
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostingProviderProxyFqdn
This parameter is used only for Skype for Business Online. It should not be used with an on-premises
implementation of Skype for Business Server.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be enabled for Skype for Business Server. User Identities can be
specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the
user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the
user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the
user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the user who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being enabled for Skype for
Business Server. By default, the Enable-CsUser cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyPool
This parameter is used only for Skype for Business Online. It should not be used with an on-premises
implementation of Skype for Business Online.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegistrarPool
Indicates the Registrar pool where the user's Skype for Business Server 2015 account will be homed.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
Enables you to assign the user a specific SIP address. When specifying the SIP address, preface the address with
"sip:". That means the value supplied to the SipAddress parameter should look something like this:
sip:kenmyer@litwareinc.com

The SipAddress parameter should not be used if you use the SipAddressType parameter in order to have Skype for
Business Server automatically generate a SIP address for the user.
The SipAddress parameter cannot be used if you are attempting to enable multiple users at the same time. Instead,
you must auto-generate SIP address for those users by using the SipAddressType parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddressType
Instructs Skype for Business Server 2015 to auto-generate a SIP address for the new user. In order to have Skype
for Business Server 2015 auto-generate the SIP address, you must include the SipAddressType parameter and use
one of the following parameter values:
FirstLastName: The SIP address is the user's first name and a period followed by the user's last name and the SIP
domain. For example, the user Ken Myer would have a SIP address similar to this: Ken.Myer@litwareinc.com. If you
use this address type then you must also include the SipDomain parameter.
EmailAddress: The user's email address (as defined in Active Directory) is used as the SIP address.
UserPrincipalName: The user's UPN is used as the SIP address.
SamAccountName: The SIP address is the user's SamAccountName (logon name) followed by the SIP domain. For
example, the user with the SamAccountName kmyer will have a SIP address similar to this: kmyer@litwareinc.com.
If you use this address type then you must also include the SipDomain parameter.
The SipAddressType parameter is not required if you use the SipAddress parameter and explicitly assign the user a
SIP address.
Type: AddressType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipDomain
The SIP domain for the user account being enabled. This parameter is required if you use the SipAddressType
parameter to have Skype for Business Server auto-generate a SIP address for the user and you based SIP
addresses on the SamAccountName or the user's first name and last name. This parameter is not required if you
base SIP addresses on the user's email address or UPN; that's because the domain name is already included in
those attribute values.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser
The Enable-CsUser cmdlet accepts a pipelined string value representing the Identity of a user account that has been
enabled for Skype for Business Server. The cmdlet also accepts pipelined instances of the Active Directory user
object.

Outputs
None
The Enable-CsUser cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.ADConnect.Schema.ADUser object.

Related Links
Disable-CsUser
Get-CsUser
minutes to read • Edit Online

Export-CsArchivingData
In ths Article

Enables you to export records that have been stored in the Skype for Business Server Archiving database. This
cmdlet was introduced in Lync Server 2010.

Syntax
Export-CsArchivingData -DBInstance <String> -OutputFolder <String> -StartDate <DateTime> [-EndDate <DateTime>]
[-UserUri <String>] [-ExcludeWebConfArchive] [-WhatIf] [-Confirm] [-IncludeTrustedApplication]
-Identity <XdsIdentity> [-Force] [-Purge] [<CommonParameters>]

Export-CsArchivingData -DBInstance <String> -OutputFolder <String> -StartDate <DateTime> [-EndDate <DateTime>]


[-UserUri <String>] [-Purge] [-WhatIf] [-Confirm] [-IncludeTrustedApplication] -Identity <XdsIdentity>
[-ExcludeWebConfArchive] [-Force] [<CommonParameters>]

Export-CsArchivingData -DBInstance <String> -OutputFolder <String> -StartDate <DateTime> [-Confirm]


[-EndDate <DateTime>] [-ExcludeWebConfArchive] [-Force] [-IncludeTrustedApplication] [-Purge]
[-UserUri <String>] [-WhatIf] [<CommonParameters>]

Export-CsArchivingData -Identity <XdsIdentity> -OutputFolder <String> -StartDate <DateTime> [-Confirm]


[-EndDate <DateTime>] [-ExcludeWebConfArchive] [-Force] [-IncludeTrustedApplication] [-Purge]
[-UserUri <String>] [-WhatIf] [<CommonParameters>]

Description
Many organizations find it useful to keep a transcript of all the instant messaging (IM ) sessions carried out by their
users. Other organizations find it mandatory to keep such transcripts. For example, organizations in the financial
world are often required by law to keep copies of all their electronic communications.
Regardless of the reason, Skype for Business Server gives you flexibility when it comes to archiving IM and
conferencing sessions. If you have deployed Archiving Server, you can use the various CsArchivingConfiguration
cmdlets to enable and disable instant message archiving and to manage your Archiving database. You can also
suspend IM should archiving fail, which helps ensure that you keep a record of all your electronic communications.
If you have enabled archiving, records of your users' electronic communications are stored in the Archiving
database. If you would like to view all of these records (or a selected subset of these records), you can use the
Export-CsArchivingData cmdlet to extract these records from the database and save them as an Outlook Express
Electronic Mail (EML ) file (.EML file extension).
By default, members of the following groups are authorized to run the Export-CsArchivingData cmdlet locally:
RTCUniversalServerAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Export-CsArchivingData"}

Examples
-------------------------- Example 1 --------------------------

Export-CsArchivingData -Identity "ArchivingDatabase:atl-sql-001.litwareinc.com" -StartDate 6/1/2018 -


OutputFolder "C:\ArchivingExports"

The command shown in Example 1 extracts records from the Archiving database located on the server atl-sql-
001.litwareinc.com, and then saves the resulting EML file to the folder C:\ArchivingExports. The specified start date
of June 1, 2018 (-StartDate 6/1/2018) ensures that only items recorded in the database after 5/31/2018 will be
exported.
-------------------------- Example 2 --------------------------

Export-CsArchivingData -Identity "ArchivingDatabase:atl-sql-001.litwareinc.com" -StartDate 6/1/2018 -


OutputFolder "C:\ArchivingExports" -UserUri "kenmyer@litwareinc.com"

Example 2 is a variation of the command shown in Example 1; in this case, however, only the records pertaining to
the user Ken Myer are exported. To limit your export to records pertaining to a single user, include the UserUri
parameter followed by appropriate SIP address.
-------------------------- Example 3 --------------------------

Export-CsArchivingData -Identity "ArchivingDatabase:atl-sql-001.litwareinc.com" -StartDate 6/1/2018 -EndDate


6/30/2018 -OutputFolder "C:\ArchivingExports"

Example 3 represents another variation of the command shown in Example 1. In Example 3, however, only items
recorded in the database during the month of June, 2018 are exported. To limit exporting to this time interval, the
EndDate parameter is included along with the StartDate parameter. With a start date of June 1, 2018 and an end
date of June 30, 2018, exporting is limited to items recorded during June 2018.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DBInstance
This parameter is intended for use only with Microsoft Lync Server 2010. If you are using the Export-
CsArchivingData cmdlet on Skype for Business Server you should use the Identity parameter instead.
Path to the SQL Server database instance where archiving data is recorded. For example: "atl-sql-001\Archinst"
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EndDate
Indicates the latest activity date for records to be exported. For example, if you set the end date to 6/1/2018 (June
1, 2018, in U.S. English) any items recorded in the database after that date (for example, items recorded on June 2,
2018) will be excluded from the export. Although you will not receive an error message, your export will fail if the
end date occurs before the start date (for example, an end date of 1/1/2018 and a start date of 6/1/2018).
Use the date-time formats specified by your Regional and Language Options settings when assigning values to the
StartDate and EndDate properties.
If an end date is not specified then the current date will be used.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeWebConfArchive
Instructs the Export-CsArchivingData cmdlet to only export instant messaging records. By default, the cmdlet
exports both IM and conferencing records.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service identity of the archiving database to be exported. For example:
-Identity "ArchivingDatabase:atl-sql-001.litwareinc.com"

You can also specify the database by using just the pool name:
-Identity "atl-sql-001.litwareinc.com"
You can retrieve the service identities for your archiving databases by using this command:
Get-CsService -ArchivingDatabase | Select-Object Identity

Type: XdsIdentity
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-IncludeTrustedApplication
Include data logged by trusted applications (CAA/CAS ) when exporting records.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutputFolder
Full path to the folder where the exported data should be stored (for example, C:\ArchivingExports). If this folder
does not exist, then the Export-CsArchivingData cmdlet will create it.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Purge
When included, the Purge parameter causes any record that has been successfully exported to be deleted from the
Archiving database. If you do not include this parameter, exported records will be retained in the database.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartDate
Indicates the earliest activity date for the records to be exported. For example, if you set the start date to 6/1/2018
(June 1, 2018, in U.S. English) any items recorded in the database prior to that date (for example, items recorded on
May 31, 2018) will be excluded from the export.
Use the date-time formats specified by your Regional and Language Options settings when assigning values to the
StartDate and EndDate properties.
Type: DateTime
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserUri
Enables you to export archiving data for a single user; this is done by using the UserUri parameter and specifying
the SIP address of the user. The UserUri parameter will accept only one URI at a time.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
The Export-CsArchivingData cmdlet returns Archiving database records in EML format.

Related Links
Get-CsArchivingConfiguration
Export archived data in Skype for Business Server
minutes to read • Edit Online

Export-CsAutoAttendantHolidays
In ths Article

Use Export-CsAutoAttendantHolidays cmdlet to export holiday schedules of an existing Auto Attendant (AA). The
data is exported as a byte array from the cmdlet, which can be dumped to disk as a CSV file and can later be
imported using the Import-CsAutoAttendantHolidays cmdlet.

Syntax
Export-CsAutoAttendantHolidays -Identity <String> [-Tenant <Guid>] [<CommonParameters>]

Description
The Export-CsAutoAttendantHolidays cmdlet and the Import-CsAutoAttendantHolidays cmdlet enable you to
export holiday schedules in your auto attendant and then later import that information. This can be extremely
useful in a situation where you need to configure same holiday sets in multiple tenants.
The Export-CsAutoAttendantHolidays cmdlet returns the holiday schedule information in serialized form (as a byte
array). The caller can then write the bytes to the disk to obtain a CSV file. Similarly, the Import-
CsAutoAttendantHolidays cmdlet accepts the holiday schedule information as a byte array, which can be read from
the aforementioned CSV file. The first line of the CSV file is considered a header record and is always ignored.
NOTE
Each line in the CSV file used by Export-CsAutoAttendantHolidays and Import-CsAutoAttendantHolidays
cmdlet should be of the following format:
HolidayName,StartDateTime1,EndDateTime1,StartDateTime2,EndDateTime2,…,StartDateTime10,EndDateTime10

where
HolidayName is the name of the holiday to be imported.
StartDateTimeX and EndDateTimeX specify a date/time range for the holiday and are optional. If no date-time
ranges are defined, then the holiday is imported without any date/time ranges. They follow the same format as
New -CsOnlineDateTimeRange cmdlet.
EndDateTimeX is optional. If it is not specified, the end bound of the date time range is set to 00:00 of the day
after the start date.
The first line of the CSV file is considered a header record and is always ignored by Import-
CsAutoAttendantHolidays cmdlet.
If the destination auto attendant for the import already contains a call flow or schedule by the same name as one of
the holidays being imported, the corresponding CSV record is skipped.
For holidays that are successfully imported, a default call flow is created which is configured without any greeting
and simply disconnects the call on being executed.

Examples
-------------------------- Example 1 --------------------------

$bytes = Export-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432


[System.IO.File]::WriteAllBytes("C:\Exports\Holidays.csv", $bytes)

In this example, the Export-CsAutoAttendantHolidays cmdlet is used to export holiday schedules of an auto
attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. The exported bytes are then written to a file
with the path "C:\Exports\Holidays.csv".

Parameters
-Identity
The identity for the AA whose holiday schedules are to be exported.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Export-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter.

Outputs
System.Byte []

Related Links
Import-CsAutoAttendantHolidays
Get-CsAutoAttendantHolidays
minutes to read • Edit Online

Export-CsConfiguration
In ths Article

Exports your Skype for Business Server topology, policies, and configuration settings to a file. Among other things,
this file can then be used to restore this information to the Central Management store after an upgrade, a hardware
failure, or some other issue has resulted in data loss. This cmdlet was introduced in Lync Server 2010.

Syntax
Export-CsConfiguration [-FileName] <String> [-Force] [-LocalStore] [<CommonParameters>]

Export-CsConfiguration [-AsBytes] [-Force] [-LocalStore] [<CommonParameters>]

Description
Computers that run Skype for Business Server services or server roles must have a copy of the current topology,
current configuration settings, and current policies before they can function in their appointed role. Skype for
Business Server is responsible for ensuring that this information is passed along to each computer that needs it.
The Export-CsConfiguration cmdlet and the Import-CsConfiguration cmdlet are used to backup and restore your
Skype for Business Server topology, configuration settings, and policies during a Central Management store
upgrade. The Export-CsConfiguration cmdlet enables you to export data to a .ZIP file; you can then use the Import-
CsConfiguration cmdlet to read that .ZIP file and restore the topology, configuration settings, and policies to the
Central Management store. After that, the replication services of Skype for Business Server will replicate the
restored information to other computers running Skype for Business Server services.
The ability to export and import configuration data is also used when initially configuring computers located in
your perimeter network (for example, Edge Servers). When configuring a computer in the perimeter network, you
must first perform a manual replication using the CsConfiguration cmdlets: you will need to export the
configuration data using the Export-CsConfiguration cmdlet and then copy the .ZIP file to the computer in the
perimeter network. After that, you can use the Import-CsConfiguration cmdlet and the LocalStore parameter to
import the data. You only need to do this once; after that, replication will take place automatically.
By default, members of the following groups are authorized to run the Export-CsConfiguration cmdlet locally:
RTCUniversalServerAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Export-CsConfiguration"}

Examples
-------------------------- Example 1 --------------------------
Export-CsConfiguration -FileName "C:\Config.zip"

The command shown in Example 1 exports Skype for Business Server data from the Central Management store to
a file named C:\Config.zip.

Parameters
-AsBytes
Returns topology information as a byte array; the returned data must then be stored in a variable in order to be
used by the Import-CsConfiguration cmdlet. You cannot use both AsBytes and FileName in the same command.

Type: SwitchParameter
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Path to the .ZIP file to be created when you run the Export-CsConfiguration cmdlet. For example:
-FileName "C:\Config.zip".

Note that you must include either the FileName or the AsBytes parameters, but not both, when calling the Export-
CsConfiguration cmdlet.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command. To set the
Force parameter to True use this syntax:
-Force:$True

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the configuration data from the local computer rather than from the Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
If called along with the AsBytes parameter, the Export-CsConfiguration cmdlet returns configuration information in
the form of a byte array.

Related Links
Import-CsConfiguration
minutes to read • Edit Online

Export-CsLisConfiguration
In ths Article

Exports an Enterprise Voice Enhanced 9-1-1 (E9-1-1) configuration to a file in compressed format for backup
purposes. This cmdlet was introduced in Lync Server 2010.

Syntax
Export-CsLisConfiguration [-FileName] <String> [<CommonParameters>]

Export-CsLisConfiguration [-AsBytes] [<CommonParameters>]

Description
Implementing E9-1-1 in an organization can, depending on the size of the organization, involve mapping
thousands of subnets, ports, switches, and wireless access points (WAPs) to locations. An E9-1-1 configuration also
includes information about web services provided by the E9-1-1 Network Routing Provider, and about locations
and civic addresses and whether or not they've been validated. Given the volume of information and settings
required to implement E9-1-1, it's recommended that you regularly back up the entire configuration. You can use
this cmdlet to back up the E9-1-1 configuration to a file, which will save the entire configuration in compressed
format. To recover the configuration, call the Import-CsLisConfiguration cmdlet.
This cmdlet creates a new backup file; it will not overwrite an existing file. That means the file name that is specified
in the call to this cmdlet cannot be the name of an existing file.
By default, members of the following groups are authorized to run the Export-CsLisConfiguration cmdlet locally:
RTCUniversalServerAdmins. To return a list of all the role-based access control (RBAC ) roles this cmdlet has been
assigned to (including any custom RBAC roles you have created yourself), run the following command from the
Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Export-CsLisConfiguration"}

Examples
-------------------------- Example 1 --------------------------

Export-CsLisConfiguration -FileName C:\E911Config.bak

This example exports the entire E9-1-1 configuration from the Location Information Server (LIS ) to the backup file
named E911Config.bak.
-------------------------- Example 2 --------------------------

$lisconfig = Export-CsLisConfiguration -AsBytes


In this example, the LIS configuration is stored as an array of bytes in a variable, $lisconfig.
-------------------------- Example 3 --------------------------

$lisconfig = Export-CsLisConfiguration -AsBytes

$lisconfig | Set-Content -Path C:\E911Config.bak -Encoding byte

Get-Content -ReadCount 0 -Encoding byte -Path C:\E911Config.bak | Import-CsLisConfiguration

Example 3 is a more complete version of Example 2. The first line is the same, we call the Export-
CsLisConfiguration cmdlet with the AsBytes parameter to store the LIS configuration as an array of bytes in the
variable $lisconfig. The rest of this example shows how to save that configuration to a file and then import it back
into the location configuration database.
In line 2 we pipe the contents of $lisconfig, which is the byte array representing the LIS configuration, to the
Windows PowerShell Set-Content cmdlet. We assign values to two parameters of the Set-Content cmdlet: Path and
Encoding. We assign the full path and file name of the file to which we want to save the configuration to the Path
parameter. We use the Encoding parameter with a value of byte to ensure the configuration is stored as an array of
bytes.
Finally, in line 3 we import the configuration back into the location configuration database. First we call the Get-
Content cmdlet to retrieve the contents from the file. We pass a value of 0 to the ReadCount property, which tells
the Get-Content cmdlet to read all the contents of the file at once rather than one line at a time. We again use the
Encoding parameter with a value of byte to specify what type of data we're reading from the file. Finally we pass the
file name to the Path parameter. The contents of the file that we read with the Get-Content cmdlet are piped to the
Import-CsLisConfiguration cmdlet, which imports the saved configuration into the location database.

Parameters
-AsBytes
Returns the configuration as a byte array. The output of the command should be assigned to a variable for later
import. (If you don't assign the output to a variable, the byte array representing the configuration will scroll down
your Lync Server Management Shell window.) You cannot specify both the AsBytes parameter and the FileName
parameter; you can use only one or the other for each call to this cmdlet.

Type: SwitchParameter
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
The path and file name of the file to which you want to save the configuration. This cannot be the name of an
existing file.
If you supply a value to the AsBytes parameter, you cannot supply a value to the FileName parameter. If you're
accessing this cmdlet remotely, you must use AsBytes rather than FileName.
Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Byte []
Returns a byte array when the AsBytes parameter is used.

Related Links
Import-CsLisConfiguration
Debug-CsLisConfiguration
Publish-CsLisConfiguration
Unpublish-CsLisConfiguration
Test-CsLisConfiguration
minutes to read • Edit Online

Export-CsOrganizationalAutoAttendantHolidays
In ths Article

Use Export-CsOrganizationalAutoAttendantHolidays cmdlet to export holiday schedules of an existing Auto


Attendant (AA). The data is exported as a byte array from the cmdlet, which can be dumped to disk as a CSV file
and can later be imported using the Import-CsOrganizationalAutoAttendantHolidays cmdlet.

Syntax
Export-CsOrganizationalAutoAttendantHolidays [-PrimaryUri] <Uri> [-Tenant <Guid>] [<CommonParameters>]

Description
The Export-CsOrganizationalAutoAttendantHolidays cmdlet and the Import-
CsOrganizationalAutoAttendantHolidays cmdlet enable you to export holiday schedules in your auto attendant and
then later import that information. This can be extremely useful in a situation where you need to configure same
holiday sets in multiple auto attendants.
The Export-CsOrganizationalAutoAttendantHolidays cmdlet returns the holiday schedule information in serialized
form (as a byte array). The caller can then write the bytes to the disk to obtain a CSV file. Similarly, the Import-
CsOrganizationalAutoAttendantHolidays cmdlet accepts the holiday schedule information as a byte array, which
can be read from the aforementioned CSV file. The first line of the CSV file is considered a header record and is
always ignored.
NOTE
Each line in the CSV file used by Export-CsOrganizationalAutoAttendantHolidays and Import-
CsOrganizationalAutoAttendantHolidays cmdlet should be of the following format:
HolidayName,StartDateTime1,EndDateTime1,StartDateTime2,EndDateTime2,…,StartDateTime10,EndDateTime10

where
HolidayName is the name of the holiday to be imported.
StartDateTimeX and EndDateTimeX specify a date/time range for the holiday and are optional. If no date-time
ranges are defined, then the holiday is imported without any date/time ranges. They follow the same format as
New -CsOnlineDateTimeRange cmdlet.
EndDateTimeX is optional. If it is not specified, the end bound of the date time range is set to 00:00 of the day
after the start date.
The first line of the CSV file is considered a header record and is always ignored by Import-
CsOrganizationalAutoAttendantHolidays cmdlet.
If the destination auto attendant for the import already contains a call flow or schedule by the same name as one of
the holidays being imported, the corresponding CSV record is skipped.
For holidays that are successfully imported, a default call flow is created which is configured without any greeting
and simply disconnects the call on being executed.
Examples
-------------------------- Example 1 --------------------------

$bytes = Export-CsOrganizationalAutoAttendantHolidays -PrimaryUri sip:mainoaa@contoso.com


[System.IO.File]::WriteAllBytes("C:\Exports\Holidays.csv", $bytes)

In this example, the Export-CsOrganizationalAutoAttendantHolidays cmdlet is used to export holiday schedules of


an auto attendant with Primary URI of sip:mainoaa@contoso.com. The exported bytes are then written to a file with
the path "C:\Exports\Holidays.csv".

Parameters
-PrimaryUri
The Primary URI represents the SIP address of the auto attendant whose holiday schedules are to be exported.

Type: System.Uri
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The String is used as the PrimaryUri input.

Outputs
System.Byte []

Related Links
Import-CsOrganizationalAutoAttendantHolidays
Get-CsOrganizationalAutoAttendantHolidays
minutes to read • Edit Online

Export-CsPersistentChatData
In ths Article

Exports data from a Persistent Chat database. This cmdlet was introduced in Lync Server 2013.

Syntax
Export-CsPersistentChatData -DBInstance <String> [-AsBytes] [-DBName <String>] [-DisableExportedNodes]
[-Level <ExportLevel>] [-Report <String>] [-Scope <System.Collections.Generic.List`1[System.String]>]
[-StartDate <DateTime>] [<CommonParameters>]

Export-CsPersistentChatData -DBInstance <String> [-DBName <String>] [-DisableExportedNodes]


[-FileName <String>] [-Level <ExportLevel>] [-Report <String>]
[-Scope <System.Collections.Generic.List`1[System.String]>] [-StartDate <DateTime>] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
If you are currently running Lync Server 2010, you can migrate your current Group Chat implementation by using
the Export-CsPersistentChatData cmdlet to export your existing Group Chat configuration settings, then use the
Import-CsPersistentChatData cmdlet to migrate that information to Skype for Business Server and the Persistent
Chat service. Note that the Export-CsPersistentChatData cmdlet gives you the option of importing all your Group
Chat settings and data or only a portion of your Group Chat settings and data; for example, you can export (and
then import) your Group Chat categories and chat rooms without exporting all the content associated with those
categories and chat rooms.
Although primarily intended for migration purposes, the CsPersistentChatData cmdlets can also be used to
manage Persistent Chat data on Skype for Business Server.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Export-CsPersistentChatData"}

The functions carried out by the Export-CsPersistentChatData cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------
Export-CsPersistentChatData -DBInstance "atl-sql-001.litwareinc.com\rtc" -FileName
"C:\Logs\PersistentChatData.zip"

The command shown in Example 1 exports Persistent Chat data from the Persistent Chat database located on the
server atl-sql-001.litwareinc.com; the exported data will be stored in the file C:\Logs\PersistentChatData.zip.
Because the Level parameter was not specified, the Export-CsPersistentChatData cmdlet will do a full export of the
Persistent Chat information.

Parameters
-AsBytes
Returns Persistent Chat information as a byte array; the returned data must then be stored in a variable in order to
be used by the Import-CsPersistentChatData cmdlet. You cannot use both AsBytes and FileName in the same
command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DBInstance
Fully qualified domain name and name of the SQL Server instance where the Skype for Business Server 2015
Persistent Chat database is located. For example, this syntax specifies the database found in the RTC database
instance on the server atl-sql-001.litwareinc.com:
-DBInstance "atl-sql-001.litwareinc.com\rtc"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DBName
SQL instance name of the Persistent Chat database.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableExportedNodes
When present, all exported categories and chat rooms will be disabled when the export is complete.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Full path to the .ZIP file that the Export-CsPersistentChatData cmdlet will create; this file will contain the exported
user data. For example:
-FileName "C:\Logs\PersistentChatData.zip"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Level
Enables you to specify which Persistent Chat information will be exported. Allowed values are:
All
User
Category
RoomDirectory
Content
The default value is All, which means that all the Persistent Chat information will be exported.

Type: ExportLevel
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Full path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ExportPersistentChat.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Scope
Enables you to export data for a specified set of categories (and their corresponding chat rooms). By default all
Categories are exported.
Type: System.Collections.Generic.List`1[System.String]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartDate
Beginning date for the time period for which Persistent Chat chat room content should be exported. For example:
-StartDate "1/1/2018"

This parameter is valid only when they Level is set to RoomDirectory.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
The Export-CsPersistentChatData cmdlet creates .ZIP files.
minutes to read • Edit Online

Export-CsRgsConfiguration
In ths Article

Exports data from an existing Response Group application configuration. This data, saved as a .ZIP file, can later be
imported using the Import-CsRgsConfiguration cmdlet. The ability to export and import Response Group
configuration data is particularly useful disaster recovery scenarios. This cmdlet was introduced in Lync Server
2013.

Syntax
Export-CsRgsConfiguration -FileName <String> -Source <RgsIdentity> [-Force] [-Owner <RgsIdentity>]
[-RemoveExportedConfiguration] [<CommonParameters>]

Description
The Export-CsRgsConfiguration cmdlet and the Import-CsRgsConfiguration cmdlet enable you to export data
about your current implementation of the Response Group application (including such things as workflows, queues,
agent groups, holiday sets and business hours, as well as audio files and service configuration settings) and then
later import (or re-import) that information. This can be extremely useful in a disaster recovery scenario (for
example, in a case where the server hosting the Response Group application has failed) or if you simply need to
transfer the Response Group application to a different pool.
Note that the Export-CsRgsConfiguration cmdlet and the Import-CsRgsConfiguration cmdlet are designed to work
only with Lync Server 2013 and Skype for Business Server. If you want to migrate Response Group data from
Microsoft Lync Server 2010 to Skype for Business Server, you should use the Move-CsRgsConfiguration cmdlet
instead.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Export-CsRgsConfiguration"}

The functions carried out by the Export-CsRgsConfiguration cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Export-CsRgsConfiguration -Source "ApplicationServer:atl-rgs-001.litwareinc.com" -FileName "C:\Exports\Rgs.zip"

The command shown in Example 1 exports the Response Group configuration settings from the pool atl-rgs-
001.litwareinc.com to a file with the path C:\Exports\Rgs.zip.

Parameters
-FileName
Path to the .ZIP file to be created when you run the Export-CsRgsConfiguration cmdlet. For example:
-FileName "C:\Exports\RgsConfig.zip"

Note that your command will fail if this file already exists.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Owner
If specified, configuration information for all the Response Group instances found on the designated pool will be
exported. For example:
-Owner "atl-rgs-001.litwareinc.com"

Type: RgsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RemoveExportedConfiguration
When specified, the Response Group instance will be deleted after the configuration information has been
exported.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Source
Identity of the Response Group instance whose configuration settings are being exported. For example:
-Source "ApplicationServer:atl-rgs-001.litwareinc.com"
Type: RgsIdentity
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
The Export-CsRgsConfiguration cmdlet creates compressed files with the .ZIP file extension.

Related Links
Import-CsRgsConfiguration
minutes to read • Edit Online

Export-CsUserData
In ths Article

Exports user data in a format that can be imported into Skype for Business Server 2015. The data will be exported
as a .ZIP file containing a pair of XML documents. This cmdlet was introduced in Lync Server 2013.

Syntax
Export-CsUserData -FileName <String> -Identity <String> [-ConfDirectoryFilter <String>]
[-DomainController <Fqdn>] [-Force] [-LegacyFormat] [-UserFilter <String>] [-UserFileFilter <String>]
[<CommonParameters>]

Export-CsUserData -FileName <String> -PoolFqdn <Fqdn> [-ConfDirectoryFilter <String>]


[-DomainController <Fqdn>] [-Force] [-LegacyFormat] [-UserFilter <String>] [-UserFileFilter <String>]
[<CommonParameters>]

Export-CsUserData -FileName <String> -SqlInstanceName <String> [-ConfDirectoryFilter <String>]


[-DbName <String>] [-DomainController <Fqdn>] [-Force] [-LegacyFormat] [-UserFileFilter <String>]
[-UserFilter <String>] [<CommonParameters>]

Description
The Export-CsUserData cmdlet provides a way for administrators to export user data and/or conference directory
for a Skype for Business Server pool. That data, which can be saved in the user data format used by Skype for
Business Server can then be imported by using the Import-CsUserData cmdlet.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Export-CsUserData"}
The functions carried out by the Export-CsUserData cmdlet are not available in the Skype for Business Server
Control Panel.
NOTE: URNs that have the following characters back slash (\) and forward slash (/) will cause the powershell
command to fail and stop the export of the user data until that point.The following error is reported: Export-
CsUserData : "urn:hcd:User1/test@domain.com" is not a valid uniform resource name (At line:1 char:1+ Export-
CsUserData -PoolFqdn pool01.domain.com -FileName c:\temp\UserDataExport.zip+ ~~~~~~~~~~~~~~~ +
CategoryInfo : NotSpecified: (:) [Export-CsUserData], UriFormatException + FullyQualifiedErrorId :
System.UriFormatException,Microsoft.Rtc.Management.BlobStor

Examples
-------------------------- Example 1 --------------------------
Export-CsUserData -PoolFqdn "atl-cs-001.litwareinc.com" -FileName "C:\Logs\ExportedUserData.zip"

The command shown in Example 1 exports user data from the pool atl-cs-001.litwareinc.com to a file named
C:\Logs\ExportedUserData.zip.

Parameters
-ConfDirectoryFilter
When specified, allows you to export conference directory information for the specified conference directory. For
example, to export data from the conference directory with the ID 13 use this syntax:
-ConfDirectoryFilter 13
You can return conference directory IDs by using this command:
Get-CsConferenceDirectory

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DbName
Name of the SQL Server database containing the user data to be exported.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables administrators to specify the FQDN of the domain controller to be used when running the
Export-CsUserData cmdlet. If not specified, the cmdlet will use the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Full path to the .ZIP file that the Export-CsUserData cmdlet will create; this file will contain the exported user data.
For example:
-FileName "C:\Logs\ExportedData.zip"
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name of the pool where the User database containing the user data to be exported is
installed. For example:
-Identity "atl-sql-001.litwareinc.com"
Note that you can retrieve fully qualified domain names for your User database pools by running this command:
Get-CsService -UserDatabase

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-LegacyFormat
When specified, data is saved in the format used by Microsoft Lync Server 2010.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the Registrar pool containing the user data to be exported. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"
Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlInstanceName
Name of the SQL Server instance containing the user data to be exported. For example:
-SqlInstanceName "rtc"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserFileFilter
Full path to a text file containing a list of user URIs for whom data should be exported.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserFilter
Enables you to export data for a single user. That user is in dictated by specifying his or her SIP address, minus the
sip: prefix. For example:
-UserFilter "kenmyer@litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
The Export-CsUserData cmdlet creates new .ZIP files.

Related Links
Convert-CsUserData
Import-CsUserData
Sync-CsUserData
Update-CsUserData
minutes to read • Edit Online

Find-CsGroup
In ths Article

Use the Find-CsGroup cmdlet to search groups.

Syntax
Find-CsGroup [-Tenant <Guid>] -SearchQuery <String> [-MaxResults <UInt32>] [-ExactMatchOnly <Boolean>]
[-Force] [<CommonParameters>]

Description
The Find-CsGroup cmdlet lets you search groups in the Azure Address Book Service (AABS ).

Examples
-------------------------- Example 1 --------------------------

Find-CsGroup -SearchQuery "Contoso Group" -MaxResults 5

This example finds and displays up to five groups that match the "Contoso Group" search query.
-------------------------- Example 2 --------------------------

Find-CsGroup -SearchQuery "ed0d1180-169e-47c7-b718-bf9e60543914" -ExactMatchOnly $true

This example finds and displays only those groups that are an exact match to the search query.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExactMatchOnly
The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxResults
The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided,
the default is value is 10.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SearchQuery
The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of
groups. This parameter accepts partial search query. The search is not case sensitive.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel
The Find-CsGroup cmdlet returns a list of Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel.
Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel contains Id and DisplayName.
minutes to read • Edit Online

Find-CsOnlineApplicationInstance
In ths Article

Use the Find-CsOnlineApplicationInstance cmdlet to find application instances that match your search criteria.

Syntax
Find-CsOnlineApplicationInstance -SearchQuery <String> [-MaxResults <UInt32?>] [-ExactMatchOnly] [-
AssociatedOnly] [-UnAssociatedOnly] [-Tenant <Guid>] [-CommonParameters]

Description
Use the Find-CsOnlineApplicationInstance cmdlet to find application instances that match your search criteria.
If MaxResults is not specified, the number of returned applications instances is limited to 10 application instances.

Examples
-------------------------- Example 1 --------------------------

Find-CsOnlineApplicationInstance -SearchQuery "Test"

This example returns up to 10 application instances whose name starts with "Test".
-------------------------- Example 2 --------------------------

Find-CsOnlineApplicationInstance -SearchQuery "Test" -MaxResults 5

This example returns up to 5 application instances whose name starts with "Test".
-------------------------- Example 3 --------------------------

Find-CsOnlineApplicationInstance -SearchQuery "Test Auto Attendant" -ExactMatchOnly

This example returns up to 10 application instances whose name is "Test Auto Attendant".
-------------------------- Example 4 --------------------------

Find-CsOnlineApplicationInstance -SearchQuery "Test Auto Attendant" -AssociatedOnly

This example returns up to 10 application instances whose name is "Test Auto Attendant", and who are associated
with an application configuration, like auto attendant or call queue.

Parameters
-AssociatedOnly
The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a
configuration.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExactMatchOnly
The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxResults
The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided,
the default is value is 10. Max allowed value is 20.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SearchQuery
The SearchQuery parameter defines a query for application instances by display name, telephone number, or GUID
of the application instance. This parameter accepts partial queries for display names and telephone numbers. The
search is not case sensitive.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-UnAssociatedOnly
The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated
to any configuration.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.FindApplicationInstanceResult
minutes to read • Edit Online

Get-CsAccessEdgeConfiguration
In ths Article

Returns information about the configuration settings for computers running the Access Edge service in your
organization (also known as Access Edge servers). Access Edge servers provide a way for users outside your
internal network to communicate with users inside your internal network. This cmdlet was introduced in Lync
Server 2010.

Syntax
Get-CsAccessEdgeConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsAccessEdgeConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Access Edge servers (also known as access proxy servers) provide a way for you to extend the capabilities of Skype
for Business Server to people who are not logged on to your internal network. For example, if you have remote
users -- authenticated users who log on to Skype for Business Server over the Internet rather than through the
internal network -- you will need to set up an Access Edge server. Additionally, Edge Servers are required if you
want to establish federation with another organization or if you want to give your users the right to communicate
with people who have accounts with a public instant messaging service such as Yahoo!, AOL, or MSN. Access Edge
servers sit on the perimeter network, and are used to make and validate SIP connections between users inside and
outside of your internal network.
In Skype for Business Server, the Access Edge servers are managed by using a single, global collection of
configuration settings. The Get-CsAccessEdgeConfiguration cmdlet enables you to return information about these
global settings. Note that the property values returned by the Get-CsAccessEdgeConfiguration cmdlet will vary
depending on the type of routing you have configured for your Edge Servers. For details, see the Set-
CsAccessEdgeConfiguration Help topic.
By default, members of the following groups are authorized to run the Get-CsAccessEdgeConfiguration cmdlet
locally: RTCUniversalUserAdmins, RTCUniversalServerAdmins. To return a list of all the role-based access control
(RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created yourself), run
the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsAccessEdgeConfiguration"}

Examples
-------------------------- Example 1 --------------------------

Get-CsAccessEdgeConfiguration
Example 1 demonstrates the basic use of the Get-CsAccessEdgeConfiguration cmdlet: calling the cmdlet without
any additional parameters returns all the property values for your Access Edge server implementation. Note that
there is no need to include the Identity or Filter parameters; that's because there is only one set of Access Edge
server configuration data.
-------------------------- Example 2 --------------------------

Get-CsAccessEdgeConfiguration | Select-Object Allow*

Example 2 returns just three property values for your Access Edge server configuration: AllowAnonymousUsers;
AllowFederatedUsers; and AllowOutsideUsers. To do this, the command first uses the Get-
CsAccessEdgeConfiguration cmdlet to return all the Access Edge server property values. This information is then
piped to the Select-Object cmdlet, which picks out only those properties that start with the string value "Allow". In
turn, those are the only property values displayed on the screen.
-------------------------- Example 3 --------------------------

(Get-CsAccessEdgeConfiguration).EnablePartnerDiscovery

The command shown in Example 3 returns the value of a single Access Edge server configuration property:
EnablePartnerDiscovery. To do this, the Get-CsAccessEdgeConfiguration cmdlet is first called in order to return all
the Access Edge server configuration property values. The call to the Get-CsAccessEdgeConfiguration cmdlet is
enclosed in parentheses; this ensures that Windows PowerShell completes this command before doing anything
else. After all the property values have been returned, standard "dot notation" (the object name followed by a
period followed by a property name) is used to display the value of a single property: EnablePartnerDiscovery.

Parameters
-Filter
Enables you to use wildcards when specifying the Access Edge configuration settings to be returned. Because you
can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if
you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the Access Edge configuration settings to be returned. Because you can only have a single,
global instance of these settings, you do not have to include the Identity when calling the Get-
CsAccessEdgeConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -
Identity global.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LocalStore
Retrieves the Access Edge configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayAccessEdgeSettingsDnsSrvRouting

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayAccessEdgeSettingsDefaultRoute

Related Links
Set-CsAccessEdgeConfiguration
minutes to read • Edit Online

Get-CsAdContact
In ths Article

In a multi-forest topology, returns information about user accounts from forests other than your home forest; these
are users who have been replicated as contact objects. The Get-CsAdContact cmdlet returns any user who has a
value configured for the msRTCSIP -OriginatorSid attribute. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsAdContact [[-Identity] <UserIdParameter>] [-Credential <PSCredential>] [-DomainController <Fqdn>]
[-Filter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [-LDAPFilter <String>]
[<CommonParameters>]

Description
In a multi-forest topology, users from other forests are represented as contacts. These contacts are not equivalent
to Active Directory contacts; if you use Active Directory Users and Computers to create a new contact, that user will
not be returned by the Get-CsAdContact cmdlet. Instead, the Get-CsAdContact cmdlet only returns information
about users from forests other than your home forest. If you do not have a multi-forest topology then you will not
need to call the Get-CsAdContact cmdlet.
By default, members of the following groups are authorized to run the Get-CsAdContact cmdlet locally:
RTCUniversalUserAdmins, RTCUniversalServerAdmins, RTCUniversalReadOnlyAdmins. To return a list of all the
role-based access control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you
have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsAdContact"}

Examples
-------------------------- Example 1 --------------------------

Get-CsAdContact

The command shown in Example 1 returns a collection of all the multi-forest contacts found in Active Directory
Domain Services. Calling the Get-CsAdContact cmdlet without any additional parameters returns all the property
values for all the Active Directory contacts.
-------------------------- Example 2 --------------------------

Get-CsAdContact | Select-Object DisplayName, SipAddress

Example 2 also returns a collection of all the Active Directory contacts. In this case, however, that collection is piped
to the Select-Object cmdlet, which specifies the only two attributes that will be displayed on the screen:
DisplayName and SipAddress.
-------------------------- Example 3 --------------------------

Get-CsAdContact -Identity "Ken Myer"

Example 3 returns information for a single Active Directory contact: the contact with the Identity "Ken Myer".
-------------------------- Example 4 --------------------------

Get-CsAdContact -LdapFilter "Organization=Fabrikam"

In Example 4, the command returns all the Active Directory contacts who work for Fabrikam. To do this, the Get-
CsAdContact cmdlet is called, along with the LdapFilter parameter. In this example, the limits the returned data to
contacts that have their Organization attribute set to "Fabrikam".
-------------------------- Example 5 --------------------------

$x = Get-Credential -Credential "litwareinc\administrator"

Get-CsAdContact -Credential $x

The two commands shown in Example 5 illustrate the use of the Credential parameter, which enables you to run the
Get-CsAdContact cmdlet under alternate credentials.
In the first command, the Get-Credential cmdlet is called in order to create a PSCredential object for the account
litwareinc\administrator. This command displays a Credential Request dialog box for the user
litwareinc\administrator; after you supply the password for this account, that credential information will be stored
in the variable $x.
In the second command, the Get-CsAdContact cmdlet is called along with the Credential parameter. The parameter
value $x indicates that the Get-CsAdContact cmdlet should be run under the account litwareinc\administrator.

Parameters
-Credential
Enables you to run the Get-CsAdContact cmdlet under alternate credentials; this might be required if the account
you used to log on to Windows does not have the necessary privileges required to work with contact objects.
To use the Credential parameter you must first create a PSCredential object using the Get-Credential cmdlet. For
details, see the Help topic for Get-Credential.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the fully qualified domain name
(for example, atl-cs-001.litwareinc.com).
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on attributes specific to Skype for Business Server.
The Filter parameter uses the same Windows PowerShell filtering syntax used by the Where-Object cmdlet. For
example, a filter that returns only contacts who have a SIP address that ends with "fabrikam.com" would look like
this: {SipAddress -like "@fabrikam.com"}, with SipAddress representing the Active Directory attribute; -like
representing the comparison operator; and "@fabrikam.com" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the contact to be returned. Contact Identities can be specified by using one of three
formats: 1) the contact's SIP address; 2) the contact's Active Directory distinguished name; and, 3) the contact's
Active Directory display name (for example, Ken Myer).
You can use the asterisk () wildcard character when using the Display Name as the contact Identity. For example,
the Identity " Smith" returns all the contacts with a display name that ends in the string value "Smith".

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LDAPFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes. For example, you can limit
returned data to contacts who work in a specific department, or contacts that have a specified manager or job title.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns the
contact that has the telephone number 1-425-555-1298 would look like this: "telephoneNumber=1-425-555-
1298", with "telephoneNumber" representing the Active Directory attribute; "=" representing the comparison
operator (equal to); and "1-425-555-1298" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to limit the retrieved information from a specific Active Directory organizational unit (OU ) or container.
This parameter returns data from both the specified OU and any of its child OUs. For example, if the Finance OU
has two child OUs: AccountsPayable and AccountsReceivable. contacts will be returned from each of these three
OUs.
When specifying an OU, use the distinguished name of that container; for example:
OU=Finance,dc=litwareinc,dc=com.

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven contacts
(regardless of the number of contacts that are in your forest) include the ResultSize parameter and set the
parameter value to 7. Note that there is no way to guarantee which 7 users will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three contacts in your forest, the
command will return those three contacts and then complete without error.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The Get-CsAdContact cmdlet accepts a pipelined string value representing the Identity of a user account.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.ADContact

Related Links
Get-CsAdUser
Get-CsUser
minutes to read • Edit Online

Get-CsAdditionalInternalDomain
In ths Article

{{Fill in the Synopsis}}

Syntax
Get-CsAdditionalInternalDomain [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsAdditionalInternalDomain [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
{{Fill in the Description}}

Examples
Example 1

PS C:\> {{ Add example code here }}

{{ Add example description here }}

Parameters
-Filter
{{Fill Filter Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
{{Fill Identity Description}}
Type: XdsGlobalRelativeIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
{{Fill LocalStore Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsAdDomain
In ths Article

Returns information indicating whether Active Directory Domain Services has been correctly configured to allow
for the installation of Skype for Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsAdDomain [-Domain <Fqdn>] [-DomainController <Fqdn>] [-GlobalCatalog <Fqdn>]
[-GlobalSettingsDomainController <Fqdn>] [-Report <String>] [<CommonParameters>]

Description
Before you can install Skype for Business Server your domain must be correctly prepared, a process that includes
extending the Active Directory schema to allow for the addition of attributes specific to Skype for Business Server,
in addition to assigning the required Access Control Entries to the universal groups used for managing and
operating Skype for Business Server. The Get-CsAdDomain cmdlet returns a single value that tells you whether or
not Skype for Business Server can be installed on a domain. If the Get-CsAdDomain cmdlet returns the value
LC_DOMAINSETTINGS_STATE_READY then you can install Skype for Business Server on that domain. If the
cmdlet returns LC_DOMAINSETTINGS_STATE_NOT_READY then you will need to correctly prepare the domain
before trying to install Skype for Business Server.
The Get-CsAdDomain cmdlet runs as part of the Setup Wizard. If the Wizard determines that the domain is not
correctly prepared, an error message is displayed and setup will stop. However, you can run the Get-CsAdDomain
cmdlet independently of the Setup Wizard in order to verify the domain status before you try to install Skype for
Business Server.
By default, any user who has read permissions to Active Directory can run the Get-CsAdDomain cmdlet. Typically
all domain members have this permission.
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsAdDomain"}

Historical Note: Get-CsAdDomain performs the same function as the following Microsoft Office Communications
Server 2007 R2 command:
lcscmd.exe /domain /action:CheckDomainPrepState

Examples
-------------------------- Example 1 --------------------------

Get-CsAdDomain

Example 1 returns information regarding the current status of your local Active Directory domain. If your domain
settings are up-to-date, and the domain is ready to host Skype for Business Server, the value
LC_DOMAIN_SETTINGS_STATE_READY will be returned.
-------------------------- Example 2 --------------------------

Get-CsAdDomain -Domain "fabrikam.com"

The command shown in Example 2 returns the current status of a specific domain: fabrikam.com. In a multi-domain
environment, you can return information for a given domain by including the Domain parameter.
-------------------------- Example 3 --------------------------

Get-CsAdDomain -Report "C:\Logs\DomainReport.html"

Example 3 retrieves the current status of your Active Directory domain and, at the same time, writes information
about that status to a file named C:\Logs\DomainReport.html. This file will detail the steps taken by the Get-
CsAdDomain cmdlet to determine the readiness status for the domain. Those steps include tasks such as verifying
the existence of Active Directory groups and checking permission settings on various Active Directory containers.

Parameters
-Domain
Fully qualified domain name (FQDN ) of the domain to be checked; for example: -Domain "litwareinc.com". If this
parameter is not specified, then the local domain will be checked.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables administrators to specify the FQDN of the domain controller to be used when running the Get-
CsAdDomain cmdlet. If not specified, the cmdlet will use the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
FQDN of a global catalog server in your domain. This parameter is not required if you are running the Get-
CsAdDomain cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory, then this parameter must point to the root domain controller. If global settings are stored in the
Configuration container, then any domain controller can be used and this parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\DomainPrep.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deployment.LcDomainSettingsState

Related Links
Disable-CsAdDomain
Enable-CsAdDomain
minutes to read • Edit Online

Get-CsAddressBookConfiguration
In ths Article

Returns information about Address Book configuration settings. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsAddressBookConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsAddressBookConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Address Book servers are intermediaries between Active Directory Domain Services and Skype for Business
Server. The Address Book server ensures that the user information stored in Skype for Business Server is in synch
with the user information stored in Active Directory. This is done by periodically synching Address Book files with
information stored in the User database.
In addition, Address Book servers periodically generate index files that are downloaded to computers running
Skype for Business. When a user searches for contacts, he or she either search through these index files or search
the Address Book index files stored in the Central Management store.
Address Book servers are governed using Address Book configuration settings; these settings determine such
things as how often Address Book files are synchronized with the user database and how often these Address Book
index files are generated. When you install Skype for Business Server, a set of global Address Book settings is
created for you. You can also create custom configuration settings that can be applied to individual sites. These
settings, if they exist, apply to any Address Book servers operating in the site, and take precedence over the global
settings.
You can use the Get-CsAddressBookConfiguration cmdlet to return information about any (or all) of the Address
Book settings currently in use in your organization.
By default, members of the following groups are authorized to run the Get-CsAddressBookConfiguration cmdlet
locally: RTCUniversalUserAdmins, RTCUniversalServerAdmins. To return a list of all the role-based access control
(RBAC ) roles this cmdlet has been assigned to (including any RBAC roles you have created yourself), run the
following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsAddressBookConfiguration"}

Examples
-------------------------- Example 1 --------------------------

Get-CsAddressBookConfiguration
Example 1 returns information about all the Address Book configuration settings in use in your organization. This is
the default behavior if you call the Get-CsAddressBookConfiguration cmdlet without any additional parameters.
-------------------------- Example 2 --------------------------

Get-CsAddressBookConfiguration -Identity site:Redmond

Example 2 returns information for the Address Book configuration settings with the Identity site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsAddressBookConfiguration -Filter site:*

In this example, the Filter parameter and the filter value "site:*" are used to return information about all the Address
Book configuration settings that have been applied at the site scope. The supplied filter value returns information
for all the Address Book settings that have an Identity that begins with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsAddressBookConfiguration | Where-Object {$_.UseNormalizationRules -eq $True}

In Example 4, information is returned for all the Address Book configuration settings where the settings uses
normalization rules when parsing phone numbers. To do this, the command first uses the Get-
CsAddressBookConfiguration cmdlet to return a collection of all the Address Book settings in the organization.
That collection is then piped to the Where-Object cmdlet, which selects only those settings where the
UseNormalizationRules property is equal to True.

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection (or multiple collections) of Address Book
settings. For example, to return a collection of all the settings configured at the site scope, use this syntax: -Filter
site:. To return a collection of all the settings that have the string value "EMEA" somewhere in their Identity, use this
syntax: -Filter *EMEA.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of Address Book settings to be returned. To refer to the global settings, use this
syntax: -Identity global. To refer to a collection configured at the site scope, use syntax similar to this: -Identity
site:Redmond.
Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards, then include the Filter
parameter instead.
If this parameter is not specified, then the Get-CsAddressBookConfiguration cmdlet returns a collection of all the
Address Book settings in use in the organization.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Address Book configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings

Related Links
New -CsAddressBookConfiguration
Remove-CsAddressBookConfiguration
Set-CsAddressBookConfiguration
minutes to read • Edit Online

Get-CsAddressBookNormalizationConfiguration
In ths Article

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.

Syntax
Get-CsAddressBookNormalizationConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsAddressBookNormalizationConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to the standard (E.164) format. (Note that an understanding of regular expressions is
helpful in order to understood what normalization rules do and how they work.) In Skype for Business Server, the
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.) The Get-
CsAddressBookNormalizationConfiguration cmdlet provides a way to return information about the Address Book
normalization rules currently in use in your organization.
Although Address Book normalization rules are very similar to voice normalization rules, the two are not
interchangeable: you cannot add voice normalization rules to an Address Book collection, nor can you add Address
Book normalization rules to a dial plan. That means that, in some cases, you might need to create identical rules:
one for assignment to Address Book servers, the other for assignment to dial plans.

Examples
-------------------------- Example 1 --------------------------

Get-CsAddressBookNormalizationConfiguration

The command shown in Example 1 returns a collection of all the Address Book normalization configuration settings
currently in use in the organization. This is done by calling the Get-CsAddressBookNormalizationConfiguration
cmdlet without any additional parameters.
-------------------------- Example 2 --------------------------

Get-CsAddressBookNormalizationConfiguration -Identity "site:Redmond"

In Example 2, information is returned for a single collection of normalization rules: the collection with the Identity
site:Redmond:
-------------------------- Example 3 --------------------------

Get-CsAddressBookNormalizationConfiguration -Filter "site:*"

Example 3 returns information about all the normalization configuration settings applied to the site scope. To do
this, the command uses the Filter parameter and the parameter value "site:*". That syntax limits the returned data to
all the collections that have an Identity that begins with the string value "site:".

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection (or multiple collections) of Address Book
normalization configuration settings. For example, to return a collection of all the settings configured at the site
scope, use this syntax: -Filter "site:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of Address Book normalization configuration settings to be returned. To refer to
the global settings, use this syntax: -Identity global
To refer to a collection configured at the site scope, use syntax similar to this: -Identity "site:Redmond"
Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards, use the Filter
parameter instead.
If this parameter is not specified, then the Get-CsAddressBookNormalizationConfiguration cmdlet returns a
collection of all the Address Book normalization configuration settings in use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Address Book normalization configuration data from the local replica of the Central Management
store rather than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings

Related Links
New -CsAddressBookNormalizationConfiguration
Remove-CsAddressBookNormalizationConfiguration
Set-CsAddressBookNormalizationConfiguration
Import-CsCompanyPhoneNormalizationRules
minutes to read • Edit Online

Get-CsAddressBookNormalizationRule
In ths Article

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.

Syntax
Get-CsAddressBookNormalizationRule [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsAddressBookNormalizationRule [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. (Note that an understanding of regular expressions is helpful
in order to understand what normalization rules do and how they do it.) Address Book normalization rules carry
out these conversions and translations for Address Book servers.
Although Address Book normalization rules are very similar to voice normalization rules, the two are not
interchangeable: you cannot add voice normalization rules to an Address Book collection, nor can you add Address
Book normalization rules to a dial plan. That means, in some cases, you might need to create identical rules: one for
assignment to Address Book servers, the other for assignment to dial plans.

Examples
-------------------------- Example 1 --------------------------

Get-CsAddressBookNormalizationRule

The command shown in Example 1 returns information about all the Address Book normalization rules configured
for use in the organization.
-------------------------- Example 2 --------------------------

Get-CsAddressBookNormalizationRule -Identity "Global/Generic_All"

In Example 2, information is returned for a single Address Book normalization rule: the rule Generic_All found in
the global collection of Address Book normalization rules.
-------------------------- Example 3 --------------------------
Get-CsAddressBookNormalizationRule -Identity "Global"

Example 3 returns all the normalization rules found in the global collection of Address Book normalization rules. To
return all the rules in a collection simply specify the collection scope. For example, to find all the rules in the
collection assigned to the Redmond site use this syntax: -Identity "site:Redmond".
-------------------------- Example 4 --------------------------

Get-CsAddressBookNormalizationRule | Where-Object {$_.Priority -eq 1}

The command shown in Example 4 returns all the Address Book normalization rules that have a Priority of 1. To do
this, Get-CsAddressBookNormalizationRule is first called in order to return a collection of all the normalization
rules configured for use in the organization. That collection is then piped to the Where-Object cmdlet, which picks
out only those rules where the Priority is equal to 1.

Parameters
-Filter
Enables you to use wildcard characters to return a collection of normalization rules based on the rule Identity. Note,
however, that Filter works only on the scope portion of the Identity and not on the rule name. For example, the filter
value lob will return all rules at the global scope (scopes that contain the letters "lob"). However, that filter will not a
return rule with the identity site:Redmond/lobby, where "lob" is only in the name portion of the Identity.
To return all the rules in a given collection (such as the Redmond site) you can use the Identity parameter instead of
the Filter parameter:
-Identity "site:Redmond"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the rule. If a value is specified for this parameter, it must be in the format scope/name; for
example, site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name. If neither the Identity nor
the Filter parameters are included in a command, the Get-CsAddressBookNormalizationRule cmdlet will return all
the Address book normalization rules configured for use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Address book normalization rules from the local replica of the Central Management store, rather than
the Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated

Related Links
New -CsAddressBookNormalizationRule
Remove-CsAddressBookNormalizationRule
Set-CsAddressBookNormalizationRule
minutes to read • Edit Online

Get-CsAdForest
In ths Article

Returns information indicating whether your Active Directory forest has been correctly configured to allow for the
installation of Skype for Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsAdForest [-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>] [-RootDomainController <Fqdn>]
[-Report <String>] [-SkipPrepareCheck <Boolean>] [<CommonParameters>]

Description
Before you can install Skype for Business Server 2015, you must make a number of forest-level changes to Active
Directory Domain Services. This includes creating display specifiers and objects specific to Skype for Business
Server 2015, creating the universal security groups that are needed to manage Skype for Business Server 2015,
and granting global settings object access permissions to these groups. The Get-CsAdForest cmdlet returns a
single value that tells you whether or not Skype for Business Server 2015 can be installed in a forest. If the Get-
CsAdForest cmdlet returns the value LC_FORESTSETTINGS_STATE_READY then you can install Skype for
Business Server 2015 in the forest. If the cmdlet returns LC_FORESTSETTINGS_STATE_NOT_READY then you
need to prepare the forest before trying to install Skype for Business Server 2015.
The Get-CsAdForest cmdlet runs as part of the Setup Wizard; if the Wizard determines that the forest is not
correctly prepared, then you receive an error message and Setup stops. However, you can also run the Get-
CsAdForest cmdlet independently of the Setup Wizard in order to verify the forest status before you try to install
Skype for Business Server 2015.
Historical Note: Get-CsAdForest performs the same function as the following Microsoft Office Communications
Server 2007 R2 command:
Lcscmd.exe /forest /action:CheckForestPrepState

By default, anyone who has read permissions to Active Directory can run the Get-CsAdForest cmdlet locally.
Typically all domain members have this permission.
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsAdForest"}

Examples
-------------------------- Example 1 --------------------------

Get-CsAdForest

Example 1 returns information indicating whether your Active Directory forest has been correctly configured to
allow for the installation of Skype for Business Server.
-------------------------- Example 2 --------------------------

Get-CsAdForest -Report C:\Logs\ForestState.html

In Example 2, forest state information is returned and the forest readiness is displayed on the screen. In addition,
detailed information about the steps taken to determine the forest state is written to a file named
C:\Logs\ForestState.html. This file includes a detailed list of all the Active Directory groups and Active Directory
containers where permissions were verified.

Parameters
-GlobalCatalog
Fully qualified domain name (FQDN ) of a global catalog server in your domain. This parameter is not required if
you are running the Get-CsAdForest cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in AD DS, then this parameter must point to the root domain controller. If global settings are stored in the
Configuration container, then any domain controller can be used and this parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ForestPrep.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RootDomainController
FQDN of the root domain controller, used to create trust paths for clients that need to access resources in domains
other than their own.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipPrepareCheck
When set to True ($True), causes Get-CsAdForest to run without first doing its initial preparation checks.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deployment.LcForestSettingsState
minutes to read • Edit Online

Get-CsAdminRole
In ths Article

Returns information about the role-based access control (RBAC ) roles used in your organization. RBAC roles are
used to specify the management tasks that users are allowed to carry out, and to determine the scope in which
users will be allowed to perform these tasks. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsAdminRole [[-Identity] <String>] [-LocalStore] [<CommonParameters>]

Get-CsAdminRole [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsAdminRole [[-Sid] <String>] [-LocalStore] [<CommonParameters>]

Description
Role-based access control (RBAC ) enables administrators to delegate control of specific management tasks in
Skype for Business Server. For example, instead of granting your organization's help desk full administrator
privileges, you can give these employees very specific rights, such as the right to manage only user accounts; the
right to manage only Enterprise Voice components; and the right to manage only archiving and Archiving Server.
In addition, these rights can be limited in scope: someone can be given the right to manage Enterprise Voice, but
only in the Redmond site; someone else can be given the right to manage users, but only if those user accounts are
in the Finance organizational unit (OU ).
The Skype for Business Server implementation of RBAC is based on two key elements: Active Directory security
groups and Windows PowerShell cmdlets. When you install Skype for Business Server, a number of universal
security groups such as CsAdministrator, CsArchivingAdministrator, and CsViewOnlyAdministrator are created for
you. These universal security groups have a one-to-one correspondence with RBAC roles, which means that any
user who is in the CsArchivingAdministrator security group has all of the rights granted to the
CsArchivingAdministrator RBAC role. In turn, the rights granted to an RBAC role are based on the cmdlets
assigned to that role (cmdlets can be assigned to multiple RBAC roles). For example, suppose a role has been
assigned the following cmdlets:
Get-ArchivingPolicy
Grant-ArchivingPolicy
New -ArchivingPolicy
Remove-ArchivingPolicy
Set-ArchivingPolicy
Get-ArchivingConfiguration
New -ArchivingConfiguration
Remove-ArchivingConfiguration
Set-ArchivingConfiguration
Get-CsUser
Export-CsArchivingData
Get-CsComputer
Get-CsPool
Get-CsService
Get-CsSite
The preceding list represents the only cmdlets that a user assigned a hypothetical RBAC role is allowed to run in a
remote Windows PowerShell command-line interface session. If the user tries to run the Disable-CsUser cmdlet
that command will fail because users assigned the hypothetical role do not have the right to run the Disable-
CsUser cmdlet. This applies to the Skype for Business Server Control Panel as well. For example, an Archiving
Administrator cannot disable a user by using Skype for Business Server Control Panel because the Skype for
Business Server Control Panel abides by RBAC roles. (Any time you run a command in Skype for Business Server
Control Panel you are actually calling a Windows PowerShell cmdlet.) If you are not allowed to run the Disable-
CsUser cmdlet, it won't matter whether you directly run that cmdlet from a remote session of Windows PowerShell
or if you indirectly run the cmdlet from within Skype for Business Server Control Panel; the command will fail.
Note that RBAC applies only to remote management. If you are logged on to a computer running Skype for
Business Server and you open Lync Server Management Shell, RBAC roles will not be enforced. Instead, security is
enforced primarily through the security groups RTCUniversalServerAdmins; RTCUniversalUserAdmins; and
RTCUniversalReadOnlyAdmins.
When you install Skype for Business Server, Setup creates several built-in RBAC roles. These roles cover common
administrative areas such as voice administration, user management, and Response Group administration. These
built-in roles cannot be modified in any way: you cannot add to or remove cmdlets from the roles, and you cannot
delete these roles. (Any attempt to delete a built-in role will result in an error message.) However, you can use the
built-in roles to create custom RBAC roles. These custom roles can then be modified by changing the
administrative scopes. For example, you can limit the role to managing user accounts with a particular Active
Directory OU.
The Get-CsAdminRole cmdlet returns information about all the RBAC roles available for use in your organization.
By default, members of the following groups are authorized to run the Get-CsAdminRole cmdlet locally:
RTCUniversalUserAdmins, RTCUniversalServerAdmins, RTCUniversalReadOnlyAdmins. To return a list of all the
RBAC roles this cmdlet has been assigned to (including any custom RBAC roles you have created yourself) run the
following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsAdminRole\b"}

Examples
-------------------------- Example 1 --------------------------

Get-CsAdminRole

The command shown in Example 1 returns information about all the RBAC roles configured for use in your
organization. This is done by calling the Get-CsAdminRole cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsAdminRole -Identity "CsHelpDesk"

In Example 2, a single RBAC role is returned: the role that has the Identity CsHelpDesk.
-------------------------- Example 3 --------------------------

Get-CsAdminRole -Filter "*Voice*"

Example 3 returns all the RBAC roles that have the string value "Voice" somewhere in their Identity (for example,
CsVoiceAdministrator; RedmondVoiceAdministrators). To do this, Get-CsAdminRole is called along with the Filter
parameter; the filter value "Voice" limits the returned data to RBAC roles that have the string value "Voice"
somewhere in their Identity.
-------------------------- Example 4 --------------------------

Get-CsAdminRole | Where-Object {$_.IsStandardRole -eq $False}

Example 4 returns all the custom RBAC roles that have been created for use in your organization. To carry out this
task, the command first uses the Get-CsAdminRole cmdlet to return a collection of all the RBAC roles currently in
use. This collection is then piped to the Where-Object cmdlet, which selects only those roles where the
IsStandardRole property is equal to False. By definition, any role that meets that criterion is a custom RBAC role.
-------------------------- Example 5 --------------------------

Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Set-CsUser\b"}

The command shown in Example 5 returns all the RBAC roles that include the Set-CsUser cmdlet. To do this, the
command first calls the Get-CsAdminRole cmdlet without any parameters in order to return a collection of all the
RBAC roles in the organization. This collection is then piped to the Where-Object cmdlet, which picks out any role
where the Cmdlets property includes the string value "Set-CsUser\b". (The \b is a word boundary marker that
indicates that "Set-CsUser" represents the entire string value.)
-------------------------- Example 6 --------------------------

Get-CsAdminRole | Where-Object {$_.UserScopes -match "OU: ou=Redmond,dc=litwareinc,dc=com"}

Example 6 returns information about all the RBAC roles that include the specified OU (ou=Redmond,
dc=litwareinc, dc=com) in the UserScopes property. To perform this task, the command first calls the Get-
CsAdminRole cmdlet in order to return a collection of all the RBAC roles currently configured for use. This
collection is then piped to the Where-Object cmdlet, which selects all of the roles that include the string value
"OU:ou=Redmond,dc=litwareinc,dc=com" in the UserScopes property.
-------------------------- Example 7 --------------------------

Get-CsAdminRole -Identity "CsVoiceAdministrator" | Select-Object -ExpandProperty Cmdlets

The command shown in Example 7 returns a list of all the cmdlets included in the CsVoiceAdministrator role. To do
this, the command first uses the Get-CsAdminRole cmdlet to return all the properties and property values for
CsVoiceAdministrator. This information is then piped to the Select-Object cmdlet, which uses the ExpandProperty
parameter to display all of the items contained in the Cmdlets property.

Parameters
-Filter
Enables you to use wildcards in order to specify the RBAC role (or roles) to be returned. For example, to return all
the roles that include the string value "Redmond" in their Identity, you can use this syntax: -Filter "Redmond".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the RBAC role to be returned. The Identity for an RBAC role must be the same as the
SamAccountName for the Active Directory universal security group associated with that role. For example, the help
desk role has an Identity equal to CsHelpDesk; CsHelpDesk is also the SamAccountName of the Active Directory
security group associated with that role.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-LocalStore
Retrieves the RBAC data from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Sid
Enables you to use a security identifier (SID ) to specify the RBAC role to be retrieved. SIDs are assigned by Skype
for Business Server at the time that the RBAC role is created, and look similar to this: S -1-5-21-1573807623-
1597889489-1765977225-1145.
This same SID can also be found on the corresponding Active Directory security group.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role
minutes to read • Edit Online

Get-CsAdminRoleAssignment
In ths Article

Returns the role-based access control (RBAC ) roles assigned to a user. This cmdlet was introduced in Lync Server
2010.

Syntax
Get-CsAdminRoleAssignment [-Identity] <String> [-Force] [-LocalStore] [<CommonParameters>]

Description
Role-based access control (RBAC ) enables administrators to delegate control of specific management tasks for
Skype for Business Server. For example, instead of granting your organization's help desk full administrator
privileges you can give these employees very specific rights: the right to manage only user accounts; the right to
manage only Enterprise Voice components; and the right to manage only archiving and Archiving Server. In
addition, these rights can be limited in scope: one user can be given the right to manage Enterprise Voice, but only
in the Redmond site; while another user can be given the right to manage user accounts, but only if those accounts
are in the Finance organizational unit (OU ).
The Get-CsAdminRoleAssignment cmdlet provides a way for you to retrieve a list of the RBAC roles that have been
assigned to a user.

Examples
-------------------------- Example 1 --------------------------

Get-CsAdminRoleAssignment -Identity "kenmyer"

The command shown in Example 1 returns all of the RBAC roles assigned to the user kenmyer.
-------------------------- Example 2 --------------------------

Get-CsUser | ForEach-Object {$_.DisplayName; Get-CsAdminRoleAssignment -Identity $_.SamAccountName}

Example 2 returns the RBAC roles for all of the users who have been enabled for Skype for Business Server. To do
this, the command begins by calling the Get-CsUser cmdlet without any parameters; that returns a collection of all
the users in the organization who have been enabled for Skype for Business Server. This data is then piped to the
ForEach-Object cmdlet, which loops through each user account in the collection and does the following: 1) echoes
the user's display name to the screen; and 2) uses the Get-CsAdminRoleAssignment cmdlet to return the user's
RBAC roles. The user account information must be piped to the ForEach-Object cmdlet because the Get-
CsAdminRoleAssignment cmdlet does not directly accept pipelined data.

Parameters
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
SamAccountName of the user whose RBAC roles are to be returned, You can retrieve the SamAccountName for a
user by using a command similar to this:
Get-CsUser "Ken Myer" | Select-Object SamAccountName

Note that you must use the SamAccountName when specifying the user Identity. Other common values used when
specifying identities, such as the Active Directory display name or the user's SIP address, will not work with Get-
CsAdminRoleAssignment.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-LocalStore
Retrieves the RBAC role assignment data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The Get-CsAdminRoleAssignment cmdlet accepts a pipelined string value representing the SamAccountName of a
user.

Outputs
String
The Get-CsAdminRoleAssignment cmdlet returns string values representing the RBAC roles held by the specified
user.

Related Links
Get-CsAdminRole
minutes to read • Edit Online

Get-CsAdPrincipal
In ths Article

Returns information about Active Directory principals. These principals include Active Directory objects such as
users, groups, contacts, containers, and organizational units. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsAdPrincipal [[-Identity] <UserIdParameter>] [-Credential <PSCredential>] [-DomainController <Fqdn>]
[-Filter <String>] [-LDAPFilter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Description
The Get-CsAdPrincipal cmdlet returns a collection of Active Directory principals that can be used when
constructing Persistent Chat membership lists (see the help information for the AllowedMembers and
DeniedMembers parameters for the Set-CsPersistentChatCategory cmdlet for more details). Get-CsAdPrincipal
returns information for Active Directory objects such as:
Users (object class = {top, person, organizationalPerson, user})

Groups (object class = {top, group})

Contacts (object class = {top, person, organizationalPerson, contact})

Containers (object class = {top, container})

Organizational Units (object class = {top, organizationalUnit})

Domains (object class = {top, domain, domainDNS})

Among other things, this means that you can use the Get-CsAdPrincipal cmdlet (and the objectClass property) to
quickly return information about Active Directory objects such as groups or organizational units. For example, this
command returns the names of all your Active Directory OUs:
Get-CsAdPrincipal | Where-Object {$_.ObjectClass -match "organizationalUnit"} | Select-Object Name

The functions carried out by the Get-CsAdPrincipal cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsAdPrincipal

The command shown in Example 1 returns all the Active Directory principals in the organization.
-------------------------- Example 2 --------------------------

Get-CsAdPrincipal -Filter {SipAddress -eq "sip:RedmondMeetingRoom@litwareinc.com"}

In Example 2, information is returned for a single Active Directory principal: the principal with the SIP address
"sip:RedmondMeetingRoom@litwareinc.com". This is done by including the Filter parameter and a filter value that
looks for principals where the SipAddress property is equal to (-eq) "sip:RedmondMeetingRoom@litwareinc.com".
-------------------------- Example 3 --------------------------

Get-CsAdPrincipal | Where-Object {$_.ObjectClass -contains "contact"}

In the preceding example, information is returned for all the Active Directory objects. To carry out this task, the
command first calls the Get-CsAdPrincipal cmdlet without any parameters; this returns a collection of all the Active
Directory principals. That collection is then piped to the Where-Object cmdlet, which selects only those principals
where the ObjectClass property contains the string value "contact".

Parameters
-Credential
Enables you to run the Get-CsAdPrincipal cmdlet under alternate credentials. This might be required if the account
you used to log on to Windows does not have the necessary privileges required to work with user objects.
To use the Credential parameter you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve Active Directory principal
information. To connect to a particular domain controller, include the DomainController parameter followed by the
computer name (for example, atl-dc-001) or its fully qualified domain name (FQDN ) (for example, atl-dc-
001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on attributes specific to Skype for Business Server.
The Filter parameter uses the much of the same Windows PowerShell filtering syntax used by the Where-Object
cmdlet. For example, a filter that returns only principals who are not enabled for Skype for Business Server would
look like this:
-Filter {Enabled -ne $True}

In that example. Enabled represents the Active Directory attribute, -ne represents the comparison operator (not
equal to), and $True (a built-in Windows PowerShell variable) represents the value True.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the principal account to be retrieved. Identities are typically specified by using one of four
formats: 1) the account SIP address; 2) the user's user principal name (UPN ); 3) the account domain name and
logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the account Active Directory
display name (for example, Ken Myer).
You can also reference a user account by using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the Identity. For example, the
Identity " Smith" returns all the users who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LDAPFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server). For example, you can limit returned data to principals who belong to a
specific department or who have a specific manager or job title.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only principals located in the city of Redmond would look like this:
-LdapFilter "l=Redmond"

In that example, the "l" (a lowercase L ) represents the Active Directory attribute (locality); "=" represents the
comparison operator (equal to); and "Redmond" represents the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return information about principals in a specific organizational unit (OU ) or container. The OU
parameter returns data from both the specified OU and any of its child OUs. For example, if the Finance OU has
two child OUs -- AccountsPayable and AccountsReceivable - principals will be returned from each of these three
OUs.
When specifying an OU, use the distinguished name (DN ) of that container; for example:
-OU "OU=Finance,dc=litwareinc,dc=com"

To return principals from the Users container, use this syntax:


-OU "cn=Users,dc=litwareinc,dc=com"

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven principals
(regardless of the number of principals that are in your forest) include the ResultSize parameter and set the
parameter value to 7. Note that there is no way to guarantee which seven principals will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three principals in your forest, the
command will return those three principals, and then complete without error.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
String value or object representing an Active Directory user, group, contact, container, and organizational unit. For
example, this syntax returns Active Directory principal information for the Redmond and Dublin OUs:
"OU=Redmond,DC=litwareinc,DC=com", "OU=Dublin,DC=litwareinc,DC=com" | Get-CsAdPrincipal

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADPrincipal

Related Links
New -CsPersistentChatCategory
Set-CsPersistentChatCategory
minutes to read • Edit Online

Get-CsAdServerSchema
In ths Article

Returns information indicating whether your Active Directory schema has been correctly configured to allow for
the installation of Skype for Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsAdServerSchema [-Report <String>] [<CommonParameters>]

Description
Skype for Business Server cannot be installed until your Active Directory schema has been properly extended; that
means that objects and attributes specific to Skype for Business Server must be added to Active Directory Domain
Services before installation can take place. For example, user account objects must be modified to allow for
attributes that do such things as indicate the voice policy assigned to a user or report whether or not that account
has been enabled for Enterprise Voice.
The Get-CsAdServerSchema cmdlet returns a single value that tells you whether or not Active Directory has been
extended and is prepared for the installation of Skype for Business Server. If the Get-CsAdServerSchema cmdlet
returns the value SCHEMA_VERSION_STATE_CURRENT, the schema has been extended. If the cmdlet returns any
other value, then the schema has not been extended.
The Get-CsAdServerSchema cmdlet typically runs as part of the Setup Wizard; if Setup determines that the
schema is not correctly prepared, you will receive an error message and Setup will stop. However, you can also run
the Get-CsAdServerSchema cmdlet independently of the Setup Wizard, giving you the opportunity to verify the
schema status before you try to install Skype for Business Server.

Examples
-------------------------- Example 1 --------------------------

Get-CsAdServerSchema

The command shown in Example 1 returns the current state of the Active Directory server schema. If the schema is
up to date, the command returns the following value: SCHEMA_VERSION_STATE_CURRENT.
-------------------------- Example 2 --------------------------

Get-CsAdServerSchema -Report C:\Logs\Server_Schema.html

Example 2 also returns the current state of the Active Directory server schema. In addition, the command writes
more detailed information about that schema to a file named C:\Logs\Server_Schema.html. This information
includes details such as the schema major version and minor version.
Parameters
-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\SchemaPrep.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deployment.SchemaVersionState

Related Links
Install-CsAdServerSchema
minutes to read • Edit Online

Get-CsAdUser
In ths Article

Returns information about all the user accounts in Active Directory Domain Services. This includes user accounts
that have been enabled for Skype for Business Server as well as accounts that have not been enabled for Skype for
Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsAdUser [[-Identity] <UserIdParameter>] [-Credential <PSCredential>] [-DomainController <Fqdn>]
[-Filter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [-LDAPFilter <String>]
[<CommonParameters>]

Description
The Get-CsAdUser cmdlet returns information about all the user accounts in Active Directory, including user
accounts that have been enabled for as well as user accounts that have not enabled for Skype for Business Server.
This differs from the Get-CsUser cmdlet, which returns information only for users whose accounts have been
enabled for Skype for Business Server or an earlier version of the software.
Although there is some overlap between the cmdlets, the Get-CsAdUser cmdlet and the Get-CsUser cmdlet also
differ in the type of information they return. In general, the Get-CsUser cmdlet returns values for Active Directory
attributes specifically related to Skype for Business Server. For example, the Get-CsUser cmdlet can tell you which
Skype for Business Server policies have been assigned to a user; the line Uniform Resource Identifier (URI)
assigned to that user; and indicate whether or not the user has been enabled for Enterprise Voice. These attributes
will not be part of a user account unless that user has been enabled for Skype for Business Server.
By contrast, the Get-CsAdUser cmdlet returns generic Active Directory attribute values; that is, it returns
information about attributes that are part of the basic Active Directory user account and are present whether or not
a user has been enabled for Skype for Business Server. For example, the Get-CsAdUser cmdlet returns information
such as which department and organization the user works for along with the user's job title, telephone number,
and office address. To see a complete list of the attribute values returned by the Get-CsAdUser cmdlet, type this
command at the Windows PowerShell prompt:
Get-CsAdUser | Get-Member

The Get-CsAdUser cmdlet provides several ways to filter the collection of users returned when you run the cmdlet.
For example, if you don't want to return all of your Active Directory user accounts, you can apply the optional
parameters Filter or LdapFilter. These parameters are mutually exclusive: if you use Filter in a command you cannot
use LdapFilter in that same command, and vice versa. The Filter parameter enables you to limit the returned data to
users who meet the specified criteria for Skype for Business Server-specific attributes. For example, you can use the
Filter parameter to return a collection of users who either have or have not been enabled for Skype for Business
Server. The LdapFilter parameter enables you to limit the returned data for users who fit other criteria based on
generic Active Directory attributes; for example, users who work in a specified state or province, users who do or do
not have a pager, or users with a designated job title.
One important thing to note about the Get-CsAdUser cmdlet is this: although the Enabled attribute, which
determines whether or not a user has been enabled for Skype for Business Server, is a Boolean value, this property
actually has three valid values:
True: The user has been enabled for Skype for Business Server.
False: The user has temporarily had their Skype for Business Server account disabled. This is typically carried out by
using the Set-CsUser cmdlet and setting the Enabled parameter to $False.
Null: The user has not been enabled for Skype for Business Server.
What that means is that, if you want to return a list of users who are not enabled for Skype for Business Server
then you must use a command that returns all the users where the Enabled attribute is null:
Get-CsAdUser -Filter {Enabled -eq $Null}

By contrast, the following command returns only those user who have Skype for Business Server accounts that
have temporarily been disabled:
Get-CsAdUser -Filter {Enabled -eq $False}

Users who have not been enabled for Skype for Business Server will not be returned when you run the preceding
command.

Examples
-------------------------- Example 1 --------------------------

Get-CsAdUser

The command shown in Example 1 returns a collection of all the user accounts in your Active Directory domain.
-------------------------- Example 2 --------------------------

Get-CsAdUser -Identity "Pilar Ackerman"

In Example 2, the Get-CsAdUser cmdlet returns user account information for Pilar Ackerman. In this example, the
user's display name is used to specify her Identity.
-------------------------- Example 3 --------------------------

Get-CsAdUser -OU "ou=Finance,dc=litwareinc,dc=com"

Example 3 returns user account information for all the users in the Finance organizational unit. To do this, the DN
of the OU must be passed to the OU parameter.
-------------------------- Example 4 --------------------------

Get-CsAdUser -Filter {Enabled -ne $True} | Select-Object DisplayName

In Example 4, all the users who have not been enabled for Skype for Business Server are returned. To do this, the
Filter parameter is used with the Get-CsAdUser cmdlet to restrict the returned data to user accounts where the
Enabled property is not equal to True. This filter tells the Get-CsAdUser cmdlet to return only those user accounts
that have not been enabled for use with Skype for Business Server. After the data has been retrieved, the
information is piped to the Select-Object cmdlet, which then identifies the only property (in this case,
DisplayName) that will actually be displayed on the screen.
-------------------------- Example 5 --------------------------

Get-CsAdUser -LdapFilter "Department=Finance"

In Example 5 the LdapFilter parameter is used to limit the returned data to users who work in the Finance
department. This is done by using the LDAP filter value "Department=Finance".

Parameters
-Credential
Enables you to run the Get-CsAdUser cmdlet under alternate credentials. This might be required if the account you
used to log on to Windows does not have the necessary privileges required to work with user objects.
To use the Credential parameter you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve user information. To connect to a
particular domain controller, include the DomainController parameter followed by fully qualified domain name
(FQDN ) (for example, atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on attributes specific to Skype for Business Server.
The Filter parameter uses the same Windows PowerShell filtering syntax used by the Where-Object cmdlet. For
example, a filter that returns only users who are not enabled for Skype for Business Server would look like this:
{Enabled -ne $True}, with Enabled representing the Active Directory attribute, -ne representing the comparison
operator (not equal to), and $True (a built-in Windows PowerShell variable) representing the value True.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be retrieved. User Identities can be specified by using one of four
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon
name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name
(for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished
name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LDAPFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server). For example, you can limit returned data to users who work in a specific
department or users who have a specific manager or job title.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only users who work in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L )
representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and
"Redmond" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return users from a specific Active Directory organizational unit (OU ) or container. This parameter
returns data from both the specified OU and any of its child OUs. For example, if the Finance OU has two child
OUs -- AccountsPayable and AccountsReceivable -- users will be returned from each of these three OUs.
When specifying an OU, use the distinguished name (DN ) of that container; for example:
OU=Finance,dc=litwareinc,dc=com. To return users from the Users container, use this syntax:
cn=Users,dc=litwareinc,dc=com.

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless
of the number of users in your forest) include the ResultSize parameter and set the parameter value to 7. Note that
there is no way to guarantee which seven users will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the
command will return those three users, and then complete without error.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The Get-CsAdUser cmdlet accepts a pipelined string value representing the Identity of an Active Directory user
account.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.CSADUser

Related Links
Get-CsUser
minutes to read • Edit Online

Get-CsAllowedDomain
In ths Article

Returns information about the domains included on the list of domains approved for federation. After a domain has
been approved for federation (by being added to the allowed list), your users can exchange instant messages and
presence information with people who have accounts in that domain. This cmdlet was introduced in Lync Server
2010.

Syntax
Get-CsAllowedDomain [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsAllowedDomain [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another by using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and 3) federation between your organization and a third-party hosting provider.
Setting up direct federation with another organization involves several tasks. To begin with, you must enable your
Access Edge servers to allow federation. In addition, the other organization must enable federation with you;
federation cannot be established unless both parties agree to the relationship.
To set up a federated relationship you might also need to manage two federation-related lists: the allowed list and
the blocked list. The allowed list (required if EnablePartnerDiscovery has been disabled) represents the
organizations you have chosen to federate with. If a domain appears on the allowed list then (depending on your
configuration settings) your users will be able to exchange instant messages and presence information with users
who have accounts in that federated domain. Conversely, the blocked list represents domains that users are
expressly forbidden from federating with; for example, messages sent from a blocked domain will automatically be
rejected by Skype for Business Server.
The Get-CsAllowedDomain cmdlet provides a way for you to return information about all the domains on the
allowed domains list.

Examples
-------------------------- Example 1 --------------------------

Get-CsAllowedDomain
The command shown in Example 1 returns a collection of all the domains included in the list of domains approved
for federation. Calling the Get-CsAllowedDomain cmdlet without any additional parameters always returns the
complete collection of approved domains.
-------------------------- Example 2 --------------------------

Get-CsAllowedDomain -Identity fabrikam.com

Example 2 returns information about the allowed domain with the Identity "fabrikam.com". Because identities must
be unique, this command will never return more than one item.
-------------------------- Example 3 --------------------------

Get-CsAllowedDomain -Filter *fabrikam*

The command shown in Example 3 returns a collection of all the allowed domains that have the string value
"fabrikam" anywhere in their Identity. To do this, the command uses the Filter parameter and the filter value
"fabrikam". This filter value tells the Get-CsAllowedDomain cmdlet to return only those domains where the Identity
(the only property you can filter on) includes the string value "fabrikam". Domains such as fabrikam.com,
fabrikam.net, and africa.fabrikam.org will all be returned by this command.
-------------------------- Example 4 --------------------------

Where-Object {$_.ProxyFqdn -ne $Null}

Get-CsAllowedDomain | Where-Object {$_.ProxyFqdn -eq $Null}

In Example 4, the Get-CsAllowedDomain cmdlet and the Where-Object cmdlet are used to return a collection of all
the domains where no value has been entered for the ProxyFqdn property. To carry out this task, the Get-
CsAllowedDomain cmdlet is first called without any additional parameters in order to return a collection of all the
allowed domains. This collection is then piped to the Where-Object cmdlet, which selects only those allowed
domains where the ProxyFqdn property is equal to a null value; a null value means that no value has been entered
for ProxyFqdn. To find all the domains that have a value of some kind configured for the ProxyFqdn property, use
this syntax instead:
-------------------------- Example 5 --------------------------

Get-CsAllowedDomain | Where-Object {$_.MarkForMonitoring -eq $True}

Example 5 returns all the allowed domains that have their health status checked by the Monitoring Server. To do
this, the Get-CsAllowedDomain cmdlet is first used to return a collection of all the domains on the allowed domains
list. That collection is then piped to the Where-Object cmdlet, which picks out only those domains where the
MarkForMonitoring property is equal to True.

Parameters
-Filter
Enables you to use wildcard characters in order to return one or more domains from the list of allowed domains.
To return all of the domains that have an Identity that begins with the letter "r", use this syntax: -Filter r*

To return all of the domains that have an Identity that ends with ".net", use this syntax: -Filter "*.net"
To return all of the domains that have an Identity that begins with the letter "r" or with the letter "g", use this syntax:
-Filter \[rg\]*

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Name of the domain to be returned. Domains are listed on the allowed list by their fully qualified domain name
(FQDN ); that means that the Identity for a given domain will be similar to fabrikam.com or contoso.net. Note that
you cannot use wildcards when specifying a domain Identity. To use wildcards to return a given domain (or set of
domains), use the Filter parameter instead.
If this parameter is not specified, then all of the domains on the allowed domain list will be returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the allowed domains from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain

Related Links
New -CsAllowedDomain
Remove-CsAllowedDomain
Set-CsAccessEdgeConfiguration
Set-CsAllowedDomain
minutes to read • Edit Online

Get-CsAnalogDevice
In ths Article

Returns information about the analog devices you can manage by using Skype for Business Server. An analog
device is a telephone or other device that is connected to the public switched telephone network. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsAnalogDevice [[-Identity] <UserIdParameter>] [-Credential <PSCredential>] [-DomainController <Fqdn>]
[-Filter <String>] [-LdapFilter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Description
Analog devices include telephones, fax machines, modems, and teletype/telecommunication device for the deaf
(TTY/TDD ) devices that are connected to the public switched telephone network (PSTN ). Unlike devices that take
advantage of Enterprise Voice (the Voice over Internet Protocol (VoIP ) solution offered by Microsoft), analog
devices do not transmit information by using digital packets. Instead, information is transmitted by using a
continuous signal. This signal is commonly referred to as an analog signal; hence the term "analog devices."
In addition to analog phones and phones that take advantage of Enterprise Voice, there is another class of phones:
digital non-IP phones. These phones are proprietary to the private branch exchange (PBX) system they were
purchased with, and cannot be managed by using Skype for Business Server cmdlets.
In order to enable administrators to manage analog devices for organizations, Skype for Business Server lets you
associate analog devices with Active Directory contact objects. After a device has been associated with a contact
object, you can then manage the analog device by doing such things as assigning policies and dial plans to the
contact.
The Get-CsAnalogDevice cmdlet provides a way for you to retrieve information about the analog devices
configured for use in your organization. If you call the Get-CsAnalogDevice cmdlet without any parameters the
cmdlet will return information about all of your analog devices. Optional parameters provide different ways for you
to filter information; for example, you can return all of the devices that have contact objects in a specified OU, or all
of the analog devices located in a specified building.

Examples
-------------------------- Example 1 --------------------------

Get-CsAnalogDevice

The command shown in Example 1 returns a collection of all the analog devices currently configured for use in the
organization. This is done by calling the Get-CsAnalogDevice cmdlet without any parameters.
-------------------------- Example 2 --------------------------
Get-CsAnalogDevice | Select-Object DisplayName, LineUri

In Example 2, only two property values -- DisplayName and LineUri -- are returned for all the analog devices in the
organization. To carry out this task, the command first calls the Get-CsAnalogDevice cmdlet without any
parameters; this returns all the property values for all the analog devices in the organization. This collection is then
piped to the Select-Object cmdlet, which selects and displays only the values for the DisplayName and the LineUri
properties.
-------------------------- Example 3 --------------------------

Get-CsAnalogDevice -Filter {DisplayName -eq "Building 14 Receptionist"}

Example 3 returns information about the analog device that has the Active Directory display name "Building 14
Receptionist". To do this, the command calls Get-CsAnalogDevice and the Filter parameter; the filter value
{DisplayName -eq "Building 14 Receptionist"} limits the returned items to analog devices where the DisplayName
property is equal to "Building 14 Receptionist".
-------------------------- Example 4 --------------------------

Get-CsAnalogDevice -Filter {Gateway -eq "192.168.0.240"}

Example 4 returns all of the analog devices configured for the gateway 192.168.0.240. This is done by calling the
Get-CsAnalogDevice cmdlet and including the Filter parameter; the filter value "192.168.0.240" ensures that the
only objects returned are analog devices where the Gateway property is equal to 192.168.0.240.
-------------------------- Example 5 --------------------------

Get-CsAnalogDevice -Filter {AnalogFax -eq $True}

The command shown in Example 5 returns information about all the analog fax machines in the organization. To
perform this task, the command calls the Get-CsAnalogDevice cmdlet along with the Filter parameter. The filter
value {AnalogFax -eq $True} limits the returned objects to fax machines: analog devices where the AnalogFax
property is equal to True.
-------------------------- Example 6 --------------------------

Get-CsAnalogDevice -Filter {LineUri -eq "tel:+14255556001"}

In Example 6, a single analog device is returned: the device that has a LineUri (phone number) equal to
tel:+14255556001.
-------------------------- Example 7 --------------------------

Get-CsAnalogDevice -Filter {LineUri -like "tel:+1425555*"}

Example 7 returns all of the analog devices that have an area code of 425 and the phone prefix 555. To carry out
this task, the Get-CsAnalogDevice cmdlet is used along with the Filter parameter; the filter value {LineUri -like
"tel:+1425555*"} limits the returned data to devices where the LineUri property begins with the characters
"tel:+1425555". That's equivalent to a phone number that begins with these characters: 1425555 (for example, the
1-425-555-1298).
-------------------------- Example 8 --------------------------
Get-CsAnalogDevice -OU "ou=Telecommunications,dc=litwareinc,dc=com"

Example 8 returns a collection of all the analog devices that have a contact object in the Telecommunications OU in
Active Directory Domain Services. To do this, the Get-CsAnalogDevice cmdlet is called along with the OU
parameter; the parameter value limits the returned objects to analog devices that have contacts objects in the OU
with the distinguished name ou=Telecommunications,dc=litwareinc,dc=com.
-------------------------- Example 9 --------------------------

Get-CsAnalogDevice | Grant-CsVoicePolicy -PolicyName "AnalogVoicePolicy"

The command shown in Example 9 shows how you can return a collection of analog devices and then assign a
voice policy to each device in the collection. To do this, the Get-CsAnalogDevice cmdlet is first called without any
parameters; this returns a collection of all the analog devices configured for use in the organization. This collection
is then piped to the Grant-CsVoicePolicy cmdlet, which assigns the voice policy AnalogVoicePolicy to each device in
the collection.

Parameters
-Credential
Enables you to run the Get-CsAnalogDevice cmdlet under alternate credentials. This might be required if the
account you used to log on to the Windows does not have the necessary privileges required to work with contact
objects.
To use the Credential parameter, first use the Get-Credential cmdlet to create a PSCredential object. For details, see
the Get-Credential cmdlet Help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the fully qualified domain name
(FQDN ) of the computer; for example, atl-cs-001.litwareinc.com.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on attributes specific to Skype for Business Server. For example,
you can limit returned data to analog device contact objects that have been assigned a specific voice policy, or
contacts that have not been assigned a specific voice policy.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only fax machines would look like this, with AnalogFax representing the Active
Directory attribute, -eq representing the comparison operator (equal to), and $True (a built-in Windows PowerShell
variable) representing the filter value:
-Filter {AnalogFax -eq $True}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the analog device. Analog devices are identified by using the Active Directory distinguished
name of the associated contact object. By default, analog devices use a GUID (globally unique identifier) as their
common name, which means devices will typically have an Identity similar to this: CN={ce84964a-c4da-4622-
ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server). For example, you can limit returned data to contact objects that have
been assigned to a specific department or are located in a specific building.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only contact objects representing analog devices in the city of Redmond would look like this:
-LdapFilter "l=Redmond"

In the preceding filter, "l" represents the Active Directory attribute (locality); "=" represents the comparison operator
(equal to); and "Redmond" represents the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return contact objects from a specific Active Directory organizational unit (OU ). This returns data
from both the specified OU and any of its child OUs. For example, if the Finance OU has two child OUs --
AccountsPayable and AccountsReceivable -- analog device information will be returned from each of these OUs.
When specifying an OU, use the distinguished name of that container; for example:
-OU "OU=Finance,dc=litwareinc,dc=com"
Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by a command. For example, to return seven analog devices
(regardless of how many analog devices are in your forest), include the ResultSize parameter and set the parameter
value to 7. Note that there is no way to guarantee which seven phones will be returned. If you set the ResultSize to
7 but you have only three analog devices in your forest, the command will return those three devices and then
complete without error.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The Get-CsAnalogDevice cmdlet accepts a pipelined string value that represents the Identity of the analog device.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact

Related Links
Move-CsAnalogDevice
New -CsAnalogDevice
Remove-CsAnalogDevice
Set-CsAnalogDevice
minutes to read • Edit Online

Get-CsAnnouncement
In ths Article

Returns information about the Skype for Business Server announcements configured for use in your organization.
Announcements are played when users dial a valid but unassigned phone number. An announcement can be a
message (such as "This number is temporarily out of service") or a busy signal. This cmdlet was introduced in Lync
Server 2010.

Syntax
Get-CsAnnouncement [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsAnnouncement [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
An organization can own phone numbers that are not assigned to users or phones, but that are still valid numbers
that can be called. By default, when someone dials one of those numbers, that person will receive a busy signal and
the call may result in an error returned to the SIP client. By applying announcement settings to unassigned
numbers, administrators have the option of playing a message, returning a busy signal, or redirecting the call. This
cmdlet retrieves one or more of these announcement settings.

Examples
-------------------------- Example 1 --------------------------

Get-CsAnnouncement

Example 1 returns all of the announcements configured for use in the organization. This is done by calling the Get-
CsAnnouncement cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsAnnouncement -Identity "ApplicationServer:redmond.litwareinc.com/1951f734-c80f-4fb2-965d-51807c792b90"

The command shown in Example 2 returns a single announcement: the announcement with the Identity
ApplicationServer:redmond.litwareinc.com/1951f734-c80f-4fb2-965d-51807c792b90. For an alternate (and
arguably easier) way to retrieve a specific announcement, see Example 5.
-------------------------- Example 3 --------------------------

Get-CsAnnouncement -Identity "ApplicationServer:redmond.litwareinc.com"


The command shown in Example 3 returns information about all of the announcements that have been configured
for use on the service ApplicationServer:redmond.litwareinc.com.
-------------------------- Example 4 --------------------------

Get-CsAnnouncement -Filter "*ApplicationServer:Redmond*"

In Example 4, information is returned for all of the announcements configured for use in the Redmond site (on all
domains). This is done by including the Filter parameter and the filter value "ApplicationServer:Redmond", which
limits the returned data to announcements that have an Identity that contains the string value
"ApplicationServer:Redmond". By definition, those are announcements configured for use in the Redmond site.
-------------------------- Example 5 --------------------------

Get-CsAnnouncement | Where-Object {$_.Name -eq "Welcome Announcement"}

Example 5 shows an alternate way to return a specific announcement or set of announcements; in this case, all
announcements named Welcome Announcement. To do this, the Get-CsAnnouncement cmdlet is first called,
without any parameters, in order to return a collection of all the announcements in use in the organization. This
collection is then piped to the Where-Object cmdlet, which picks out those announcements that have a Name equal
to (-eq) "Welcome Announcement".
-------------------------- Example 6 --------------------------

Get-CsAnnouncement -Identity "ApplicationServer:redmond.litwareinc.com" | Where-Object {$_.Name -eq "Welcome


Announcement"}

Example 6 in similar to Example 5, but this example shows another way to return a single announcement. We once
again call the Get-CsAnnouncement cmdlet, but this time we specify an Identity of
ApplicationServer:redmond.litwareinc.com. This will return a collection of all announcements associated with that
service. As in Example 5, this collection is then piped to the Where-Object cmdlet, which picks out those
announcements that have a Name equal to (-eq) "Welcome Announcement". Because announcement names must
be unique within an Application service, this command will never return more than a single item.
-------------------------- Example 7 --------------------------

Get-CsAnnouncement | Where-Object {$_.Name -like "Welcome*"}

This example is similar to Example 5 in that we retrieve all the announcements, then pipe the collection of
announcements to the Where-Object cmdlet. However, in Example 5 we used the -eq operator in the where clause
to find an identical match for the name. In this example we've used the -like operator and a wildcard value to find all
announcements that, in this case, begin with the string Welcome.
-------------------------- Example 8 --------------------------

Get-CsAnnouncement | Where-Object {($_.TextToSpeechPrompt -ne $Null) -and ($_.Language -ne "en-US")}

In Example 8, information is returned for all the announcements that use a text-to-speech (TTS ) prompt (either as
the primary announcement or as a fallback to an audio file) but do not use U.S. English as their language. To carry
out this task, the command first calls the Get-CsAnnouncement cmdlet in order to return a collection of all the
announcements currently configured. This collection is then piped to the Where-Object cmdlet, which selects all the
announcements where the TextToSpeechPrompt property is not empty (not equal to $Null) and where the
Language property is not equal to (-ne) en-US.
Parameters
-Filter
This parameter allows you to perform a wildcard search on the Identity of all announcements configured for the
organization. Use the wildcard character (*) to filter on any part of the Identity.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
An identifier for the Announcement you want to retrieve. If you omit this parameter and the Filter parameter, all
instances of announcements configured for the organization will be displayed. The value for the Identity parameter
can be supplied in one of two ways:
Enter the Identity of the Application service for the announcements you want to retrieve. This will retrieve all
announcements configured with the given service Identity. For example,
ApplicationServer:Redmond.litwareinc.com.
Enter the full Identity of the single announcement you want to retrieve. This value will always be in the format
<serviceID>/<GUID>, where serviceID is the Identity of the Application Server running the Announcement
Service and GUID is a globally unique identifier associated with this announcement. For example:
ApplicationServer:Redmond.litwareinc.com/bef5fa3b-3c97-4af0-abe7-611deee7616c.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the announcement information from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement
Related Links
New -CsAnnouncement
Remove-CsAnnouncement
Set-CsAnnouncement
Import-CsAnnouncementFile
minutes to read • Edit Online

Get-CsApplicationEndpoint
In ths Article

Retrieves endpoints for the Application service. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsApplicationEndpoint [[-Identity] <UserIdParameter>] [-ApplicationId <String>]
[-Credential <PSCredential>] [-DomainController <Fqdn>] [-Filter <String>] [-OU <OUIdParameter>]
[-PoolFqdn <String>] [-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>]
[<CommonParameters>]

Description
This cmdlet retrieves one or more application contacts from Active Directory Domain Services. These objects are
stored in Active Directory in the Application Contacts container of the RTC service.

Examples
-------------------------- Example 1 --------------------------

Get-CsApplicationEndpoint

This example retrieves information about all application endpoints defined within the Skype for Business Server
2015 deployment.
-------------------------- Example 2 --------------------------

Get-CsApplicationEndpoint -Filter {DisplayName -like "*endpoint*"}

Example 2 retrieves all application endpoints that have the string "endpoint" anywhere within their display name. To
do this, the command uses the Filter parameter. The value of the parameter filters to find endpoint objects that have
a display name (DisplayName) that contains (-like) the string endpoint (endpoint - the wildcard characters indicate
that any characters can come before or after the string endpoint, meaning endpoint can be anywhere within the
display name).
-------------------------- Example 3 --------------------------

Get-CsApplicationEndpoint -ApplicationId tapp2 | Select-Object Identity, SipAddress, DisplayName, OwnerUrn

Example 3 returns all application endpoints associated with the application urn:application:tapp2. This is
accomplished by passing the ID tapp2 to the ApplicationId parameter. Notice that we didn't supply a pool FQDN;
this means that if an application with the ID tapp2 exists on more than one pool, endpoints for all those applications
will be retrieved. The next part of this command pipes the returned object or objects to the Select-Object cmdlet,
which displays only the Identity, SipAddress, DisplayName, and OwnerUrn properties of those objects.
Parameters
-ApplicationId
The application ID of the application endpoint you want to retrieve. The application ID is the value of the endpoint's
OwnerUrn property. For example, if the OwnerUrn property has a value of urn:application:Caa, the application ID is
urn:application:Caa. However, you can enter only the suffix, in this case Caa, to retrieve the endpoint. For example:
-ApplicationId Caa

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
Alternate credentials under which the Get operation will proceed. You can retrieve a PSCredential object by calling
the Windows PowerShell cmdlet Get-Credential.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on specific attributes for Skype for Business Server. For example,
you can limit returned data to contacts whose display names or SIP addresses match a certain wildcard pattern.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only contacts that have been enabled for Enterprise Voice would look like this:
{EnterpriseVoiceEnabled -eq $True}, with EnterpriseVoiceEnabled representing the Active Directory attribute, -eq
representing the comparison operator (equal to), and $True (a built-in Windows PowerShell variable) representing
the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
The Identity, SIP address, or display name of the application endpoint to retrieve. The Identity consists of the
distinguished name of the endpoint. This will typically contain a globally unique identifier (GUID ) as part of the CN,
for example:
CN={8811fefe-e0bb-4fab-ae39-7aaeddd423dc},CN=Application Contacts,CN=RTC
Service,CN=Services,CN=Configuration,DC=Vdomain,DC=com.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-OU
The organizational unit (OU ) in which the endpoint resides.

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
The Fully Qualified Domain Name (FQDN ) of the pool on which the application endpoint resides.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
The maximum number of endpoint records to retrieve.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
Accepts a pipelined string value representing the Identity of the application endpoint.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact
Related Links
Move-CsApplicationEndpoint
minutes to read • Edit Online

Get-CsArchivingConfiguration
In ths Article

Returns information about how (or if) instant messaging (IM ) sessions are archived in your organization. This
cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsArchivingConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsArchivingConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Many organizations find it useful to keep a transcript of all the IM sessions carried out by their users (or a selected
subset of users). For other organizations, it's mandatory to keep such transcripts. For example, many organizations
in the financial world are required by law to keep copies of all their electronic communications.
Skype for Business Server gives you flexibility when it comes to archiving IM and web conferencing sessions. If you
have deployed Archiving Server, you can use the various CsArchivingConfiguration cmdlets to enable and disable
instant message archiving and to manage your archiving database. You can also suspend IM should archiving fail;
this helps to ensure that you keep a record of all your electronic communications.
In order to archive IM sessions, you must set up at least one Archiving Server. After the Archiving Server is set up,
you must perform two additional steps. First, you need to enable archiving at the appropriate scope (for details, see
the Set-CsArchivingConfiguration cmdlet help topic). This might be the global scope; however, you can also
configure custom archiving settings for different sites.
Second, you must use archiving policies to indicate which users will have their IM sessions archived. What happens
if you enable archiving but do not assign any users a policy that specifies that their IM sessions should be archived?
Literally, nothing happens: IM sessions will not be archived unless a policy is in force that requires IM sessions to
be archived.
With the Get-CsArchivingConfiguration cmdlet, you can determine how IM session archiving has been configured
in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsArchivingConfiguration

The command shown in Example 1 returns a collection of all the archiving configuration settings in use in your
organization.
-------------------------- Example 2 --------------------------

Get-CsArchivingConfiguration -Identity site:Redmond

In Example 2, the Identity parameter is used to limit the returned collection of archiving configuration settings to
those settings that have the Identity site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsArchivingConfiguration -Filter site:*

In Example 3, the Filter parameter is used to limit the returned collection of archiving configuration settings to
settings that have been configured at the site scope. The parameter value "site:*" limits the returned items to those
that have an Identity that starts with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsArchivingConfiguration | Where-Object {$_.EnableArchiving -ne "None"}

This example uses the Get-CsArchivingConfiguration cmdlet to return a collection of all the archiving configuration
settings that have been enabled for use in your organization. To do that, the command first calls the Get-
CsArchivingConfiguration cmdlet without any parameters in order to return a collection of all your archiving
configuration settings. That collection is then piped to the Where-Object cmdlet, which applies a filter that limits the
returned data to those collections where the EnableArchiving property is not equal to "None". If EnableArchiving is
set to "None", archiving has been disabled. If this property is set to any other value (either "IMOnly" or
"ImAndWebConf") that means that archiving has been enabled.

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection (or collections) of archiving configuration
settings. To return a collection of all the settings configured at the site scope, use this syntax: -Filter site:. To return a
collection of all the settings that have the string value "Canada" somewhere in their Identity (the only property you
can filter on) use this syntax: -Filter "Canada*".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of archiving settings you want to return. To refer to the global
settings use this syntax: -Identity global. To refer to a collection configured at the site scope, use syntax similar to
this: -Identity site:Redmond. To return information about the settings assigned to an individual Registrar pool use
syntax: like this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Pool-level settings are available only in Skype for Business Server.


Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards, then include the Filter
parameter instead.
If this parameter is not specified, then the Get-CsArchivingConfiguration cmdlet returns a collection of all the
archiving configuration settings in use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the archiving configuration data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings

Related Links
New -CsArchivingConfiguration
Remove-CsArchivingConfiguration
Set-CsArchivingConfiguration
Set-CsArchivingServer
minutes to read • Edit Online

Get-CsArchivingPolicy
In ths Article

Returns information about your instant messaging (IM ) session archiving policies. Archiving policies enable you to
archive all IM and web conferencing sessions that take place between internal users and/or between internal users
and external users. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsArchivingPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsArchivingPolicy [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
Many organizations find it useful to keep an archive of all the IM sessions that their users take part in; other
organizations are legally required to keep such an archive. In order to archive IM sessions with Skype for Business
Server, you must perform two steps. First, you need to enable archiving at the global and/or the site scope by using
the Set-CsArchivingConfiguration cmdlet. This gives you the ability to archive IM sessions; however, it does not
automatically begin archiving those sessions.
Instead, to actually save transcripts of your IM sessions you must complete step 2: create one or more IM session
archiving policies. These policies determine which users will have their IM sessions recorded and which type of IM
sessions (internal and/or external) will be archived. Internal IM sessions are sessions where all of the participants
are authenticated users who have Active Directory accounts within your organization; external IM sessions are
sessions where at least one participant is an unauthenticated user who does not have an Active Directory account
within your organization. You can choose to archive only internal sessions, only external sessions, or both internal
and external sessions.
Archiving policies (which are created with the New -CsArchivingPolicy cmdlet) can be assigned to the global site or
to the site scope. In addition, these policies can be assigned to the per-user scope; this means that a policy can be
created and then applied to a specific user or a specific set of users. For example, you might have a global policy
that archives internal IM sessions for all your users. In addition, you might create a second policy, one that archives
both internal and external sessions, and apply that policy to your sales staff. Because per-user policies take
precedence over global and site policies, members of the sales staff will have all their IM sessions archived. Other
users (users who are not part of the sales department and are not affected by the sales policy) will have only their
internal IM sessions archived.
The Get-CsArchivingPolicy cmdlet provides a way for you to return information about the archiving policies that
have been configured for use in your organization. Keep in mind that these policies are enforced only if IM session
archiving has been enabled at the global or site scope. To determine whether or not IM session archiving has been
enabled, use the Get-CsArchivingConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsArchivingPolicy

Example 1 calls the Get-CsArchivingPolicy cmdlet without any parameters. This returns a collection of all the
archiving policies currently in use in your organization.
-------------------------- Example 2 --------------------------

Get-CsArchivingPolicy -Identity site:Redmond

In Example 2, the Get-CsArchivingPolicy cmdlet is used to return the archiving policy with the Identity
site:Redmond. Because identities must be unique, this command will always return, at most, a single policy.
-------------------------- Example 3 --------------------------

Get-CsArchivingPolicy -Filter tag:*

Example 3 returns a collection of all the archiving policies that have been configured at the per-user scope. This is
done by including the Filter parameter and the filter value "tag:*". That filter value instructs the Get-
CsArchivingPolicy cmdlet to return only those policies that have an identity beginning with the string value "tag:".
-------------------------- Example 4 --------------------------

Get-CsArchivingPolicy | Where-Object {$_.ArchiveInternal -eq $False}

Example 4 returns a collection of all the archiving policies where the archiving of internal IM sessions has been
disabled. To do this, the Get-CsArchivingPolicy cmdlet is first used to return a collection of all the archiving policies
currently in use. That collection is then piped to the Where-Object cmdlet. In turn, the Where-Object cmdlet applies
a filter that restricts the returned data to those policies where the ArchiveInternal property is equal to False.
-------------------------- Example 5 --------------------------

Get-CsArchivingPolicy | Where-Object {$_.ArchiveInternal -eq $False -and $_.ArchiveExternal -eq $False}

Example 5 is similar to Example 4; in this case, however, the command returns all of the archiving policies where
both internal and external archiving have been disabled. To accomplish this, the Get-CsArchivingPolicy cmdlet is
first used to return a collection of all the archiving policies currently in use. That collection is then piped to the
Where-Object cmdlet, which picks out only those policies where both the ArchiveInternal and the ArchiveExternal
properties are equal to False. The -and operator instructs the Where-Object cmdlet to only select policies that meet
all the specified criteria. To select policies that meet just one (or both) of the specified criteria use the -or operator:

Parameters
-Filter
Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to
return all of the policies configured at the site scope, use this syntax: -Filter "site:". This returns any policy where the
Identity (the only property you can filter on) begins with the string value "site:". To return a collection of all the per-
user policies that have an Identity that begins with "Sales", use this syntax: -Filter "Sales".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the archiving policy to be returned. To refer to the global policy, use this syntax: -Identity global.
To refer to a site policy, use syntax similar to this: -Identity site:Redmond. To refer to a per-user policy, use syntax
similar to this: -Identity RedmondArchivingPolicy. If this parameter is omitted, then all of the archiving policies
configured for use in your organization will be returned.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the archiving policy data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose archiving policies are
being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.Im.IMArchivingPolicy

Related Links
Grant-CsArchivingPolicy
New -CsArchivingPolicy
Remove-CsArchivingPolicy
Set-CsArchivingPolicy
minutes to read • Edit Online

Get-CsAudioConferencingProvider
In ths Article

Returns information about the audio conferencing providers authorized for use in the organization. Audio
conferencing providers are a third-party companies that provide organizations with conferencing services.

Syntax
Get-CsAudioConferencingProvider [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsAudioConferencingProvider [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
An audio conferencing provider is a third-party company that provides organizations with conferencing services.
Among other things, audio conferencing providers provide a way for users located off site, and not connected to
the corporate network or the Internet, to participate in the audio portion of a conference or meeting. Audio
conferencing providers often provide high-end services such as live translation, transcription, and live per-
conference operator assistance.
After organizations have contracted with an audio conferencing provider, users can be assigned to the provider by
using the Set-CsUserAcp cmdlet. Administrators can retrieve information about the audio conferencing providers
available to them by using the Get-CsAudioConferencingProvider cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsAudioConferencingProvider

The command shown in Example 1 returns information about all the audio conferencing providers available for use
in your organization.
-------------------------- Example 2 --------------------------

Get-CsAudioConferencingProvider -Identity "Fabrikam Telecom"

In Example 2, information is returned for a single audio conferencing provider: the provider with the Identity
Fabrikam Telecom.
-------------------------- Example 3 --------------------------

Get-CsAudioConferencingProvider -Filter "*Fabrikam*"


Example 3 demonstrates how wildcard values (and the Filter parameter) can be used to return information about
audio conferencing providers. In this example, the filter value "Fabrikam" returns all audio conferencing providers
that have the string value "Fabrikam" anywhere in their Identity.

Parameters
-Filter
Enables you to use wildcard characters when indicating the audio conferencing provider (or providers) to be
returned. For example, this syntax returns information about all the audio conferencing providers that have the
string value "fabrikam" somewhere in their Identity:
-Filter "*fabrikam*"

Note that you cannot use the Filter parameter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the audio conferencing provider to be returned. For example:
-Identity "Fabrikam Telecom"

If neither the Identity parameter nor the Filter parameter are included in a command then the Get-
CsAudioConferencingProvider cmdlet returns information for all the available providers.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is not used with Skype for Business Online.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingProvider#
Decorated
minutes to read • Edit Online

Get-CsAudioTestServiceApplication
In ths Article

Enables you to return information about the Audio Test service application used in your organization. This cmdlet
was introduced in Lync Server 2010.

Syntax
Get-CsAudioTestServiceApplication [[-Identity] <UserIdParameter>] [-Credential <PSCredential>]
[-Filter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [-DomainController <Fqdn>]
[<CommonParameters>]

Description
The Audio Test service enables Skype for Business Server users to test their voice connections before they make a
voice call. To do this, users click the Check call quality button found on the Audio Device tab of the Skype for
Business Server 2015 Options dialog box. When a user clicks this button, a call will be made to the automated
audio test service. The call will be answered and, after an introductory prompt is played, the caller will be asked to
record a brief message. That recording will then be replayed, enabling the caller to hear what he or she sounds like
over the current connection.
The Audio Test service relies, in part, on Active Directory contact objects. These objects are automatically created
for you when you install Audio Bot; there is no way to manually create these objects. However, administrators can
use the Get-CsAudioTestServiceApplication cmdlet to retrieve information about the various test service contacts
currently in use in the organization. Administrators can also use the Set-CsAudioTestServiceApplication to modify
the properties of these contacts.

Examples
-------------------------- Example 1 --------------------------

Get-CsAudioTestServiceApplication

In Example 1, the Get-CsAudioTestServiceApplication cmdlet is called without any additional parameters in order
to return a collection of all the Audio Test service contacts currently in use in the organization.
-------------------------- Example 2 --------------------------

Get-CsAudioTestServiceApplication -Identity "sip:RedmondAudioTest@litwareinc.com"

In Example 2, a single Audio Test service contact is returned: the contact that has the Identity
sip:RedmondAudioTest@litwareinc.com.
-------------------------- Example 3 --------------------------
Get-CsAudioTestServiceApplication -Filter {DisplayName -like "*Redmond*"}

Example 3 returns all the Audio Test service contacts that have a display name that includes the string value
"Redmond". To do this, the command uses the Filter parameter and the filter value {DisplayName -like "Redmond"};
that filter value limits the returned data to contacts that have a display name that includes the string value
"Redmond". This command returns contacts with display names such as "Redmond Audio Test Service Contact",
"Redmond Audio Bot", and "Test Contact for Redmond".

Parameters
-Credential
Enables you to run the cmdlet under alternate credentials. This might be required if the account you used to log on
to Windows does not have the necessary privileges required to work with contact objects.
To use the Credential parameter, you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-cs-001) or its fully qualified domain name (FQDN ) (for example, atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering for attributes specific to Skype for Business Server. For example,
you can limit returned data to audio test contact objects that have a specific display name or use a particular
language.
The Filter parameter uses the same Windows PowerShell filtering syntax used by the Where-Object cmdlet. For
example, a filter that returns only contacts that have the display name Audio Test Service Contacts would look like
the following, with DisplayName representing the Active Directory attribute, -eq representing the comparison
operator (equal to), and "Audio Test Service Contact" representing the filter value:
-Filter {DisplayName -eq "Audio Test Service Contact"}

You cannot use both the Filter and the Identity parameters in the same command.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
SIP address of the audio test service contact.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-OU
Enables you to return contacts from a specific Active Directory organizational unit (OU ). The OU parameter returns
data from both the specified OU and any of its child OUs. For example, if the Finance OU has two child OUs, such
as AccountsPayable and AccountsReceivable, users will be returned from each of these three OUs.
When specifying an OU, use the distinguished name (DN ) of that container; for example: -OU
"OU=Finance,dc=litwareinc,dc=com".

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by a command. For example, to return seven users (regardless
of how many users are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that
there is no way to guarantee which seven users will be returned. If you set the ResultSize to 7, but you have only
three users in your forest, the command will return those three users, and then complete without error.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact

Related Links
Set-CsAudioTestServiceApplication
minutes to read • Edit Online

Get-CsAuthConfig
In ths Article

Use the Get-CsAuthConfig cmdlet to retrieve the authentication configuration for your organization.

Syntax
Get-CsAuthConfig [[-Pool] <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Use the Get-CsAuthConfig cmdlet to retrieve the authentication configuration for your organization. This cmdlet
gets authentication configuration from two server roles - Registrar and WebServices. It is meant to only be run at
the global level. If you do run it at the pool level and only one of the roles are present on the pool, the cmdlet will
return the setting that corresponds to the role that exists on the pool and the global settings for the role that
doesn’t exist on the pool. If neither role is present on the pool, it will return an error. If both roles are present for the
pool, but policies are not defined at the pool level, the cmdlet will return an error.

Examples
Example 1

PS C:\> {{ Add example code here }}

{{ Add example description here }}

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pool
{{Fill Pool Description}}
Type: String
Required: False
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String

Outputs
System.Object
minutes to read • Edit Online

Get-CsAutoAttendant
In ths Article

Use the Get-CsAutoAttendant cmdlet to get information about your Auto Attendants (AA).

Syntax
Get-CsAutoAttendant [-Identity <String>] [-First <UInt32>] [-Skip <UInt32>] [-NameFilter <String>] [-SortBy
<String>] [-Descending] [-IncludeStatus] [-ExcludeContent] [-Tenant <Guid>] [<CommonParameters>]

Description
The Get-CsAutoAttendant cmdlet returns information about the AAs in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsAutoAttendant

This example gets all AAs in the organization.


-------------------------- Example 2 --------------------------

Get-CsAutoAttendant -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093"

# Id : f7a821dc-2d69-5ae8-8525-bcb4a4556093
# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213
# Name : Main Auto Attendant
# LanguageId : en-US
# VoiceId : Female
# DefaultCallFlow : Default Call Flow
# Operator :
# TimeZoneId : Pacific Standard Time
# VoiceResponseEnabled : False
# CallFlows :
# Schedules :
# CallHandlingAssociations :
# Status :
# DialByNameResourceId :
# DirectoryLookupScope :
# ApplicationInstances : {fa2f17ec-ebd5-43f8-81ac-959c245620fa, 56421bbe-5649-4208-a60c-24dbeded6f18,
c7af9c3c-ae40-455d-a37c-aeec771e623d}

This example gets the AA that has the identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093.


-------------------------- Example 3 --------------------------
Get-CsAutoAttendant -First 10

This example gets the first ten auto attendants configured for use in the organization.
-------------------------- Example 4 --------------------------

Get-CsAutoAttendant -Skip 5 -First 10

This example skips initial 5 auto attendants and gets the next 10 AAs configured in the organization.

Parameters
-Descending
If specified, the retrieved auto attendants would be sorted in descending order.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeContent
If specified, only auto attendants' names, identities and associated application instances will be retrieved.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-First
The First parameter indicates the maximum number of auto attendants to retrieve as the result. It is intended to be
used for pagination purposes.

Type: System.UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The identity for the AA to be retrieved. If this parameter is not specified, then all created AAs in the organization are
returned.
Type: System.String
Required: False
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-IncludeStatus
If specified, the status records for each auto attendant in the result set are also retrieved.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NameFilter
If specified, only auto attendants whose names match that value would be returned.

Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Skip
The Skip parameter indicates the number of initial auto attendants to skip in the result. It is intended to be used for
pagination purposes.

Type: System.UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SortBy
If specified, the retrieved auto attendants would be sorted by the specified property.

Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Get-CsAutoAttendant cmdlet accepts a string as the Identity parameter.

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant

Related Links
Get-CsAutoAttendantStatus
New -CsAutoAttendant
Remove-CsAutoAttendant
Set-CsAutoAttendant
Update-CsAutoAttendant
minutes to read • Edit Online

Get-CsAutoAttendantHolidays
In ths Article

Use Get-CsAutoAttendantHolidays cmdlet to get the holiday information for an existing Auto Attendant (AA).

Syntax
Get-CsAutoAttendantHolidays -Identity <String> [-Years <List>] [-Names <List>] [-Tenant <Guid>]
[<CommonParameters>]

Description
The Get-CsAutoAttendantHolidays provides a convenient way to visualize the information of all the holidays
contained within an auto attendant.

Examples
-------------------------- Example 1 --------------------------

Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093"

In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get all holidays in an auto attendant with
Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093.
-------------------------- Example 2 --------------------------

Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -Years @(2017)

In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get all holidays in year 2017 in an auto
attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093.
-------------------------- Example 3 --------------------------

Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -Years @(2017) -Name


@("Christmas")

In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get holiday named Christmas in the year 2017
in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093.
-------------------------- Example 4 --------------------------

Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" | Format-Table -Wrap -AutoSize

In this example, the Get-CsAutoAttendantHolidays cmdlet is used to retrieve all holidays in an auto attendant with
Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093 and the result is formatted as a table.
Parameters
-Identity
Represents the identifier for the auto attendant whose holidays are to be retrieved.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Names
The Names parameter represents the names for the holidays to be retrieved. If this parameter is not specified, then
all holidays in the AA are returned.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Years
The Years parameter represents the years for the holidays to be retrieved. If this parameter is not specified, then
holidays for all years in the AA are returned.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Get-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter.

Outputs
Microsoft.Rtc.Management.OAA.Models.HolidayVisRecord
Related Links
Import-CsAutoAttendantHolidays
Export-CsAutoAttendantHolidays
minutes to read • Edit Online

Get-CsAutoAttendantStatus
In ths Article

Use Get-CsAutoAttendantStatus cmdlet to get the status of an Auto Attendant (AA) provisioning.

Syntax
Get-CsAutoAttendantStatus -Identity <String> [-IncludeResources <List>] [-Tenant <Guid>] [<CommonParameters>]

Description
This cmdlet provides a way to return the provisioning status of an auto attendant configured for use in your
organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsAutoAttendantStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093"

In Example 1, the Get-CsAutoAttendantStatus cmdlet is used to get status records for all resources of an auto
attendant with identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093.
-------------------------- Example 2 --------------------------

Get-CsAutoAttendantStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -IncludeResources @("AudioFile")

In Example 2, the Get-CsAutoAttendantStatus cmdlet is used to get status records pertaining to audio files only of
an auto attendant with identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093.

Parameters
-Identity
Represents the identifier for the auto attendant whose provisioning status is to be retrieved.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-IncludeResources
The IncludeResources parameter identities the auto attendant resources whose status is to be retrieved. Available
resources are:
AudioFile: Indicates status for audio files used by AA.
DialByNameVoiceResponses: Indicates status for speech recognition when using dial-by-name (directory lookup)
feature with AA.
SipProvisioning: Indicates status for calling AA through its SIP (Primary) URI.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Get-CsAutoAttendantStatus cmdlet accepts a string as the Identity parameter.

Outputs
Microsoft.Rtc.Management.OAA.Models.StatusRecord

Related Links
Get-CsAutoAttendant
minutes to read • Edit Online

Get-CsAutoAttendantSupportedLanguage
In ths Article

The Get-CsAutoAttendantSupportedLanguage cmdlet gets languages that are supported by the Auto Attendant
(AA) service.

Syntax
Get-CsAutoAttendantSupportedLanguage [-Identity <String>] [-Tenant <Guid>] [<CommonParameters>]

Description
The Get-CsAutoAttendantSupportedLanguage cmdlet gets all languages (and their corresponding voices/speakers)
that are supported by the AA service, or a specific language if its Identity is provided.

Examples
-------------------------- Example 1 --------------------------

Get-CsAutoAttendantSupportedLanguage

This example gets all supported languages.


-------------------------- Example 2 --------------------------

Get-CsAutoAttendantSupportedLanguage -Identity "en-US"

This example gets the language that the Identity parameter specifies (en-US ).

Parameters
-Identity
The Identity parameter designates a specific language to be retrieved. If this parameter is not specified, then all
supported languages are returned.

Type: System.String
Required: False
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Get-CsAutoAttendantSupportedLanguage cmdlet accepts a string as the Identity parameter.

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.Language
minutes to read • Edit Online

Get-CsAutoAttendantSupportedTimeZone
In ths Article

The Get-CsAutoAttendantSupportedTimeZone cmdlet gets supported time zones for the Auto Attendant (AA)
service.

Syntax
Get-CsAutoAttendantSupportedTimeZone [-Identity <String>] [-Tenant <Guid>] [<CommonParameters>]

Description
The Get-CsAutoAttendantSupportedTimeZone cmdlet gets all the time zones that the AA service supports, or a
specific time zone if its Identity is provided.

Examples
-------------------------- Example 1 --------------------------

Get-CsAutoAttendantSupportedTimeZone

This example gets all supported time zones.


-------------------------- Example 2 --------------------------

Get-CsAutoAttendantSupportedTimeZone -Identity "Pacific Standard Time"

This example gets the timezone that the Identity parameter specifies (Pacific Standard Time).

Parameters
-Identity
The Identity parameter specifies a time zone to be retrieved. If this parameter is not used, then all supported time
zones are returned.

Type: System.String
Required: False
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Inputs
System.String
The Get-CsAutoAttendantSupportedTimeZone cmdlet accepts a string as the Identity parameter.

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone
minutes to read • Edit Online

Get-CsAutoAttendantTenantInformation
In ths Article

Gets the default tenant information for Auto Attendant (AA) feature.

Syntax
Get-CsAutoAttendantTenantInformation [-Tenant <Guid>] [<CommonParameters>]

Description
The Get-CsAutoAttendantTenantInformation cmdlet gets the default tenant information for Auto Attendant (AA)
feature.

Examples
-------------------------- Example 1 --------------------------

Get-CsAutoAttendantTenantInformation

Gets the default auto attendant information for the logged in tenant.

Parameters
-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.TenantInformation
minutes to read • Edit Online

Get-CsAutodiscoverConfiguration
In ths Article

Returns information about the Autodiscover configuration settings currently in use in an organization. The
Autodiscover service provides a way for client applications to locate key resources such as a user's home pool or
the URL for joining a dial-in conference.

Syntax
Get-CsAutodiscoverConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsAutodiscoverConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
For client applications to make the most effective use of Skype for Business Server those applications need to know
the location of key Skype for Business Server components. For example, authenticated users must be able to locate
their home pool; after all, they can only be authenticated by that home pool. Likewise, unauthenticated users must
be able to do such things as locate the URL used for joining a conference.
If all your users logged on from behind the organization's firewall discovering these locations would be a relatively
simple task. However, this relatively simple task gets more and more complicated as users access the system from
external.
This is especially true in split-domain scenarios, scenarios in which some of an organization's users have accounts
on the on-premises version of Skype for Business Server while other users have accounts on Skype for Business
Online. In cases such as this, user accounts might be located in different Active Directory forests. That can pose a
problem: for example, if a US -based user logs on from Europe the system must be able to recognize his or her
forest and then refer the logon request to the proper pool.
The Autodiscover service was introduced in order to address these issues. When a client application attempts to
access Skype for Business Server, the Autodiscover service parses the client SIP address and then redirects that
request to the appropriate pool. Client applications connect to the Autodiscover service by sending an HTTP
request to an Autodiscover URL; these URLs must be configured by administrators in order for the Autodiscover
service to work. (Note that, in addition to configuring URLs, administrators must also create DNS records that
correspond to these URLs.)
Autodiscover URLs are assigned to Autodiscover configuration settings; in turn, these settings can be applied to the
global scope or to the site scope. The Get-CsAutoDiscoverConfiguration cmdlet provides a way to return
information about the Autodiscover settings (and Autodiscover URLs) currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------
Get-CsAutoDiscoverConfiguration

The command shown in Example 1 returns all the Autodiscover configuration settings currently in use in the
organization.
-------------------------- Example 2 --------------------------

Get-CsAutoDiscoverConfiguration -Identity "global"

In Example 2, only one collection of Autodiscover configuration settings are returned: the global collection.
-------------------------- Example 3 --------------------------

Get-CsAutoDiscoverConfiguration -Filter "site:*"

The command shown in Example 3 returns all the Autodiscover configuration settings assigned to the site scope. To
do this, the Filter parameter is included, along with the filter value "site:*"; that filter value ensures that the only
settings returned are those that have an Identity that begins with the string value "site:". By definition, any settings
with an Identity beginning with "site:" are settings configured at the site scope.
-------------------------- Example 4 --------------------------

Get-CsAutoDiscoverConfiguration | Where-Object {$_.WebLinks -like "*fabrikam.com"}

The command shown in Example 4 returns all the Autodiscover configuration settings that include an Autodiscover
URL for fabrikam.com. To carry out this task, the command first uses the Get-CsAutoDiscoverConfiguration cmdlet
to return a collection of all the Autodiscover settings currently in use in the organization. This collection is then
piped to the Where-Object cmdlet, which selects only those settings where the WebLinks property includes the
string value "fabrikam.com"

Parameters
-Filter
Enables you to use wildcards when specifying the Identity of the Autodiscover configuration settings to be
returned. For example, this syntax returns all the settings configured at the site scope:
-Filter "site:*"

Note that you cannot use both the Identity and the Filter parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of Autodiscover configuration settings to be retrieved. To retrieve the global
settings, use this syntax:
-Identity "global"
To retrieve settings configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

If this parameter is not included, then the Get-CsAutoDiscoverConfiguration cmdlet will return all the Autodiscover
configuration settings currently in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Autodiscover configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WriteableConfig.Settings.AutoDiscoverConfiguration.AutoDiscoverConfiguration
minutes to read • Edit Online

Get-CsAVEdgeConfiguration
In ths Article

Returns configuration information for computers running the A/V Edge service in your organization. The
configuration settings on these computers, also known as A/V Edge servers, enable internal users to share audio
and video data with external users (that is, users who are not logged on to your internal network), as well as
exchange files and participate in desktop sharing sessions. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsAVEdgeConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsAVEdgeConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
An A/V Edge server provides a way for audio and video traffic to be exchanged across an organization's firewall.
Among other things, this enables users to use Skype for Business Server across the Internet, and then exchange
audio and video data with users who have logged onto the system from inside the firewall. Edge Server
configuration settings can be assigned at the global scope, the site scope, and the service scope. The A/V Edge
configuration settings enable administrators to do such things as manage the amount of time that user
authentication is valid before it must be renewed, and to limit the amount of bandwidth that can be used by a single
user or a single port.
The Get-CsAVEdgeConfiguration cmdlet provides a way for you to retrieve information about the A/V Edge
configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsAVEdgeConfiguration

The command shown in Example 1 returns a collection of all the A/V Edge configuration settings configured for
use in the organization. Calling the Get-CsAVEdgeConfiguration cmdlet without any additional parameters always
returns a complete collection of A/V Edge configuration settings.
-------------------------- Example 2 --------------------------

Get-CsAVEdgeConfiguration -Identity site:Redmond

In Example 2 a single collection of A/V Edge configuration settings is returned: the collection that has the Identity
site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsAVEdgeConfiguration -Filter "site:*"

Example 3 returns a collection of all the A/V Edge configuration settings that have been configured at the site
scope. To do this, the Get-CsAVEdgeConfiguration cmdlet is called along with the Filter parameter; the filter value
"site:*" limits the returned data to settings that have an Identity that begins with the characters "site:". By definition,
that limits the returned data to settings configured at the site scope.
-------------------------- Example 4 --------------------------

Get-CsAVEdgeConfiguration | Where-Object {$_.MaxBandwidthPerUserKB -gt 10000}

In Example 4, the only A/V Edge configuration settings that are returned are those where the
MaxBandwidthPerUserKB property is greater than 10,000 kilobits per second. To perform this task, the command
first calls the Get-CsAVEdgeConfiguration cmdlet without any parameters; that returns a collection of all the A/V
Edge configuration settings currently in use. That collection is then piped to the Where-Object cmdlet, which picks
out only the settings where the MaxBandwidthPerUserKB is greater than 10000 kilobits per second.
-------------------------- Example 5 --------------------------

Get-CsAVEdgeConfiguration | Where-Object {$_.MaxBandwidthPerUserKB -eq 10000}

Example 5 is similar to the command shown in Example 4; in Example 5, however, the only A/V Edge settings
returned are those where the MaxBandwidthPerUserKB property is exactly equal to 10000 kilobits per second.
-------------------------- Example 6 --------------------------

Get-CsAVEdgeConfiguration | Where-Object {$_.MaxTokenLifetime -lt "08:00:00"}

The command shown in Example 6 returns only the A/V Edge configuration settings where the MaxTokenLifetime
property is less than 8 hours (08 hours : 00 minutes : 00 seconds). The command first calls the Get-
CsAVEdgeConfiguration cmdlet without any parameters in order to return a collection of all the A/V Edge
configuration settings used in the organization. This collection is then piped to the Where-Object cmdlet, which
picks out only the settings where the MaxTokenLifetime is less than 8 hours (08:00:00).

Parameters
-Filter
Enables you to use wildcard characters when indicating the A/V Edge configuration settings to be returned. For
example, to return all the settings configured at the site scope, use this syntax: -Filter site:. To return a collection of
all the settings configured at the service, use this syntax: -Filter "service:".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of A/V Edge configuration settings to be retrieved. To retrieve the global
collection, use the following syntax: -Identity global. To retrieve a site collection use syntax similar to this: -Identity
site:Redmond. Settings configured at the service scope should be referred to using syntax similar to this:
-Identity service:EdgeServer:atl-cs-001.litwareinc.com

Note that you cannot use wildcards when specifying a policy Identity.
If this parameter is not included, the Get-CsAVEdgeConfiguration cmdlet returns a collection of all the Edge
configuration settings currently in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the A/V Edge configuration data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings

Related Links
New -CsAVEdgeConfiguration
Remove-CsAVEdgeConfiguration
Set-CsAVEdgeConfiguration
minutes to read • Edit Online

Get-CsBackupServiceConfiguration
In ths Article

Retrieves the backup service configuration settings for Skype for Business Server. These settings include
information about the maximum number of simultaneous Windows Communication Framework calls that can be
made to the backup service, as well as the backup service synchronization interval. This cmdlet was introduced in
Lync Server 2013.

Syntax
Get-CsBackupServiceConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsBackupServiceConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The backup service configuration settings are used to manage pool backups in Skype for Business Server. Note
that Skype for Business Server allows only for a single, global collection of backup configuration settings. Among
other things, that means that all your pools must be backed up using the same synchronization schedule, and that
users and groups authorized to backup Pool A are also allowed to backup Pools B, C, D, and E.
Get-CsBackupServiceConfiguration can be run from any computer running a Skype for Business Server server role
or from a remote instance of Windows PowerShell.
The functions carried out by the Get-CsBackupServiceConfiguration cmdlet are not available in the Skype for
Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsBackupServiceConfiguration

The command shown in Example 1 retrieves the backup service configuration information for Skype for Business
Server. Because there is only a single, global set of backup service configuration settings you do not need to include
the Identity parameter when running this command.

Parameters
-Filter
Enables you to use wildcard values when referencing a collection of backup service configuration settings. Because
you can only have a single, global instance of these settings there is no reason to use the Filter parameter. However,
if you prefer you can use the following syntax to reference the global settings:
-Filter "g*"

The preceding syntax returns all the conference backup service configuration settings that have an Identity that
begins with the letter "g".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the backup service configuration settings. Because you can only have a single, global instance of
these settings, you do not need to specify an Identity when calling the Get-CsBackupServiceConfiguration cmdlet.
You can, however, use the following syntax to reference the global settings:
-Identity global

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the backup service configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.BackupService.BackupServiceConfiguration

Related Links
Remove-CsBackupServiceConfiguration
Set-CsBackupServiceConfiguration
minutes to read • Edit Online

Get-CsBackupServiceStatus
In ths Article

Returns information about the current state of the backup service for a specified pool. This cmdlet was introduced
in Lync Server 2013.

Syntax
Get-CsBackupServiceStatus -PoolFqdn <Fqdn> [-Category <BackupCategory>] [-Force] [<CommonParameters>]

Description
The Get-CsBackupServiceStatus cmdlet enables administrators to verify that the backup service for a specified
Registrar pool has been configured and is working properly. Note that, by default, only users who belong to the
RTCUniversalServerAdmins group are allowed to run this cmdlet and check the backup status for a pool. To
provide additional groups with permission to run the cmdlet, use the Set-CsBackupServiceConfiguration cmdlet to
add those groups to the AuthorizedUniversalGroups property.
The functions carried out by the Get-CsBackupServiceStatus cmdlet are not available in the Skype for Business
Server.

Examples
-------------------------- Example 1 --------------------------

Get-CsBackupServiceStatus -PoolFqdn "atl-cs-001.litwareinc.com"

The preceding command returns the backup service status for the pool atl-cs-001.litwareinc.com.

Parameters
-Category
Type of backup whose status is being checked. Allowed values are:
CMS
UserData
If this parameter is not specified then both backup types will be checked.

Type: BackupCategory
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool whose backup service status is being checked. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Returns information about the backup service.

Related Links
Get-CsBackupServiceConfiguration
minutes to read • Edit Online

Get-CsBandwidthPolicyServiceConfiguration
In ths Article

Retrieves one or more bandwidth policy service configurations. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsBandwidthPolicyServiceConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsBandwidthPolicyServiceConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Call admission control (CAC ) is a way of determining whether to allow real-time communications sessions, such as
voice or video calls, to be established based on bandwidth constraints. Within the Skype for Business Server
implementation of CAC, regions, sites, and subnets are defined within a network along with the relationships and
links between those entities in order to place bandwidth constraints between them. Bandwidth Policy service is the
component that performs CAC functionality in the Skype for Business Server deployment, enabling the decision as
to whether sufficient bandwidth exists for a call to be established. The Get-CsBandwidthPolicyServiceConfiguration
cmdlet retrieves settings for one or more bandwidth policy services.

Examples
-------------------------- Example 1 --------------------------

Get-CsBandwidthPolicyServiceConfiguration

Example 1 retrieves all bandwidth policy service configurations defined within the Skype for Business Server
implementation.
-------------------------- Example 2 --------------------------

Get-CsBandwidthPolicyServiceConfiguration -Identity site:Redmond

This example retrieves the bandwidth policy service configuration defined for the Redmond site (-Identity
site:Redmond).
-------------------------- Example 3 --------------------------

Get-CsBandwidthPolicyServiceConfiguration -Filter site:*

In this example we use the Filter parameter to retrieve all bandwidth policy service configurations defined at the
site level. We do this by passing the value site:* to the Filter parameter. This will search the Identity property of all
bandwidth policy service configurations for values that begin with site: and are followed by any other characters.
Because all site-level configurations have Identity values beginning with site: and followed by the name of the site,
this filter will find all configurations for all sites.
-------------------------- Example 4 --------------------------

Get-CsBandwidthPolicyServiceConfiguration | Where-Object {$_.MaxLogFileSizeMb -gt 4}

Example 4 retrieves all bandwidth policy service configurations that allow log files to reach sizes greater than four
megabytes. The example begins with a call to the Get-CsBandwidthPolicyServiceConfiguration cmdlet. As in
Example 1, this cmdlet retrieves a collection of all configurations defined within the Skype for Business Server
deployment. This collection is then piped to the Where-Object cmdlet. The Where-Object cmdlet cycles through the
collection one item at a time. For each item in the collection, the Where-Object cmdlet checks to see whether the
value of the MaxLogFileSizeMb property is greater than (-gt) 4. If it is, that item remains part of the collection and
is part of the command output. If the value of MaxLogFileSizeMb is not greater than 4, the item is ignored and will
not be returned.

Parameters
-Filter
A string containing one or more wildcard characters that will be used to search the Identity property of all
bandwidth policy service configurations to find every configuration with an Identity that matches the wildcard
pattern. For example, the Filter value site:* will retrieve all configurations with Identity values that begin with the
string site: and end with any set of characters.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the configuration you want to retrieve. This identifier will consist of the scope (for the
global configuration) or the scope and name (for a site-level configuration, such as site:Redmond).

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the bandwidth policy service configuration from the local replica of the Central Management store, rather
than from the Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicySer
viceConfiguration

Related Links
New -CsBandwidthPolicyServiceConfiguration
Remove-CsBandwidthPolicyServiceConfiguration
Set-CsBandwidthPolicyServiceConfiguration
minutes to read • Edit Online

Get-CsBlockedDomain
In ths Article

Returns information about the domains that are included on the list of domains blocked for federation. By
definition, your users are not allowed to use Skype for Business Server applications to communicate with people
from the blocked domain; for example, users cannot use Skype for Business to exchange instant messages with
anyone with a Session Initiation Protocol (SIP ) account in a domain on the blocked list. This cmdlet was introduced
in Lync Server 2010.

Syntax
Get-CsBlockedDomain [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsBlockedDomain [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another by using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and, 3) federation between your organization and a third-party hosting provider.
Setting up direct federation with another organization involves several tasks. To begin with, you must configure the
Lync Server Access Edge service to allow federation. In addition, the other organization must enable federation
with you; federation cannot be established unless both parties agree to the relationship.
To set up a federated relationship you might also need to manage two federation-related lists: the allowed list and
the blocked list. The allowed list represents the organizations you have chosen to federate with; if a domain appears
on the allowed list then (depending on your configuration settings) your users will be able to exchange instant
messages and presence information with users who have accounts in that federated domain. Conversely, the
blocked list represents domains that users are expressly forbidden from federating with; for example, messages
sent from a blocked domain will automatically be rejected by Skype for Business Server.
The Get-CsBlockedDomain cmdlet enables you to return information about the domains that appear on the
blocked domain list.

Examples
-------------------------- Example 1 --------------------------

Get-CsBlockedDomain
The command shown in Example 1 returns a collection of all the domains included on the blocked domain list. This
is done by calling the Get-CsBlockedDomain cmdlet without any additional parameters.
-------------------------- Example 2 --------------------------

In Example 2, the only blocked domain returned is the one with the Identity "fabrikam.com". Because domains on
the blocked list must have unique identities, this command will return, at most, a single item.
-------------------------- Example 3 --------------------------

Get-CsBlockedDomain -Filter *.net

Example 3 uses the Filter parameter to return a collection of all the blocked domains that have an identity that ends
in the string value ".net". This sample command returns such domains as northwindtraders.net, contoso.net, and
fabrikam.net.
-------------------------- Example 4 --------------------------

Get-CsBlockedDomain | Where-Object {$_.Comment -eq $Null}

Example 4 returns a collection of all the domains where the Comment property has no value. To do this, the
command first uses the Get-CsBlockedDomain cmdlet to return a collection of all the domains on the blocked list.
This collection is then piped to the Where-Object cmdlet, which selects only those domains where the Comment
property is equal to a null value.
-------------------------- Example 5 --------------------------

Get-CsBlockedDomain | Where-Object {$_.Comment -match "Ken Myer"}

In Example 5, all the blocked domains that include the string value "Ken Myer" somewhere in the Comment
property are returned. To carry out this task, the Get-CsBlockedDomain cmdlet is first called in order to return a
collection of all the domains on the blocked domains list. This collection is then piped to the Where-Object cmdlet,
which picks out those domains where the Comment property contains the string value "Ken Myer".

Parameters
-Filter
Enables you to use wildcard characters in order to return one or more domains from the list of blocked domains. To
return all the domains that have an Identity that begins with the letter "r" use this syntax: -Filter r. To return all the
domains that have an Identity that ends with ".net" use this syntax: -Filter ".net". To return all the domains that have
an Identity that begins with the letter "f" or with the letter "g" use this syntax: -Filter [fg]*.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Name of the domain to be returned. Domains are listed on the blocked list by their fully qualified domain name
(FQDN ); thus the Identity for a given domain will be similar to fabrikam.com or contoso.net. Note that you cannot
use wildcards when specifying a domain Identity. To use wildcards to return a given domain (or set of domains), use
the Filter parameter instead.
If this parameter is not specified, then all the domains on the blocked domain list will be returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the blocked domain data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain

Related Links
New -CsBlockedDomain
Remove-CsBlockedDomain
Set-CsAccessEdgeConfiguration
Set-CsBlockedDomain
minutes to read • Edit Online

Get-CsBroadcastMeetingConfiguration
In ths Article

Use the Get-CsBroadcastMeetingConfiguration cmdlet to retrieve the global (and only) broadcast meeting
configuration for your organization.

Syntax
Get-CsBroadcastMeetingConfiguration [-ExposeSDNConfigurationJsonBlob <Boolean>] [-Tenant <Guid>]
[[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsBroadcastMeetingConfiguration [-ExposeSDNConfigurationJsonBlob <Boolean>] [-Tenant <Guid>]


[-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Use the Get-CsBroadcastMeetingConfiguration cmdlet to retrieve the global (and only) broadcast meeting
configuration for your organization.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Get-CsBroadcastMeetingConfiguration

This example returns the tenant's global broadcast meeting configuration.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExposeSDNConfigurationJsonBlob
When set to true, the cmdlet will only return broadcast meeting configuration settings that relate to the Software
Defined Network configuration.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the information from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.BroadcastMeetingConfiguration
minutes to read • Edit Online

Get-CsBroadcastMeetingPolicy
In ths Article

Use the Get-CsBroadcastMeetingPolicy cmdlet to retrieve the predefined broadcast meeting policies and their
settings.

Syntax
Get-CsBroadcastMeetingPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsBroadcastMeetingPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Broadcast meeting functionality is managed by broadcast meeting configurations at the tenant level, and broadcast
meeting policies at the user level. Broadcast meeting policies are predefined in Skype for Business. The defined
settings for each policy can be displayed by using the Get-CsBroadcastMeetingPolicy cmdlet with no parameters as
in Example 1. The output will be similar to the listing at the end of this section. New policies can't be created, and
existing policies can't be modified. They can only be granted, or assigned to users. For more information, see Grant-
CsBroadcastMeetingPolicy.
Identity : Global
AllowBroadcastMeeting : True
AllowOpenBroadcastMeeting : True
AllowSocialStreamIntegration : True
AllowBroadcastMeetingRecording : True
AllowAnonymousBroadcastMeeting : True
BroadcastMeetingRecordingEnforced : False
Identity : Tag:BroadcastMeetingPolicyDefault
AllowBroadcastMeeting : True
AllowOpenBroadcastMeeting : True
AllowSocialStreamIntegration : True
AllowBroadcastMeetingRecording : True
AllowAnonymousBroadcastMeeting : True
BroadcastMeetingRecordingEnforced : False
Identity : Tag:BroadcastMeetingPolicyDisabled
AllowBroadcastMeeting : False
AllowOpenBroadcastMeeting : False
AllowSocialStreamIntegration : False
AllowBroadcastMeetingRecording : False
AllowAnonymousBroadcastMeeting : False
BroadcastMeetingRecordingEnforced : False
Identity : Tag:BroadcastMeetingPolicyAllEnabled
AllowBroadcastMeeting : True
AllowOpenBroadcastMeeting : True
AllowSocialStreamIntegration : True
AllowBroadcastMeetingRecording : True
AllowAnonymousBroadcastMeeting : True
BroadcastMeetingRecordingEnforced : False
Identity : Tag:BroadcastMeetingPolicyAnonymousDisabled
AllowBroadcastMeeting : True
AllowOpenBroadcastMeeting : True
AllowSocialStreamIntegration : True
AllowBroadcastMeetingRecording : True
AllowAnonymousBroadcastMeeting : False
BroadcastMeetingRecordingEnforced : False
Identity : Tag:BroadcastMeetingPolicyRecordingDisabled
AllowBroadcastMeeting : True
AllowOpenBroadcastMeeting : True
AllowSocialStreamIntegration : True
AllowBroadcastMeetingRecording : False
AllowAnonymousBroadcastMeeting : True
BroadcastMeetingRecordingEnforced : False
Identity : Tag:BroadcastMeetingPolicyAnonymousDisabledAndRecordingNotEnforced
AllowBroadcastMeeting : True
AllowOpenBroadcastMeeting : True
AllowSocialStreamIntegration : True
AllowBroadcastMeetingRecording : True
AllowAnonymousBroadcastMeeting : False
BroadcastMeetingRecordingEnforced : False
Identity : Tag:BroadcastMeetingPolicyAnonymousDisabledAndRecordingEnforced
AllowBroadcastMeeting : True
AllowOpenBroadcastMeeting : True
AllowSocialStreamIntegration : True
AllowBroadcastMeetingRecording : True
AllowAnonymousBroadcastMeeting : False
BroadcastMeetingRecordingEnforced : True
Identity : Tag:BroadcastMeetingPolicyAnonymousAndRecordingDisabled
AllowBroadcastMeeting : True
AllowOpenBroadcastMeeting : True
AllowSocialStreamIntegration : True
AllowBroadcastMeetingRecording : False
AllowAnonymousBroadcastMeeting : False
BroadcastMeetingRecordingEnforced : False

Examples
-------------------------- Example 1 --------------------------

Get-CsBroadcastMeetingPolicy

This example lists all the pre-defined policy configurations for your organization. See detailed description for more
information.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the information from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
None
minutes to read • Edit Online

Get-CsBusyOptions
In ths Article

Returns the settings for processing of incoming calls for users who are already engaged in another communication
stream. This cmdlet was introduced in Skype for Business Server 2015 June 2016 Cumulative Update.

Syntax
Get-CsBusyOptions [-Identity] <UserIdParameter> [-PassThru] [<CommonParameters>]

Description
This cmdlet retrieves configuration information about Busy Options for a specific user. It returns one of two Action
Type options:
BusyOnBusy - In which new incoming calls will be rejected with a busy signal if the user is busy.
VoicemailOnBusy - In which new incoming calls will be forwarded to voice mail if the user is busy.

Examples
-------------------------- Example 1 --------------------------

Get-CsBusyOptions -Identity sip:KenMyer@Contoso.com

This example returns the Busy Options setting for "KenMyer@Contoso.com".

Parameters
-Identity
Indicates the Identity of the user account to be modified. User Identities can be specified using one of four formats:
1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon name, in
the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for
example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the display name as the user Identity. For example, the
Identity "Smith" returns all the users who have a display name that ends with the string value "Smith".

Type: UserIdParameter
Required: True
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False
-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any
output.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter object.

Outputs
Microsoft.Rtc.Management.Bob.Cmdlets.ActionType object. Microsoft.Rtc.Management.AD.UserIdParameter
object.

Related Links
Remove-CsBusyOptions
Set-CsBusyOptions
minutes to read • Edit Online

Get-CsCallerIdPolicy
In ths Article

Provide the topic introduction here.

Syntax
Get-CsCallerIdPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsCallerIdPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Filter
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsIdentity
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsCallingLineIdentity
In ths Article

Use the `Get-CsCallingLineIdentity` cmdlet to display the Caller ID policies for your organization.

Syntax
Get-CsCallingLineIdentity [[-Identity] <XdsIdentity>] [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [-
AsJob]
[<CommonParameters>]

Description
By default, the Skype for Business Online user's phone number can be seen when that user makes a call to a PSTN
phone, or when a call comes in. You can create Caller ID policies to change this behavior, and you can use the Get-
CsCallingLineIdentity cmdlet to display the existing Caller ID policies for your organization.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CsCallingLineIdentity

The example gets and displays the Caller ID policies for your organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
The Filter parameter lets you insert a string through which your search results are filtered.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter identifies the Caller ID policy.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
Identity : Global
Description :
EnableUserOverride : False
ServiceNumber :
CallingIDSubstitute : LineUri
BlockIncomingPstnCallerID : False

Related Links
Grant-CsCallingLineIdentity
New -CsCallingLineIdentity
Remove-CsCallingLineIdentity
Set-CsCallingLineIdentity
minutes to read • Edit Online

Get-CsCallParkOrbit
In ths Article

Gets the call park orbit range settings for the organization. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsCallParkOrbit [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [-Type <OrbitType>]
[<CommonParameters>]

Get-CsCallParkOrbit [-Filter <String>] [-LocalStore] [-Type <OrbitType>] [<CommonParameters>]

Description
This cmdlet retrieves the settings for the call park orbits defined for an organization. You can retrieve a single call
park orbit range (specified by the Identity parameter) or you can call the Get-CsCallParkOrbit cmdlet with no
parameters to retrieve all the call park orbit ranges defined for an organization. Call park orbits are composed of
settings that specify a range of numbers at which a user can park a call and the servers associated with those
number ranges.

Examples
-------------------------- Example 1 --------------------------

Get-CsCallParkOrbit

In this example, the Get-CsCallParkOrbit cmdlet is called without specifying any additional parameters. When
called like this, the Get-CsCallParkOrbit cmdlet returns a collection of all the call park orbit ranges configured for
use in your organization.
-------------------------- Example 2 --------------------------

Get-CsCallParkOrbit -Identity "Redmond CPO 1"

In Example 2, the Get-CsCallParkOrbit cmdlet is used to return information about the call park orbit range with the
name "Redmond CPO 1".
-------------------------- Example 3 --------------------------

Get-CsCallParkOrbit -Filter *Redmond*

The command in this example returns all call park orbit ranges with the string "Redmond" in their Identity. For
example, this command will return call park orbits with identities such as "Redmond 501", "CP Redmond 1", and
"ARedmond". The command uses the Filter parameter with the wildcard character (*) to designate what to search
for. (This search is not case sensitive.)
-------------------------- Example 4 --------------------------

Get-CsCallParkOrbit | Where-Object {$_.CallParkServiceId.toString() -eq


"ApplicationServer:pool0.litwareinc.com"}

This command returns all call park orbit ranges assigned to the call park service with the ID
ApplicationServer:pool0.litwareinc.com. The Get-CsCallParkOrbit cmdlet retrieves a collection of all call park orbit
ranges, and then pipes that collection to the Where-Object cmdlet. This call to the Where-Object cmdlet finds all
call park orbits in that collection with a value of ApplicationServer:pool0.litwareinc.com in their CallParkServiceId
properties. Notice that we add the toString method to the end of the CallParkServiceId parameter name. The
CallParkServiceId is of type WritableServiceId. In order to compare that value to the supplied string, we must first
turn it into a string by calling the toString method.
-------------------------- Example 5 --------------------------

Get-CsCallParkOrbit | Where-Object {$_.NumberRangeStart.StartsWith("*")}

The command in this example returns all call park orbit ranges where the range of numbers starts with an * prefix.
After the Get-CsCallParkOrbit cmdlet retrieves a collection of all the call park orbit ranges, the collection is then
piped to the Where-Object cmdlet. The Where-Object cmdlet narrows the collection to only those call park orbit
ranges that have a call park location starting with a . It does this by checking the StartsWith property of the
NumberRangeStart object for the string "".
-------------------------- Example 6 --------------------------

Get-CsCallParkOrbit | Where-Object {\[Char\]::IsDigit($_.NumberRangeStart\[0\])}

The command in this example returns all call park orbit ranges where no prefix has been assigned to the numbers
in the range. (A prefix is the value * or # placed at the beginning of the number.) All call park orbits returned by this
command will have ranges that consist only of numbers with no other characters included. The Get-
CsCallParkOrbit cmdlet retrieves a collection of all the call park orbit ranges, and then that collection is piped to the
Where-Object cmdlet. Looking at the criteria in the call to the Where-Object cmdlet, we see this:
$_.NumberRangeStart[0]). This returns the first character in the number at the start of the range. (Note that we
need to check only the start of the range--if the starting number in the range doesn't have a prefix, neither will the
ending number.) This character is passed to the IsDigit function to determine whether it is a numeric character. If it
is, the call park orbit information for the corresponding collection item will be returned.

Parameters
-Filter
This parameter accepts a wildcard string and returns all call park orbit ranges with identities matching that string.
For example, a Filter value of Redmond* will return all call park orbit ranges with names beginning with the string
Redmond, such as Redmond 1, Redmond 2, RedmondCPO, etc.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique name of the call park orbit range. This name was assigned by the administrator when the call park orbit
range was defined.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the call park orbit information from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Specifies the type of call park orbit to be retrieved. Skype for Business Server 2015 allows for two different types of
call park orbits:
CallPark: This is the standard call park orbit, in which a user places a call on hold and then can retrieve that call
from any phone by dialing the specified call park number.
GroupPickup: With group pickup, users can answer any incoming call that is made to any member of their call
pickup group. Call pickup groups are configured by administrators.
To return a specified type of a call park orbit, use syntax similar to this:
-Type GroupPickup

To return all call park orbit, regardless of type, simply omit the Type parameter.
This parameter was introduced in Lync Server 2013.

Type: OrbitType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.Voice.Helpers.DisplayCallParkOrbits

Related Links
New -CsCallParkOrbit
Remove-CsCallParkOrbit
Set-CsCallParkOrbit
minutes to read • Edit Online

Get-CsCallViaWorkPolicy
In ths Article

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.

Syntax
Get-CsCallViaWorkPolicy [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsCallViaWorkPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "<DesiredCmdletName>"}

Examples
-------------------------- Example 1 --------------------------

Get-CsCallViaWorkPolicy -Identity Site:Redmond

This example returns the properties of the policy currently assigned to the Redmond site.

Parameters
-Filter
Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to
return all the policies configured at the site scope use this syntax: -Filter "site:". To return a collection of all the per-
user policies, use this syntax: -Filter "tag:"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the policy to be returned. Call via work policies can be returned at the global, site, or per-
user scope.
Global syntax: -Identity Global
Site syntax: -Identity Site:Redmond
Per-user syntax: -Identity CallviaWorkStandard

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the call via work policy data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.CallViaWork.CallViaWorkPolicy

Related Links
Remove-CsCallViaWorkPolicy
Set-CsCallViaWorkPolicy
New -CsCallViaWorkPolicy
Grant-CsCallViaWorkPolicy
minutes to read • Edit Online

Get-CsCdrConfiguration
In ths Article

Returns information about your call detail recording (CDR ) settings. CDR enables you to track usage of such things
as peer-to-peer instant messaging sessions, Voice over Internet Protocol (VoIP ) phone calls, and conferencing calls.
This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsCdrConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsCdrConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Call detail recording (CDR ) provides a way for you to track usage of Skype for Business Server capabilities such as
Voice over IP (VoIP ) phone calls; instant messaging (IM ); file transfers; audio/video (A/V ) conferencing; and
application sharing sessions. CDR (which is available only if you have deployed the Monitoring service) keeps
usage information: it logs information such as the parties involved in the call; the length of the call; and whether or
not any files were transferred. (However, CDR does not make a recording of the call itself.)
CDR also keeps track of call error information: detailed diagnostic data for both peer-to-peer sessions and for
conferencing calls.
As an administrator, you can determine whether or not CDR is used in your organization. If the Monitoring service
has been deployed, you can enable or disable CDR. In addition, you can make this decision globally (in which case
CDR will either be enabled or disabled throughout the organization) or on a site-by-site basis; for example, you
could use CDR in the Redmond site but not use CDR in the Paris site.
The Get-CsCdrConfiguration cmdlet provides a way for you return detailed information about how CDR is used in
your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsCdrConfiguration

This example uses the Get-CsCdrConfiguration cmdlet to return a collection of all the CDR settings configured for
use in your organization.
-------------------------- Example 2 --------------------------

Get-CsCdrConfiguration -Identity site:Redmond


Example 2 uses the Identity parameter to return a single collection of CDR settings: the settings with the Identity
site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsCdrConfiguration -Filter site:*

In Example 3, the Filter parameter is employed to return all the CDR settings that have been configured at the site
scope. The filter value "site:*" returns all the CDR settings that have an Identity that begins with the string value
"site:". By definition, those are settings that have been configured at the site scope.
-------------------------- Example 4 --------------------------

Get-CsCdrConfiguration | Where-Object {$_.KeepCallDetailForDays -lt 30}

Example 4 returns a collection of all the CDR settings where the KeepCallDetailForDays property is fewer than 30
days. To do this, the command first uses the Get-CsCdrConfiguration cmdlet to return a collection of all the CDR
settings configured in the organization. That collection is then piped to the Where-Object cmdlet, which picks out
only those settings where the KeepCallDetailForDays value is less than 30 days.

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection of CDR configuration settings. For example, to
return a collection of all the settings configured at the site scope, use this syntax: -Filter site:. To return a collection
of all the settings that have the string value "Western" somewhere in their Identity, use this syntax: -Filter *Western.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of CDR configuration settings you want to return. To refer to the
global settings, use this syntax: -Identity global. To refer to a collection configured at the site scope, use syntax
similar to this: -Identity site:Redmond. Note that you cannot use wildcards when specifying an Identity. If you need
to use wildcards then use the Filter parameter instead.
If this parameter is not specified then the Get-CsCdrConfiguration cmdlet returns a collection of all the CDR
configuration settings currently in use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the CDR configuration data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CdrSettings

Related Links
New -CsCdrConfiguration
Remove-CsCdrConfiguration
Set-CsCdrConfiguration
minutes to read • Edit Online

Get-CsCertificate
In ths Article

Returns information about certificates on the local computers that have been configured for use with Skype for
Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsCertificate [-Type <CertType[]>] [-NetportId <String>] [-Report <String>] [[-Identity] <XdsIdentity>]
[<CommonParameters>]

Description
Skype for Business Server uses certificates as a way for servers and server roles to verify their identities; for
example, an Edge Server uses certificates to verify that the computer it is communicating with really is a Front End
Server, and vice versa. In order to fully implement Skype for Business Server you will need to have the appropriate
certificates assigned to the appropriate server roles.
The Get-CsCertificate cmdlet provides a way for you to retrieve detailed information about the certificates that
have been configured for use with Skype for Business Server. Note that the cmdlet only returns information about
Skype for Business Server certificates. If a certificate has not been configured for use with Skype for Business
Server (by using the Set-CsCertificate cmdlet) then that certificate will not be returned when you run the Get-
CsCertificate cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsCertificate

The command shown in Example 1 returns information about the certificates currently assigned to Skype for
Business Server components. This is done by calling the Get-CsCertificate cmdlet without any additional
parameters.
-------------------------- Example 2 --------------------------

Get-CsCertificate -Type WebServicesInternal

Example 2 retrieves all the Skype for Business Server certificates used for internal Web services. To do this, the
Type parameter is included, along with the parameter value WebServicesInternal.
-------------------------- Example 3 --------------------------

Get-CsCertificate | Where-Object {$_.NotAfter -lt "9/1/2018"}


Example 3 returns all the Skype for Business Server certificates that expire before September 1, 2018. To carry out
this task, the command first uses the Get-CsCertificate cmdlet to return a collection of all the Skype for Business
Server certificates currently in use. This collection is then piped to the Where-Object cmdlet, which selects only
those certificates that expire before September 1, 2018. The date specified in this example (9/1/2018) uses the U.S.
English format for date-time values. Dates should be specified using a format compatible with your Regional and
Language Options.
-------------------------- Example 4 --------------------------

Get-CsCertificate | Where-Object {$_.Issuer -eq "Cn=MyCa"}

Example 4 returns information about all the Skype for Business Server certificates issued by the certification
authority (CA) MyCa. To do this, the command first calls the Get-CsCertificate cmdlet without any parameters in
order to return a collection of all the certificates currently in use. This collection is then piped to the Where-Object
cmdlet, which picks out all the certificates where the Issuer property is equal to (-eq) "Cn=MyCa".
-------------------------- Example 5 --------------------------

Get-CsCertificate | Where-Object {$_.Subject -eq "CN=atl-cs-001.litwareinc.com"}

The command shown in Example 5 returns all the Skype for Business Server certificates where the Subject
property has been set to CN=atl-cs-001.litwareinc.com. This is done by using the Get-CsCertificate cmdlet to
return a collection of all the Skype for Business Server certificates, then piping that collection to the Where-Object
cmdlet. In turn, the Where-Object cmdlet selects only those certificates where the Subject property is equal to
"CN=atl-cs-001.litwareinc.com".

Parameters
-Identity
Enables you to retrieve certificates configured at the global scope (global certificates are copied and distributed to
the appropriate computers). Use this syntax to return information about the global certificates:
Get-CsCertificate -Identity "global"

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetportId
Reserved for future use. This parameter is for certificates dedicated to a specific port, a scenario not yet supported
by Lync Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to record detailed information about the procedures carried out by the Get-CsCertificate cmdlet. The
parameter value should be the full path to the HTML file that will be generated; for example: -Report
C:\Logs\Certificates.html. If the specified file already exists, it will automatically be overwritten with the new
information.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Type of certificate being requested. Certificate types include, but are not limited to, the following:
AccessEdgeExternal
AudioVideoAuthentication
DataEdgeExternal
Default
External
Internal
iPhoneAPNService
iPadAPNService
MPNService
PICWebService (Skype for Business Online only)
ProvisionService (Skype for Business Online only)
WebServicesExternal
WebServicesInternal
WsFedTokenTransfer
For example, this syntax returns information about the Default certificate:
-Type Default

You can specify multiple types in a single command by separating the certificate types with commas:
-Type Internal,External,Default

Type: CertType[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deployment.CertificateReference

Related Links
Import-CsCertificate
Remove-CsCertificate
Request-CsCertificate
Set-CsCertificate
minutes to read • Edit Online

Get-CsClientAccessLicense
In ths Article

Returns information about client license usage in your organization. This cmdlet was introduced in Lync Server
2013.

Syntax
Get-CsClientAccessLicense [-License] [<CommonParameters>]

Get-CsClientAccessLicense -LicenseBasedType <String> -LicenseName <String> -MonitoringDatabase <String>


-StartDate <DateTime> [-DailyUsage] [-EndDate <DateTime>] [<CommonParameters>]

Description
The Get-CsClientAccessLicense cmdlet enables administrators to monitor use of their Skype for Business Server
client licenses; this is done by showing client license usage (based on user registrations) during a specified period of
time. Note that the cmdlet does not manage your client licenses for you; for example, it will not tell you that you
need additional licenses. Instead, the cmdlet simply returns information about the number of licenses that were in
use during the specified time period.
You cannot use the Get-CsClientAccessLicense cmdlet unless you have enabled the Monitoring Service and call
detail recording; that's because registration information is stored in the call detail recording database. Note, too
that, as the name suggests, the Get-CsClientAccessLicense cmdlet only returns only returns information about your
client licenses. If you need information about your server licenses, you can use the Get-CsService cmdlet to return
the fully qualified domain names (FQDN ) of all your Skype for Business Server databases. If the FQDN of a front
End server matches the FQDN of a backend database that means you have a Standard license. If the two FQDNs
do not match then that means that you have an Enterprise license.
You might also encounter instances when the Get-CsClientAccessLicense cmdlet returns incorrect license counts.
For example:
Licenses can be overcounted if a mobile user logs on from more than one location using a desktop client.
Licenses can be undercounted if a user connects with a mobile client, because the IP address for the device cannot
be determined. In addition, licenses can be overcounted if the mobile device changes its IP address during a
session.
Licenses can be counted twice for PSTN calls to a Skype for Business client or for a call from a Skype for Business
client to a PSTN phone. This is due to the fact that both the Skype for Business user account and the PSTN phone
number are used when determining the number of licenses employed in the session.
Licenses for Skype for Business phones might not be counted if the phone was logged on to the system before you
ran the license usage query.
If a user joins a conference using a PSTN phone, a single license usage will be recorded for that call. However, no
license is actually required to join a conference using a PSTN phone.
The functions carried out by the Get-CsClientAccessLicense cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsClientAccessLicense -MonitoringDatabase "atl-sql-001\Archinst" -LicenseName "Standard" -LicenseBasedType


"UserBased" -StartDate "6/1/2018"

The command shown in Example 1 returns Standard license usage for user-based licenses as recorded in the
monitoring database atl-sql-001\Archinst. License usage information will be returned for the time period beginning
on June 1, 2018 (6/1/2018) and continuing through the current date.

Parameters
-DailyUsage
If specified, license usage is broken down on a day-by-day basis for the specified time period. If not specified, then
license usage is summarized for the specified time period.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EndDate
Ending date for the time period for which client license usage should be checked. For example:
-EndDate "2/1/2018"

The EndDate must be later than the StartDate. Note that the end date does not appear in the output when you call
the Get-CsClientAccessLicense cmdlet.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-License
Returns the available license names. This parameter cannot be used with any other parameters; this is the only valid
syntax:
Get-CsClientAccessLicense -License

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LicenseBasedType
Indicates whether the license is UserBased or DeviceBased. With UserBased licenses, each user who accesses
Skype for Business Server is required to have a client access license, regardless of the number of devices he or she
uses to access Skype for Business Server. With DeviceBased licenses, each device used to access Skype for
Business Server requires a separate license.
User-based licensing is typically recommended for users who are not always on site, and who might access Skype
for Business Server using any number of different devices. Device-based licensing is aimed at on-site users who
typically access Skype for Business Server only through shared devices (such as their desktop computer).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LicenseName
Indicates the kind of license being retrieved. Valid values are:
Standard
Enterprise
Plus

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MonitoringDatabase
SQL Server instance for the monitoring database. This is typically specified by using the fully qualified domain
name of the SQL Server computer and SQL Server instance of the monitoring database. For example:
-MonitoringDatabase "atl-sql-001.litwareinc.com\archinst"

If the monitoring database is in the default SQL Server instance then you only need to specify the FQDN of the
computer running SQL Server:
-MonitoringDatabase "atl-sql-001.litwareinc.com"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartDate
Beginning date for the time period for which client license usage should be checked. For example, using the US
English format the StartDate parameter might look like this:
-StartDate "1/1/2018"
The StartDate must be earlier than the EndDate.

Type: DateTime
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
The Get-CsClientAccessLicense cmdlet returns licensing information.

Related Links
Get-CsUser
minutes to read • Edit Online

Get-CsClientCertificate
In ths Article

Returns information about the client certificates that have been issued to a user. This cmdlet was introduced in Lync
Server 2010.

Syntax
Get-CsClientCertificate [-Identity] <UserIdParameter> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Client certificates provide an alternate way for users to be authenticated by Skype for Business Server. Instead of
providing a user name and password, users present the system with an X.509 certificate. (This certificate must have
a subject name or subject alternative name that identifies the user.) To be authenticated, users only need to type in a
personal identification number (PIN ); it's typically easier for mobile phone users to type in a PIN than to type in an
alphanumeric user name and/or password.
The Get-CsClientCertificate cmdlet provides a way for administrators to retrieve information about the Skype for
Business Server client certificates that have been issued to their users. This information includes both the date and
time that the certificate was issued in addition to the date and time when the certificate will expire.
Note that, by default, the firewall exceptions for SQL Server Express are not enabled when you install the Standard
Edition of Skype for Business Server. That means that you will not be able to run the Get-CsClientCertificate cmdlet
from a remote instance of Windows PowerShell; that's because your command will not be able to traverse the
firewall and access the SQL Server Express database. (However, you can still run the cmdlet locally on the Standard
Edition server itself.) If you need to run the Get-CsClientCertificate cmdlet remotely against a Standard Edition
server you must manually enable the firewall exceptions for SQL Server Express.

Examples
-------------------------- Example 1 --------------------------

Get-CsClientCertificate -Identity "Ken Myer"

The command shown in Example 1 returns all the client certificates issued to Ken Myer.
-------------------------- Example 2 --------------------------

Get-CsClientCertificate -Identity "Ken Myer" | Where-Object {$_.ExpirationTime -lt "9/5/2018"}

Example 2 returns all the client certificates issued to Ken Myer that are set to expire before September 5, 2018. To
do this, the command first uses the Get-CsClientCertificate cmdlet to return a collection of all the client certificates
issued to Ken Myer. This collection is then piped to the Where-Object cmdlet, which picks out only those certificates
where the ExpirationTime property is less than less than September 5, 2018 (9/5/2018). The date specified in this
example (9/5/2018) uses the U.S. English format for date-time values. Dates should be specified using a format
compatible with your Regional and Language Options.
-------------------------- Example 3 --------------------------

Get-CsClientCertificate -Identity "Ken Myer" | Where-Object {$_.PublicationTime -gt "1/1/2018"}

Example 3 returns all the client certificates that have been issued to Ken Myer since January 1, 2018. To accomplish
this task, the command first calls the Get-CsClientCertificate cmdlet to return a collection of all the client certificates
issued to Ken Myer. This collection is then piped to the Where-Object cmdlet, which selects only those certificates
where the PublicationTime property is greater than January 1, 2018 (1/1/2018).
-------------------------- Example 4 --------------------------

Get-CsUser | Where-Object {$_.RegistrarPool -ne $Null} | Get-CsClientCertificate

The command shown in Example 4 returns client certificates for all the users who have been enabled for Skype for
Business Server and who have been assigned to a Registrar pool. (An error will be returned if you try to retrieve
certificate information for a user who has not been assigned to a Registrar pool). To do this, the command first calls
the Get-CsUser cmdlet without any parameters. This collection is then piped to the Where-Object cmdlet, which
selects only those users where the RegistrarPool property is not equal to a null value. This filtered collection is then
piped to the Get-CsClientCertificate cmdlet, which returns the certificates assigned to each user in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account with the certificate information you want to retrieve. User Identities can be
specified by using one of four formats: 1) the user's Session Initiation Protocol (SIP ) address; 2) the user's user
principal name (UPN ); 3) the user's domain name and logon name, in the form domain\logon (for example,
litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can also
reference a user account by using the user's Active Directory distinguished name.
Wildcards cannot be used when specifying the user Identity.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser
The Get-CsClientCertificate cmdlet accepts pipelined input of string values representing the Identity of a user
account. The cmdlet also accepts pipelined input of user objects.

Outputs
Microsoft.Rtc.Management.UserPinService.CertInfoDetails

Related Links
Revoke-CsClientCertificate
minutes to read • Edit Online

Get-CsClientPinInfo
In ths Article

Retrieves information about the personal identification number (PIN ) assigned to a user. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsClientPinInfo [-Identity] <UserIdParameter> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server enables users to connect to the system or to join public switched telephone network
(PSTN ) conferences by using a telephone. Typically, logging on to the system or joining a conference requires the
user to enter a user name or password. However, entering a user name and password can be an issue if you are
using a phone that does not have an alphanumeric keypad. Because of that, Skype for Business Server enables you
to supply users with numeric-only PINs; when prompted, users can then log on to the system or join a conference
by entering the PIN instead of a user name and password.
Administrators can retrieve the PIN settings for a user, or a group of users, by running the Get-CsClientPinInfo
cmdlet. Note that there is no way for an administrator to retrieve the PIN that has been assigned to a user. If a user
forgets his or her PIN, that user will not be able to use PIN authentication to access the system until an
administrator has assigned them a new PIN or the user has obtained a new PIN from the Dial-In Conferencing
webpage.
Note that, by default, the firewall exceptions for SQL Server Express are not enabled when you install the Standard
Edition of Skype for Business Server. That means that you will not be able to run the Get-CsClientPinInfo cmdlet
from a remote instance of Windows PowerShell; that's because your command will not be able to traverse the
firewall and access the SQL Server Express database. (However, you can still run the cmdlet locally on Standard
Edition server.) To run the Get-CsClientPinInfo cmdlet remotely against a Standard Edition server you will need to
manually enable the firewall exceptions for SQL Server Express.

Examples
-------------------------- Example 1 --------------------------

Get-CsUser | Get-CsClientPinInfo

Example 1 returns PIN information for all the users who have been enabled for Skype for Business Server. To do
this, the command first calls the Get-CsUser cmdlet to return all users who have been enabled for Skype for
Business Server. That collection is piped to the Get-CsClientPinInfo cmdlet, which displays PIN information for
each user in the collection.
-------------------------- Example 2 --------------------------
Get-CsClientPinInfo -Identity "litwareinc\kenmyer"

In Example 2, the Get-CsClientPinInfo cmdlet is used to display PIN information for a single user: the user with the
Identity litwareinc\kenmyer.
-------------------------- Example 3 --------------------------

Get-CsUser -OU "OU=Finance,DC=litwareinc,DC=com" | Get-CsClientPinInfo

Example 3 returns PIN information for all the users with accounts in the Finance organizational unit (OU ). To do
this, the Get-CsUser cmdlet and the OU parameter are used to return a collection of all the users in the Finance
OU. That collection is then piped to the Get-CsClientPinInfo cmdlet, which displays PIN information for each user
in the collection.
-------------------------- Example 4 --------------------------

Get-CsUser -LdapFilter "Title=Manager" | Get-CsClientPinInfo

The command shown in Example 4 displays PIN information for all the Managers in the organization. To retrieve a
collection of all the Managers, the command uses the Get-CsUser cmdlet and the LdapFilter parameter; the filter
value "Title=Manager" limits the returned collection to users who have "Manager" as their job title. The Get-
CsClientPinInfo cmdlet is then used to display PIN information for each of these users.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account for which the PIN should be locked. User Identities can be specified by
using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain
name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active
Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active
Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser
The Get-CsClientPinInfo cmdlet accepts pipelined input of string values representing the Identity of a user account.
The cmdlet also accepts pipelined input of user objects.

Outputs
Microsoft.Rtc.Management.UserPinService.PinInfoDetails

Related Links
Get-CsPinPolicy
Lock-CsClientPin
Set-CsClientPin
Unlock-CsClientPin
minutes to read • Edit Online

Get-CsClientPolicy
In ths Article

Returns information about the client policies configured for use in your organization. Among other things, client
policies help determine the features of Skype for Business that are available to users; for example, you might give
some users the right to transfer files while denying this right to other users.

Syntax
Get-CsClientPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsClientPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Client policies are applied each time a user accesses the system, regardless of where the user logs on from and
regardless of the type of device the user logs on with. In addition, client policies, like other Skype for Business
policies, can readily be targeted to selected groups of users. You can even create a custom policy that gets assigned
to a single user.
Client policies can be configured at the global, site, and per-user scopes. The Get-CsClientPolicy cmdlet enables you
to return information about all the client policies that have been configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsClientPolicy

In Example 1, Get-CsClientPolicy is called without any additional parameters; this returns a collection of all the
client policies configured for use in your organization.
-------------------------- Example 2 --------------------------

Get-CsClientPolicy -Identity SalesPolicy

In Example 2, Get-CsClientPolicy is used to return the per-user client policy that has an Identity SalesPolicy.
Because identities are unique, this command will never return more than one item.
-------------------------- Example 3 --------------------------

Get-CsClientPolicy -Filter "tag:*"

Example 3 uses the Filter parameter to return all the client policies that have been configured at the per-user scope.
The filter value "tag:*" tells Get-CsClientPolicy to return only those policies that have an Identity that begins with
the string value "tag:".
-------------------------- Example 4 --------------------------

Get-CsClientPolicy | Where-Object {$_.DisableSavingIM -eq $True}

The preceding command returns a collection of all the client policies where the DisableSavingIM property is True.
To do this, Get-CsClientPolicy is first called without any parameters in order to return a collection of all the client
policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which
selects only those policies where the DisableSavingIM property is equal to True.
-------------------------- Example 5 --------------------------

Get-CsClientPolicy | Where-Object {$_.DisableSavingIM -eq $True -and $_.EnableIMAutoArchiving -eq $False}

In Example 5, the only client policies returned are the policies that meet two criteria: the DisableSavingIM property
must be True and the EnableIMAutoArchiving property must be False. To do this, the command first calls Get-
CsClientPolicy in order to return a collection of all the client policies configured for use in the organization. That
collection is then piped to Where-Object, which picks out only those policies that meet both of the following
criteria: DisableSavingIM must be equal to True and EnableIMAutoArchiving must be equal to False. The -and
operator tells Where-Object that only objects that meet all the specified criteria should be selected.
-------------------------- Example 6 --------------------------

Get-CsClientPolicy | Where-Object {$_.DisableSavingIM -eq $True -or $_.EnableIMAutoArchiving -eq $False}

Example 6 is a variation of the command shown in Example 5. This time, however, policies are selected as long as
they meet at least one of the following criteria: either the DisableSavingIM property is True and/or the
EnableIMAutoArchiving property is False. To accomplish this task, the command first calls Get-CsClientPolicy to
return a collection of all the client policies configured for use in the organization. That collection is then piped to
Where-Object, which picks out only those policies that meet at least one of the following criteria: DisableSavingIM
is equal to True and/or EnableIMAutoArchiving is equal to False. The -or operator tells Where-Object that any
object that meets at least one of the specified conditions should be selected.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Filter
Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to
return all the policies configured at the site scope use this syntax: -Filter "site:". To return a collection of all the per-
user policies, use this syntax: -Filter "tag:".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the client policy to be returned. To refer to the global policy, use this syntax: -Identity global. To
refer to a site policy, use syntax similar to this: -Identity site:Redmond. To refer to a per-user policy, use syntax
similar to this: -Identity SalesDepartmentPolicy.
If this parameter is omitted, then all the client policies configured for use in your organization will be returned.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the client policy data from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose client policies are being
returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy

Related Links
Grant-CsClientPolicy
New -CsClientPolicy
Remove-CsClientPolicy
Set-CsClientPolicy
minutes to read • Edit Online

Get-CsClientVersionConfiguration
In ths Article

Retrieves information about the specified collection of client version configuration settings in use in your
organization. Client version configuration settings determine whether or not Skype for Business Server checks the
version number of each client application that logs on to the system. If client version filtering is enabled the ability
of that client application to access the system will be based on settings configured in the relevant client version
policy. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsClientVersionConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsClientVersionConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server gives administrators considerable leeway when it comes to specifying the client software
(and, equally important, the version number of that software) that users can use to log on to the system. For
example, there is no technical reason that requires users to log on to Skype for Business Server by using Skype for
Business; there are no technical limitations that would prevent users from logging on by using Microsoft Office
Communicator 2007 R2.
However, there might be some non-technical reasons why you would prefer that your users do not log on by using
Office Communicator 2007 R2. For example, Office Communicator 2007 R2 does not support all of the features
and capabilities found in Skype for Business; as a result, users who log on with Office Communicator 2007 R2 will
have a different experience than users who log on by using Skype for Business. This can create difficulties for your
users; it can also create difficulties for help desk personnel, who must provide support for a number of different
client applications.
If this could be a problem for your organization you can employ client version filtering in order to specify which
client applications can be used to log on to Skype for Business Server. When you install Skype for Business Server,
a global set of client version configuration settings is installed and enabled. These settings are used to determine
whether or not client version filtering is enabled. In addition to the global settings, client version configuration
settings can also be applied at the site scope; in those instances, the site settings will have precedence over the
global settings.
The Get-CsClientVersionConfiguration cmdlet enables you to retrieve information about the client version
configuration settings currently in use in your organization. Note that this cmdlet does not return information
about which client applications are allowed or are not allowed. To retrieve that information, use the Get-
CsClientVersionPolicy cmdlet.
Note, too that client version configuration is not a security feature. The technology relies on self-reporting from
client applications, and does not attempt to verify that an application is really the application and the version
number of that application that it claims to be.
Examples
-------------------------- Example 1 --------------------------

Get-CsClientVersionConfiguration

In the first example, the Get-CsClientVersionConfiguration cmdlet is called without specifying any additional
parameters. This causes the Get-CsClientVersionConfiguration cmdlet to return a collection of all the client version
configuration settings currently in use in your organization.
-------------------------- Example 2 --------------------------

Get-CsClientVersionConfiguration -Identity site:Redmond

In this example, the Get-CsClientVersionConfiguration cmdlet returns all the client version configuration settings
that have the Identity site:Redmond. Because Identities must be unique, this command will never return more than
one item.
-------------------------- Example 3 --------------------------

Get-CsClientVersionConfiguration -Filter "site:*"

Example 3 returns all the client version configuration settings that have been applied at the site scope. This is done
by including the Filter parameter and the filter value "site:*". That filter value instructs the Get-
CsClientVersionConfiguration cmdlet to return only the settings that have an Identity that begins with the string
value "site:".
-------------------------- Example 4 --------------------------

Get-CsClientVersionConfiguration | Where-Object {$_.Enabled -eq $False}

Example 4 returns all the client version configuration settings that are currently disabled. To carry out this task, the
command first uses the Get-CsClientVersionConfiguration cmdlet to return a collection of all the client version
settings configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which
applies a filter that limits the collection to those settings where the Enabled property is equal to False.

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection (or collections) of client version configuration
settings. To return a collection of all the settings configured at the site scope, use this syntax: -Filter site:. To return a
collection of all the settings that have the string value "EMEA" somewhere in their Identity (the only property you
can filter for ) use this syntax: -Filter *EMEA.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of client version configuration settings you want to return. To refer
to the global settings, use this syntax: -Identity global. To refer to a collection configured at the site scope, use syntax
similar to this: -Identity site:Redmond. You cannot use wildcards when specifying an Identity. If you need to use
wildcards, then include the Filter parameter instead.
If this parameter is not specified then the Get-CsClientVersionConfiguration cmdlet returns a collection of all the
client version configuration settings in use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the client version configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration

Related Links
New -CsClientVersionConfiguration
Remove-CsClientVersionConfiguration
Set-CsClientVersionConfiguration
minutes to read • Edit Online

Get-CsClientVersionPolicy
In ths Article

Returns information about which clients are supported in your Skype for Business Server environment. Client
version policies enable you to specify which clients will be able to log on to your Skype for Business Server system.
This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsClientVersionPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsClientVersionPolicy [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
Client version policies represent a collection of client version rules; in turn, client version rules are used to
determine which client applications are allowed to log on to Skype for Business Server. When a user attempts to
log on to Skype for Business Server, his or her client application sends a SIP header to the server; this header
includes detailed information about the application itself, including the software's major version, minor version, and
build number. The version information included in the SIP header is then checked against a collection of client
version rules to see if any rules apply to that particular application. If such a rule exists, Skype for Business Server
will then take the action specified by the rule. For example, the rule might tell Skype for Business Server to allow
the logon, to block it, or to allow the logon but then silently upgrade the client application to the latest version (for
example, upgrade Lync to Skype for Business).
Client version policies, which can be applied at the global scope, the site scope, the service scope (Registrar service
only), or the per-user scope, give you flexibility in determining which client applications can be used to access the
system. For example, you might want to prevent users from logging on to Skype for Business Server by using Lync
because it does not support the same features and capabilities as Skype for Business.
The Get-CsClientVersionPolicy cmdlet provides a way for you to retrieve all of the client version policies currently
in use in your organization, as well as to view the individual rules that make up each of those policies.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.

Examples
-------------------------- Example 1 --------------------------
Get-CsClientVersionPolicy

In the first example, the Get-CsClientVersionPolicy cmdlet is called without specifying any additional parameters.
This causes the Get-CsClientVersionPolicy cmdlet to return a collection of all the client version policies configured
for use in your organization.
-------------------------- Example 2 --------------------------

Get-CsClientVersionPolicy -Identity site:Redmond

In Example 2, the Get-CsClientVersionPolicy cmdlet returns all the client version policies that have the Identity
site:Redmond. Because Identities must be unique, this command will never return more than one item.
-------------------------- Example 3 --------------------------

Get-CsClientVersionPolicy -Filter site:*

Example 3 returns all the client version policies that have been configured at the site scope. This is done by
including the Filter parameter and the filter value "site:*"; that value instructs the Get-CsClientVersionPolicy cmdlet
to return only those policies that have an Identity beginning with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsClientVersionPolicy | Select-Object -ExpandProperty Rules

The command used in Example 4 displays detailed information about the individual rules configured for each client
version policy. To do this, the Get-CsClientVersionPolicy cmdlet is first used to retrieve a collection of all the client
version policies configured for use in the organization. That collection is then piped to the Select-Object cmdlet,
which uses the ExpandProperty filter to expand the property values for the Rules property. When this property is
expanded, detailed information about each rule (including such property values as build number, major version, and
minor version) is displayed on the screen.

Parameters
-Filter
Enables you to use wildcards when specifying the policy (or policies) to be retrieved. For example, this syntax
returns all the policies that have been configured at the site scope: -Filter "site:". This syntax returns all the policies
that have been configured at the per-user scope: -Filter "tag:".
You cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be returned. To return the global policy, use this syntax: -Identity global. To return
a policy configured at the site scope, use syntax similar to this: -Identity "site:Redmond". To return a policy
configured at the service scope, use syntax similar to this: -Identity "Registrar:atl-cs-001.litwareinc.com". The
Registrar service is the only service that can host a client version policy.
Policies can also be configured at the per-user scope. To return one of these policies, use syntax similar to this: -
Identity "SalesDepartmentPolicy".
If this parameter is not included then all of the client version policies configured for use in your organization will be
returned.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the client version policy data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose client version policies are
being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersion policy

Related Links
Grant-CsClientVersionPolicy
New -CsClientVersionPolicy
Remove-CsClientVersionPolicy
Set-CsClientVersionPolicy
minutes to read • Edit Online

Get-CsClientVersionPolicyRule
In ths Article

Returns the client version policy rules configured for use in your organization. This cmdlet was introduced in Lync
Server 2010.

Syntax
Get-CsClientVersionPolicyRule [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsClientVersionPolicyRule [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
Client version policy rules are used to determine which client applications are allowed to log on to Skype for
Business Server. When a user attempts to log on to Skype for Business Server, his or her client application sends a
SIP header to the server; this header includes detailed information about the application itself, including the
software's major version, minor version, and build number. The version information is then checked against a
collection of client version rules to see if any rules apply to that particular application. For example, suppose a user
attempts to log on by using Microsoft Office Communicator 2007 R2. Before the user can log on to Skype for
Business Server, the system will check to see if there is a client version rule that applies to Office Communicator
2007 R2. If a rule exists, Skype for Business Server will then take the action specified by the rule. That action must
be one of the following:
Allow: The user will be allowed to log on.
AllowAndUpgrade: The user will be allowed to log on, and his or her copy of Communicator 2007 R2 will
automatically be upgraded to the latest version of Skype for Business. Upgrades are carried out using either
Microsoft Update or Windows Server Update Services, depending on how you have configured your system.
AllowWithUrl: The user will be allowed to log on, and a message will be displayed pointing the user to a URL
where the latest version of Skype for Business can be downloaded and installed. The URL must point to a website
that you have created yourself; no such site is created for you when you install Skype for Business Server.
Block: The user will not be allowed to log on.
BlockAndUpgrade: The user will not be allowed to log on, but his or her copy of Communicator 2007 R2 will
automatically be upgraded to the latest version of Skype for Business. The user can then try to log on by using the
new client application. Upgrades are carried out using either Microsoft Update or Windows Server Update
Services, depending on how you have configured your system.
BlockWithUrl: The user will not be allowed to log on, but a message will be displayed pointing him or her to a URL
where the latest version of Skype for Business can be downloaded and installed. The URL must point to a website
that you have created yourself; no such site is created for you when you install Skype for Business Server.
Client version rules are collected in client version policies. These policies can be configured at the global scope, the
site scope, the service scope (Registrar service), or the per-user scope. The Get-CsClientVersionPolicyRule cmdlet
provides a way for administrators to view detailed information about each of the policy rules configured for use in
their organization.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsClientVersionPolicyRule

Example 1 returns information about all of the client version policy rules currently in use in the organization.
-------------------------- Example 2 --------------------------

Get-CsClientVersionPolicyRule -Identity "Global/2336c611-a243-4c5d-994b-eea8a524d0e4"

In Example 2, information about a single client version policy rule is returned: the rule with the Identity
Global/2336c611-a243-4c5d-994b-eea8a524d0e4.
-------------------------- Example 3 --------------------------

Get-CsClientVersionPolicyRule -Filter "Global/*"

Example 3 returns all the client version policy rules that have been configured at the global scope. To do this, the
command uses the Filter parameter and the filter value "Global/*". That filter value returns only those rules that
have an Identity that begins with the string value "Global/".
-------------------------- Example 4 --------------------------

Get-CsClientVersionPolicyRule | Where-Object {$_.Enabled -eq $False}

The command shown in Example 4 returns all the client version policy rules that are currently disabled. To do this,
the command first calls the Get-CsClientVersionPolicy cmdlet in order to return a collection of all the available
client policy rules. This collection is then piped to the Where-Object cmdlet, which picks out the rules where the
Enabled property is equal to False.
-------------------------- Example 5 --------------------------

Get-CsClientVersionPolicyRule | Where-Object {$_.Action -eq "Block"}

Example 5 returns all the client version policy rules that block a client application from logging on. To do this, the
command first calls the Get-CsClientVersionPolicy cmdlet without any parameters; that returns a collection of all
the rules currently in use. This collection is then piped to the Where-Object cmdlet, which selects only those rules
where the Action property is equal to Block.

Parameters
-Filter
Enables you to use wildcard characters when specifying the client version policy rules to be returned. For example,
to return all the rules configured for the Redmond site, use this syntax:
-Filter "site:Redmond/*"

You cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the client version policy rule to be retrieved. The Identity of a client version rule consists of the
scope where the rule has been configured plus a globally unique identifier (GUID ). That means that a rule will have
an Identity similar to this: site:Redmond/1987d3c2-4544-489d-bbe3-59f79f530a83. Because GUIDs are difficult to
remember and to work with, the Examples section in this Help topic lists alternate ways that you can identify the
rules to be returned.
If this parameter is not specified all of the client version policy rules configured for use will be returned.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the client version policy rule data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose client version policy rules
are being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule

Related Links
New -CsClientVersionPolicyRule
Remove-CsClientVersionPolicyRule
Set-CsClientVersionPolicyRule
minutes to read • Edit Online

Get-CsCloudCallDataConnector
In ths Article

Returns information about your Call Data Connector.

Syntax
Get-CsCloudCallDataConnector [[-LocalStore] [<CommonParameters>]

Description
Call Data Connector provides a single view in a hybrid environment where you can view the on-premises and
online call quality data in one place.
The Get-CsCloudCallDataConnector cmdlet provides a way for you to view the on-premises copy of the cloud
connection information created by the New -CsCloudCallDataConnection cmdlet. This outputs the Office 365
TenantID and the data ingestion token for Call Data Connector telemetry endpoint.

Examples
Example 1

PS C:\> Get-CsCloudCallDataConnector

This example returns the CloudCallDataConnector settings stored on-premises. Note that there is only a single,
global instance of CloudCallDataConnector settings.

Parameters
-LocalStore
Retrieves the Call Data Connector data from the local replica of the Central Management store, rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CloudCallDataConnection
minutes to read • Edit Online

Get-CsCloudCallDataConnectorConfiguration
In ths Article

Returns information about the Cloud Call Data Connector configuration settings currently in use in the
organization.

Syntax
Get-CsCloudCallDataConnectorConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsCloudCallDataConnectorConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Call Data Connector greatly simplifies call monitoring in a hybrid environment because you no longer need to use
different sets of on-premises and online tools to monitor all of your users' call quality. Whether your users are
homed on premises or online, you can choose to view call quality for your entire organization online.
With Call Data Connector, the Skype for Business Server pushes call data to the cloud service so that you can
leverage the Skype for Business Online Call Analytics (CA) and Call Quality Dashboard (CQD ) tools.

Examples
Example 1

PS C:\> Get-CsCloudCallDataConnectorConfiguration

Example 1 returns information about all the CloudCallDataConnector configuration settings currently in use in the
organization.
Example 2

Get-CsCloudCallDataConnectorConfiguration -Identity site:Redmond

Example 2 uses the Identity parameter to return a single collection of CloudCallDataConnector configuration
settings: the settings with the Identity site:Redmond.
Example 3

Get-CsCloudCallDataConnectorConfiguration -Filter site:*

In Example 3, the Filter parameter is employed to return all the CloudCallDataConnector configuration settings that
have been configured at the site scope. The filter value "site:*" returns all the CloudCallDataConnector
configuration settings that have an Identity that begins with the string value "site:". By definition, those are settings
that have been configured at the site scope.
Example 4

Get-CsCloudCallDataConnectorConfiguration | Where-Object {$_.EnableCallDataConnector -eq $True}

Example 4 returns a collection of all the CloudCallDataConnector configuration settings where the
EnableCallDataConnector property is set to $True. To do this, the command first uses the Get-CsCdrConfiguration
cmdlet to return a collection of all the CloudCallDataConnector configuration settings configured in the
organization. That collection is then piped to the Where-Object cmdlet, which picks out only those settings where
the EnableCallDataConnector value is set to $True.

Parameters
-Filter
Enables you to use wildcard characters to return a collection of CloudCallDataConnector configuration settings. For
example, to return a collection of all the settings configured at the site scope, use this syntax: -Filter site:*. To return
a collection of all the settings that have the string value "Western" somewhere in their Identity, use this syntax: -
Filter Western .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of CloudCallDataConnector configuration settings you want to
return. To refer to the global settings, use this syntax: -Identity global. To refer to a collection configured at the site
scope, use syntax similar to this: -Identity site:Redmond. Note that you cannot use wildcards when specifying an
Identity. If you need to use wildcards, use the Filter parameter instead.
If this parameter is not specified, the Get-CsCloudCallDataConnectorConfiguration cmdlet returns a collection of
all the CloudCallDataConnector configuration settings currently in use in the organization.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the CloudCallDataConnector configuration data from the local replica of the Central Management store,
rather than from the Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CallDataConnectorConfiguration
minutes to read • Edit Online

Get-CsCloudMeetingPolicy
In ths Article

Gets the policy for Skype Meetings that has been granted for a user.

Syntax
Get-CsCloudMeetingPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsCloudMeetingPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The Get-CsCloudMeetingPolicy cmdlet gets the current policy for automatic scheduling of Skype Meeting features
and coordination of data. There are two polices to consider:
AutoScheduleDisabled: If true, automatic schedule is disabled for the user.
AutoScheduleEnabled: If true, automatic schedule is enabled for the user.

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Online )

Get-CsOnlineUser -identity "JaneCl" | fl CloudMeetingPolicy

This example shows which policies has been granted to the user by the Set-CsCloudMeetingPolicy and Grant-
CsCloudMeetingPolicy cmdlets. If the policy AutoScheduleEnabled is shown, the user is enabled for the feature. If
the policy is blank or AutoScheduleDisabled, the user is not enabled for the feature.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
@{Text=}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the hybrid public switched telephone network (PSTN ) site. For example:
-Identity "SeattlePSTN"

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the information from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can find your tenant ID by running this command:


Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online,
you do not have to include the Tenant parameter. The tenant ID will be determined by your connection and
credentials. The Tenant parameter is primarily for use in a hybrid deployment.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Online Version
minutes to read • Edit Online

Get-CsClsAgentStatus
In ths Article

Use the Get-CsClsAgentStatus to return information about the ClsAgent service on the local machine.

Syntax
Get-CsClsAgentStatus [-CacheFileLocalFolders <String>] [-DefaultXml] [<CommonParameters>]

Description
The Get-CsClsAgentStatus cmdlet returns information about the ClsAgent, including version, service status, log
storage details, and disk free space.

Examples
-------------------------- Example 1 --------------------------

Get-CsClsAgentStatus

Returns information about the ClsAgent service on the local machine.


-------------------------- Example 2 --------------------------

Get-CsClsAgentStatus -DefaultXml

Returns the default.xml file as an XmlDocument object.

Parameters
-CacheFileLocalFolders
Specifies the path to search for log files stored on disk. By default the CacheFileLocalFolders path from the Get-
CsClsConfiguration cmdlet is used.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultXml
If specified, the cmdlet will return the default.xml file as an XmlDocument object for debugging purposes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Cls.AgentInfo
Or an XmlDocument object if the DefaultXml parameter is used.
minutes to read • Edit Online

Get-CsClsConfiguration
In ths Article

Returns information about the centralized logging configuration settings in use in the organization. Centralized
logging provides a way for administrators to simultaneously enable or disable event tracing on multiple computers.
This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsClsConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsClsConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
It is also possible to define custom scenarios by using the New -CsClsScenario cmdlet.
Centralized logging is managed by using collections of centralized logging service configuration settings. When
you install Skype for Business Server, you install a global set of these configuration settings; in addition,
administrators can add custom settings collections at the site scope. The Get-CsClsConfiguration cmdlet enables
administrators to return information about all the central logging configuration settings currently in use in the
organization.
The functions carried out by the Get-CsClsConfiguration cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------
Get-CsClsConfiguration

The command shown in Example 1 returns information about all the centralized logging configuration settings
currently in use in the organization.
-------------------------- Example 2 --------------------------

Get-CsClsConfiguration -Identity "site:Redmond"

In Example 2, information is returned for a single collection of centralized logging configuration settings: the
collection applied to the Redmond site.
-------------------------- Example 3 --------------------------

Get-CsClsConfiguration -Identity "site:Redmond" | Select-Object -ExpandProperty Scenarios

Example 3 shows detailed information for the centralized logging scenarios available to the Redmond site. In order
to do this, the command first retrieves all the centralized logging property values for the Redmond site. Those
property values are then piped to the Select-Object cmdlet, which uses the ExpandProperty parameter to "expand"
the values found in the Scenarios property. When you expand a property you simply display all the information
stored in that property in an easy-to-read fashion.
-------------------------- Example 4 --------------------------

Get-CsClsConfiguration | Where-Object {$_.EtlFileRolloverMinutes -gt 60}

In Example 4, information is returned for all the centralizing logging configuration settings where the ETL file
rollover interval is greater than 1 hour. To carry out this task, the command first calls the Get-CsClsConfiguration
cmdlet without any parameters; this returns a collection of all the centralized logging configuration settings in the
organization. That collection is then piped to the Where-Object cmdlet, which picks out only those settings where
the EtlFileRolloverMinutes property is greater than (-gt) 60 minutes.
-------------------------- Example 5 --------------------------

Get-CsClsConfiguration | Where-Object {$_.Scenarios.Name -match "HybridVoice"}

The command shown in Example 5 is similar to the command shown in Example 4; in this case, however,
information is returned only for those centralized logging configuration settings that include a "HybridVoice"
scenario. To do this, the command first uses the Get-CsClsConfiguration cmdlet to return a collection of all the
centralized logging configuration settings. That collection is then piped to the Where-Object cmdlet, which selects
only those settings that have at least one scenario where the Name property includes (-match) the string value
"HybridVoice".

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection (or collections) of centralized logging
configuration settings. For example, to return a collection of all the settings configured at the site scope, use this
syntax:
-Filter "site:*"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of centralized logging configuration settings you want to return. To
refer to the global settings use this syntax:
-Identity "global"

To refer to a collection configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards, then include the Filter
parameter instead.
If this parameter is not specified, then the Get-CsClsConfiguration cmdlet returns a collection of all the centralized
logging configuration settings in use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the centralized logging configuration data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.CentralizedLoggingConfiguration

Related Links
New -CsClsConfiguration
Remove-CsClsConfiguration
Set-CsClsConfiguration
minutes to read • Edit Online

Get-CsClsRegion
In ths Article

Returns information about the centralized logging configuration regions in use in the organization. Centralized
logging provides a way for administrators to simultaneously enable or disable event tracing on multiple computers.
Centralized logging regions are intended for use with Skype for Business Online.

Syntax
Get-CsClsRegion [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsClsRegion [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
With Skype for Business Online, regions are used to determine which users have access to the personally-
identifiable information that is written to the log files. Regions are created by using the New -CsClsRegion cmdlet
and then are added to a collection of centralized logging configuration settings. You can return information about
your centralized logging regions by using the Get-CsClsRegion cmdlet.
The functions carried out by the Get-CsClsRegion cmdlet are not available in the Skype for Business Server 2015.

Examples
-------------------------- Example 1 --------------------------

Get-CsClsRegion

The command shown in Example 1 returns information for all the centralized logging regions configured for use in
the organization.
-------------------------- Example 2 --------------------------

Get-CsClsRegion -Identity "global/US"


In Example 2, information is returned only for the centralized logging region that has the Identity global/US.
-------------------------- Example 3 --------------------------

Get-CsClsRegion -Filter "global/*"

Example 3 returns information about all the centralized logging regions configured at the global scope. This is done
by calling the Get-CsClsRegion cmdlet along with the Filter parameter; the filter value "global/*" limits the returned
data to regions configured at the global scope.
-------------------------- Example 4 --------------------------

Get-CsClsRegion | Where-Object {$_.OtherRegionAccess -match "Europe"}

The command shown in Example 4 returns information for all the centralized logging regions that allow access by
the Europe region. To carry out this task, the command first uses the Get-CsClsRegion cmdlet to return a collection
of all the centralized logging regions currently in use. This collection is then piped to the Where-Object cmdlet,
which selects only those regions where the OtherRegionAccess property includes the string value "Europe".

Parameters
-Filter
Enables you to use wildcard characters in order to return a centralized logging region (or regions). For example, to
return a collection of all the settings configured at the global scope, use this syntax:
-Filter "global/*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the centralized logging region to be returned. A region identity consists of the scope where the
region was created followed by the region name. For example, to return a region named US created at the global
scope, use the following syntax:
-Identity "global/US"

If this parameter is not specified then the Get-CsClsRegion cmdlet returns information about all your centralized
logging regions.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the centralized logging configuration data from the local replica of the Central Management store, rather
than the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Region#Decorated

Related Links
New -CsClsRegion
Remove-CsClsRegion
Set-CsClsRegion
minutes to read • Edit Online

Get-CsClsScenario
In ths Article

Returns information for one or more centralized logging configuration scenarios. A scenario represents a particular
Skype for Business Server component or situation (such as IM and presence) that administrators can enable or
disable for tracing. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsClsScenario [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsClsScenario [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
Information about all the centralized logging scenarios available for use in your organization can be returned by
using the Get-CsClsScenario cmdlet.
The functions carried out by the Get-CsClsScenario cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsClsScenario

The command shown in Example 1 returns information about all the centralized logging scenarios currently in use
in the organization.
-------------------------- Example 2 --------------------------

Get-CsClsScenario -Identity "global/VoiceMail"

Example 2 returns information about a single centralized logging scenario: the VoiceMail scenario included in the
global settings collection.
-------------------------- Example 3 --------------------------

Get-CsClsScenario | Where-Object {$_.Provider.Name -match "AsMcu"}

Example 3 returns information about all the default scenarios currently in use. To do this, the command first calls
the Get-CsClsScenario cmdlet without any parameters; that returns a collection of all the available scenarios. That
collection is then piped to the Where-Object cmdlet, which picks out only those scenarios that contain (-match) a
Provider named "AsMcu".
-------------------------- Example 4 --------------------------

Get-CsClsScenario -Identity "global/VoiceMail" | Select-Object -ExpandProperty Provider

In Example 4, detailed information is returned for the Provider property of the global VoiceMail scenario. To carry
out this task the cmdlet first uses the Get-CsClsScenario cmdlet to return all the property values for the global
VoiceMail scenario. That information is then piped to the Select-Object cmdlet, which uses the ExpandProperty
parameter to "expand" the value of the Provider property. In turn, that causes all the data stored in the Provider
property to be displayed onscreen in an easy-to-read format.

Parameters
-Filter
Enables you to use wildcards in order to return one or scenarios. For example, to return all the HybridVoice
scenarios, regardless of the scope where these scenarios have been configured, use this syntax:
-Filter "*HybridVoice*"

You cannot use both the Identity parameter and the Filter parameter in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the scenario to be returned. A scenario consists of two parts: the scope where the scenario is
configured (that is, the collection of centralized logging configuration settings where the scenario can be found) and
the scenario name. For example:
-Identity "site:Redmond/AddressBook"

You can also specify just the scenario scope; for example:
-Identity "site:Redmond"
In that case, all the scenarios configured for use on the Redmond site will be returned.
If this parameter is not specified then the Get-CsClsScenario cmdlet will return information about all your
centralized logging scenarios.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the scenario data from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Scenario#Decorated
minutes to read • Edit Online

Get-CsClsSearchTerm
In ths Article

Returns information about the centralized logging search terms available for use in the organization. Search terms
help define the personally identifiable information available to technical support personnel who are searching the
centralized trace logs. Search terms are intended for use with Skype for Business Online.

Syntax
Get-CsClsSearchTerm [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsClsSearchTerm [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
In Skype for Business Online, administrators can use search terms to mask personally identifiable information from
support personnel who are viewing the log files. For example, a user's name, such as Ken Myer, would not appear
when viewed using the support console; instead, the name might appear as FIRST1 LAST1. Likewise, the phone
number +12065551219 might be displayed as PHONE1.
The Get-CsClsSearchTerm cmdlet returns information about the search terms currently available for use. These
search terms are based on the Inserts property, which specifies the information that will be masked as well as the
mask that will be substituted for the personally-identifiable information.
The functions carried out by the Get-CsClsSearchTerm cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsClsSearchTerm

The command shown in Example 1 returns information about all the search terms currently in use in the
organization.
-------------------------- Example 2 --------------------------

Get-CsClsSearchTerm -Identity "global/Phone"

In Example 2, information is returned for a single search term: the Phone search term found in the global collection
of centralized logging configuration settings.
-------------------------- Example 3 --------------------------

Get-CsClsSearchTerm | Where-Object {$_.Type -eq "URI"}

The command shown in Example 3 returns information for all the URI search terms. To do this, the command first
calls the Get-CsClsSearchTerm cmdlet without any parameters; this returns a collection of all the available search
terms. That collection is then piped to the Where-Object cmdlet, which picks out only those terms where the Type
property is equal to (-eq) URI.
-------------------------- Example 4 --------------------------

Get-CsClsSearchTerm | Where-Object {$_.Inserts -match "ItemE164"}

In Example 4 information is returned for all the search terms where the Inserts property includes the string value
"ItemE164". To carry out this task, the command first uses the Get-CsClsSearchTerm cmdlet to return a collection
of all the available search terms. That collection is then piped to the Where-Object cmdlet, which selects any term
for which the Inserts property includes (-match) the string value "ItemE164".

Parameters
-Filter
Enables you to use wildcards in order to return one or search terms. For example, to return all the CallID search
terms, regardless of the scope where these terms have been configured, use this syntax:
-Filter "*CallID*"

You cannot use both the Identity parameter and the Filter parameter in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the search term to be returned. A search term consists of two parts: the scope where the term is
configured (that is, the collection of centralized logging configuration settings where the term can be found) and the
term name. For example:
-Identity "site:Redmond/CallID"

You can also specify just the search term scope; for example:
-Identity "site:Redmond"

In that case, all the search terms configured for use on the Redmond site will be returned.
If this parameter is not specified then the Get-CsClsSearchTerm cmdlet will return information about all your
centralized logging search terms.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the search term data from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SearchTerm#Decorated

Related Links
Set-CsClsSearchTerm
minutes to read • Edit Online

Get-CsClsSecurityGroup
In ths Article

Returns information about the centralized logging configuration security groups in use in the organization.
Centralized logging provides a way for administrators to simultaneously enable or disable event tracing on multiple
computers. Security groups are intended for use with Skype for Business Online.

Syntax
Get-CsClsSecurityGroup [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsClsSecurityGroup [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
With Skype for Business Online, security groups are used to determine which users have access to the personally-
identifiable information that is written to the log files. Security groups are created by using the New -
CsClsSecurityGroup cmdlet and then are added to a collection of centralized logging configuration settings. You
can return information about your centralized logging security groups by using the Get-CsClsSecurityGroup
cmdlet.
The functions carried out by the Get-CsClsSecurityGroup cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsClsSecurityGroup

The command shown in Example 1 returns information about all the centralized logging security groups configured
for use in the organization.
-------------------------- Example 2 --------------------------
Get-CsClsSecurityGroup -Identity "global/HelpDesk"

In Example 2, information is returned for a single centralized logging security group: the group with the Identity
global/helpdesk.
-------------------------- Example 3 --------------------------

Get-CsClsSecurityGroup -Filter "global/*"

Example 3 returns information for all the centralized logging security groups configured at the global scope. To do
this, the Filter parameter is included along with the filter value "global/*"; that filter value limits the returned data to
groups configured at the global scope.
-------------------------- Example 4 --------------------------

Get-CsClsSecurityGroup | Where-Object {$_.AccessLevel -eq "RedmondSupport"}

The command shown in Example 4 returns all the centralized logging security groups where the access level has
been set to RedmondSupport. To carry out this task, the command first calls the Get-CsClsSecurityGroup cmdlet
without any parameters; that returns a collection of all the available centralized logging security groups. That
collection is then piped to the Where-Object cmdlet, which picks out only those groups where the AccessLevel
property is equal to RedmondSupport.

Parameters
-Filter
Enables you to use wildcard characters in order to return a centralized logging security group (or groups). For
example, to return a collection of all the groups configured at the global scope, use this syntax:
-Filter "global/*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the centralized logging security group to be returned. A security group identity consists of the
scope where the group was created followed by the group name. For example, to return a group named HelpDesk
created at the global scope, use the following syntax:
-Identity "global/HelpDesk"

If this parameter is not specified then the Get-CsClsSecurityGroup cmdlet returns information about all your
centralized logging security groups.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the centralized logging configuration data from the local replica of the Central Management store, rather
than the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SecurityGroup#Decorated

Related Links
New -CsClsSecurityGroup
Remove-CsClsSecurityGroup
Set-CsClsSecurityGroup
minutes to read • Edit Online

Get-CsCommonAreaPhone
In ths Article

Returns information about the common area phones managed by using Skype for Business Server. Common area
phones are phones that are located in building lobbies, employee lounges, or other areas where they are likely to be
used by a number of different people and for a number of different uses. This cmdlet was introduced in Lync Server
2010.

Syntax
Get-CsCommonAreaPhone [[-Identity] <UserIdParameter>] [-Credential <PSCredential>] [-DomainController <Fqdn>]
[-Filter <String>] [-LdapFilter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Description
Common area phones are IP telephones that are not associated with an individual user. Instead of being located in
someone's office, common area phones are typically located in building lobbies, cafeterias, employee lounges,
meeting rooms and other locations where a large number of people are likely to gather. This presents
administrators with a management challenge; that's because phone use in Skype for Business Server is typically
maintained by using voice policies and dial plans that are assigned to individual users. Common area phones do
not have individual users assigned to them.
The solution to this challenge is to create Active Directory contact objects for all your common area phones. (These
contact objects can be created by using the New -CsCommonAreaPhone cmdlet.) Like user accounts, these contact
objects can be assigned policies and voice plans. As a result, you will be able to maintain control over common area
phones even though those phones are not associated with an individual user. For example, if you do not want
people to have the ability to transfer or park calls from a common area phone, you can create a voice policy that
prohibits call transfers and call parking, and then assign that policy to the common area phone. (Or, more correctly,
to the contact object that represents the common area phone.) For example, this command assigns the voice policy
CommonAreaPhoneVoicePolicy to all your common area phones:
Get-CsCommonAreaPhone | Grant-CsVoicePolicy -PolicyName "CommonAreaPhoneVoicePolicy"

The Get-CsCommonAreaPhone cmdlet provides a way for you to retrieve information about the common area
phones configured for use in your organization. If you call the Get-CsCommonAreaPhone cmdlet without any
parameters, the cmdlet will return information about all your common area phones. Optional parameters provide
different ways for you to filter information; for example, you can return all the common area phones that have
contact objects in a specified organizational unit (OU ), or all the contacts objects located in a specified building.

Examples
-------------------------- Example 1 --------------------------

Get-CsCommonAreaPhone
The command shown in Example 1 returns information about all the common area phones configured for use in
the organization. This is done by calling the Get-CsCommonAreaPhone cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsCommonAreaPhone -Filter {DisplayName -eq "Building 14 Lobby"}

In Example 2, the common area phone with the Active Directory display name "Building 14 Lobby" is returned. This
task is carried out by including the Filter parameter and the filter value {DisplayName -eq "Building 14 Lobby"};
that filter value limits returned objects to common area phones where the DisplayName property is equal to
"Building 14 Lobby".
-------------------------- Example 3 --------------------------

Get-CsCommonAreaPhone -Filter {DisplayName -like "Building 14*"}

Example 3 returns all the common area phones that have an Active Directory display name that begins with the
characters "Building 14". To do this, the Get-CsCommonAreaPhone cmdlet is called, along with the Filter parameter
and the filter value {DisplayName -like "Building 14"}. The filter value uses the -like operator and the wildcard
string "Building 14" to limit returned data to phones where the DisplayName property begins with "Building 14"
(for example, "Building 14 Lobby", "Building 14 Cafeteria", etc.).
-------------------------- Example 4 --------------------------

Get-CsCommonAreaPhone -Filter {LineUri -eq "tel:+14255551234"}

In Example 4, a single common area phone is returned: the phone that has a LineUri property equal to
"tel:+14255551234". Because LineUris must be unique, this command will never return more than a single item.
-------------------------- Example 5 --------------------------

Get-CsCommonAreaPhone -Filter {DialPlan -eq $Null}

The command shown in Example 5 returns information about all the common area phones that have not been
assigned a dial plan. This is done by using the Filter parameter and the filter value {DialPlan -eq $Null}; that limits
returned data to phones where the DialPlan property is equal to a null value. If a common area phone has not
explicitly been assigned a dial plan, then it automatically uses the global dial plan or, if one exists, the dial plan
assigned to the site.
-------------------------- Example 6 --------------------------

Get-CsCommonAreaPhone -OU "ou=Telecommunications,dc=litwareinc,dc=com"

Example 6 returns a collection of all the common area phones that have a contact object in the Telecommunications
OU in Active Directory Domain Services. To do this, the Get-CsCommonAreaPhone cmdlet is called along with the
OU parameter; the parameter value limits the returned objects to phones that have contacts objects in the OU with
the distinguished name ou=Telecommunications,dc=litwareinc,dc=com.

Parameters
-Credential
Enables you to run the Get-CsCommonAreaPhone cmdlet under alternate credentials. This might be required if the
account you used to log on to Windows does not have the necessary privileges required to work with contact
objects.
To use the Credential parameter, you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the Fully Qualified Domain
Name (FQDN ) of that computer (for example, atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on attributes specific to Skype for Business Server. For example,
you can limit returned data to common area phone contact objects that have been assigned a specific voice policy,
or contacts that have not been assigned a specific voice policy.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the common area phone. Common area phones are identified using the Active Directory
distinguished name (DN ) of the associated contact object. By default, common area phones use a globally unique
identifier (GUID ) as their common name, which means phones will typically have an Identity similar to this: CN=
{ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server). For example, you can limit returned data to contact objects that have
been assigned to a specific department or are located in a specific building.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only contact objects representing common area phones in the city of Redmond would look like this:
-LDAPFilter "l=Redmond"

In the preceding filter, "l" (a lowercase L ) represents the Active Directory attribute (locality); "=" represents the
comparison operator (equal to); and "Redmond" represents the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return contact objects from a specific Active Directory organizational unit (OU ). The OU parameter
returns data from both the specified OU and any of its child OUs. For example, if the Finance OU has two child
OUs -- AccountsPayable and AccountsReceivable -- common area phone information will be returned from each of
these OUs.
When specifying an OU, use the distinguished name of that container; for example:
-OU "OU=Finance,dc=litwareinc,dc=com"

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by a command. For example, to return seven common area
phones (regardless of how many common area phones are in your forest) include the ResultSize parameter and set
the parameter value to 7. Note that there is no way to guarantee which seven phones will be returned. If you set the
ResultSize to 7 but you have only three common area phones in your forest, the command will return those three
phones, and then complete without error.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
Represents the Identity of the common area phone.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact

Related Links
Move-CsCommonAreaPhone
New -CsCommonAreaPhone
Remove-CsCommonAreaPhone
Set-CsCommonAreaPhone
minutes to read • Edit Online

Get-CsComputer
In ths Article

Returns information about the computers that perform service roles within your Skype for Business Server
infrastructure. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsComputer [[-Identity] <XdsGlobalRelativeIdentity>] [-Pool <String>] [-Local] [<CommonParameters>]

Get-CsComputer [-Filter <String>] [-Pool <String>] [-Local] [<CommonParameters>]

Description
The Get-CsComputer cmdlet provides a way to quickly identify computers that are running Skype for Business
Server services or server roles. Called without any parameters, the Get-CsComputer cmdlet returns a collection of
all the computers that are running Skype for Business Server services or server roles; this collection includes the
Identity, pool name, and fully qualified domain name (FQDN ) for each computer. Alternatively, you can use
optional parameters such as Identity, Filter, or Pool to limit the returned data to a single computer or set of
computers.

Examples
-------------------------- Example 1 --------------------------

Get-CsComputer

In Example 1 the Get-CsComputer cmdlet is used to return information about all the computers that perform
service roles within your Skype for Business Server 2015 infrastructure.
-------------------------- Example 2 --------------------------

Get-CsComputer -Filter "*.litwareinc.com"

The command shown in Example 2 uses the Filter parameter to return only those service role computers that are
part of the litwareinc.com domain. The wildcard string *.litwareinc.com restricts the returned information to
computers that have an FQDN that ends with the string value ".litwareinc.com".
-------------------------- Example 3 --------------------------

Get-CsComputer -Identity "atl-cs-001.litwareinc.com"

In Example 3, the Identity parameter is used to limit the returned data to the one computer that has the FQDN atl-
cs-001.litwareinc.com.
-------------------------- Example 4 --------------------------

Get-CsComputer -Pool "atl-cs-001.litwareinc.com"

In Example 4, the Pool parameter is used to return information about all the computers found in the pool atl-cs-
001.litwareinc.com.

Parameters
-Filter
Enables you to use wildcard characters when specifying the Identity of the computer (or computers) to be returned.
For example, this command returns information about all the computers that have an Identity that begins with the
string value "atl-": -Filter "atl-*".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
FQDN of the computer to be returned. For example:
-Identity "atl-cs-001.litwareinc.com".

If this parameter is not specified, all of the computers running Skype for Business Server will be returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Local
When present, returns information only for the local computer.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pool
FQDN of a Skype for Business Server pool. When you use this parameter, information about all the computers in
the specified pool will be returned.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deploy.Internal.Machine

Related Links
Disable-CsComputer
Enable-CsComputer
Test-CsComputer
minutes to read • Edit Online

Get-CsConferenceDirectory
In ths Article

Returns information about the conference directories configured for use in your organization. Conference
directories are used to help dial-in conferencing users locate conference information. This cmdlet was introduced in
Lync Server 2010.

Syntax
Get-CsConferenceDirectory [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsConferenceDirectory [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When you create a dial-in conferencing Uniform Resource Identifier (URI), those URIs are assigned unique SIP
addresses. However, SIP addresses are difficult for devices that are not SIP -aware to translate; for example, a public
switched telephone network (PSTN ) telephone can't translate a SIP address. Because of that, Skype for Business
Server uses conference directories as a way to help these devices locate, and connect to, dial-in conferences. This is
done by creating a SIP conference directory that is associated with each dial-in conferencing URI, and is identified
by an integer value rather than a SIP URI. PSTN telephones and other devices can use these numbers (rather than
a SIP URI) when connecting to conferences; the directory number is included in the PSTN conference identification
users enter when connecting to a dial-in conference.
The Get-CsConferenceDirectory cmdlet enables you to return information about all the conference directories
configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsConferenceDirectory

The command shown in Example 1 returns information about all the conference directories configured for use in
your organization.
-------------------------- Example 2 --------------------------

Get-CsConferenceDirectory -Identity 2

Example 2 returns information about the conference directory with the Identity 2. Because identities must be
unique this command will never return more than a single conference directory.
-------------------------- Example 3 --------------------------
Get-CsConferenceDirectory | Where-Object {$_.ServiceID -match "UserServer:atl-cs-001.litwareinc.com"}

Example 3 returns all the conference directories housed on the service UserServer:atl-cs-001.litwareinc.com. To do
this, the command first calls the Get-CsConferenceDirectory cmdlet without any parameters in order to return a
collection of all the conference directories found in your organization. This collection is then piped to the Where-
Object cmdlet, which selects only those directories where the ServiceID matches the string value "UserServer:atl-
cs-001.litwareinc.com".

Parameters
-Filter
Enables you to use wildcards to specify the Identity of the conference directory (or directories) to be retrieved.
Because directory Identities are numeric, this parameter might be of minimal value. However, this syntax will return
all the conference directories that have an Identity that begins with the number 3: -Filter "3*".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Numeric identifier (for example, 7) of the conference directory to be returned. If this parameter is omitted, then the
Get-CsConferenceDirectory cmdlet returns information about all the conference directories in use in your
organization.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the conference directory data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.PstnConf.ConferenceDirectories

Related Links
Move-CsConferenceDirectory
New -CsConferenceDirectory
Remove-CsConferenceDirectory
minutes to read • Edit Online

Get-CsConferenceDisclaimer
In ths Article

Returns information about the conference disclaimer used in your organization. The conference disclaimer is a
message that is displayed to users who join the conference by using a hyperlink (for example, users who paste a
link to the conference into a browser such as Windows Internet Explorer). This cmdlet was introduced in Lync
Server 2010.

Syntax
Get-CsConferenceDisclaimer [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsConferenceDisclaimer [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When configuring conferencing settings, administrators can include a legal disclaimer to display to participants at
the time participants join conferences hosted by Skype for Business Server. This disclaimer is typically used to
explain legal and intellectual property laws regarding the conference, and users cannot join the conference without
agreeing to the stipulations set forth in the disclaimer. Note that this disclaimer is only shown to users who join a
conference by using a hyperlink.
The Get-CsConferenceDisclaimer cmdlet enables you to view the body and header of your organization's
disclaimer.

Examples
-------------------------- Example 1 --------------------------

Get-CSConferenceDisclaimer

The command shown in Example 1 returns information about the conference disclaimer configured for use in your
organization. Because you are limited to a single disclaimer (configured at the global scope), you do not need to
specify an Identity when running this command.

Parameters
-Filter
Enables you to use wildcard values when referencing a conference disclaimer. Because you can only have a single,
global instance of the conference disclaimer, there is really no reason to ever use the Filter parameter. However, you
can use the following syntax to reference the global disclaimer: -Filter "g*". That syntax brings back all the
conference disclaimers that have an Identity that begins with the letter "g".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the conference disclaimer. Because you can only have a single, global instance of the conference
disclaimer, you do not need to specify an Identity when calling the Get-CsConferenceDisclaimer cmdlet. You can,
however, use the following syntax to reference the global disclaimer: -Identity global.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the conference disclaimer data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConferenceDisclaimer

Related Links
Remove-CsConferenceDisclaimer
Set-CsConferenceDisclaimer
minutes to read • Edit Online

Get-CsConferencingConfiguration
In ths Article

Returns information about the conference configuration settings for your organization. Conference settings
determine such things as the maximum-allowed size for conference content and handouts, the content grace period
(that is, the amount of time content will be stored before being deleted), and the URLs for the internal and external
downloads of the supported client. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsConferencingConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsConferencingConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
For conferences, management and administration is split between two sets of cmdlets. If you want to manage the
things users can and cannot do (for example, can users invite anonymous participants to join a conference, are
users allowed to offer application sharing in a conference, or are users allowed to transfer files within a conference),
then you need to use the CsConferencingPolicy cmdlets.
In addition to user activities, administrators need to manage the Skype for Business Server Web Conferencing
service. For example, administrators need to be able to do such things as specify the maximum amount of content
storage allotted to a single conference and to specify the grace period before that conference content is
automatically deleted. They also need to be able to specify the ports used for activities such as application sharing
and file transfer.
These latter activities can be managed by using the CsConferencingConfiguration cmdlets. These cmdlets enable
you to manage the actual servers themselves. The CsConferencingConfiguration cmdlets (which can be applied to
the global, the site, and the service scopes) aren't used to specify whether or not a user can share applications
during a conference; if application sharing is allowed, however, these cmdlets enable you to indicate which ports
should be used for that activity. Likewise, the cmdlets enable you to specify such things as storage limits and
expiration periods, as well as pointers to internal and external URLs where users can obtain conferencing help and
resources.
The Get-CsConferencingConfiguration cmdlet provides a way for administrators to return information about all the
conferencing configuration settings currently in use in their organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsConferencingConfiguration
Example 1 returns information about all the conferencing configuration settings currently in use in the organization.
This is done by calling the Get-CsConferencingConfiguration cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsConferencingConfiguration -Identity site:Redmond

In Example 2, conferencing configuration information is returned for the Redmond site (-Identity site:Redmond).
Because Identities must be unique, this command will always return, at most, a single collection of conferencing
configuration settings.
-------------------------- Example 3 --------------------------

Get-CsConferencingConfiguration -Filter "site:*"

The command shown in Example 3 returns information about all the conferencing configuration settings that have
been applied at the site scope. To do this, the Get-CsConferencingConfiguration cmdlet is called along with the
Filter parameter; the filter value "site:*" ensures that only settings that have an Identity that begins with the string
value 'site:" are returned.
-------------------------- Example 4 --------------------------

Get-CsConferencingConfiguration | Where-Object {$_.Organization -ne "Litwareinc"}

Example 4 returns information about all the conferencing configuration settings where the organization is not set to
Litwareinc. To carry out this task, the command first calls the Get-CsConferencingConfiguration cmdlet without any
parameters; this returns a collection of all the conferencing configuration settings used in the organization. The
resulting collection is then piped to the Where-Object cmdlet, which selects only those settings where the
Organization property is not equal to Litwareinc.
-------------------------- Example 5 --------------------------

Get-CsConferencingConfiguration | Where-Object {$_.MaxContentStorageMB -gt 100}

In Example 5, information is returned only for those conferencing configuration settings where the maximum
content storage space is greater than 100 megabytes. To do this, the command first calls the Get-
CsConferencingConfiguration cmdlet without any parameters in order to return a collection of all your
conferencing configuration settings. This collection is then piped to the Where-Object cmdlet, which picks out those
settings that where the content storage space is greater than 100 megabytes.

Parameters
-Filter
Enables you to use wildcards when specifying the Identity of the conferencing configuration settings to be returned.
For example, this syntax returns all the settings configured at the site scope: -Filter "site:". This syntax returns all the
settings configured at the service scope: -Filter "service:".
Note that you cannot use both the Identity and the Filter parameters in the same command.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of conferencing configuration settings to be retrieved. To retrieve the global
settings, use this syntax: -Identity global. To retrieve settings configured at the site scope, use syntax similar to this: -
Identity "site:Redmond". To retrieve settings configured at the service scope, use syntax similar to this: -Identity
"service:ConferencingServer:atl-cs-001.litwareinc.com".
If this parameter is not included, then the Get-CsConferencingConfiguration cmdlet will return all the conferencing
configuration settings currently in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the conferencing configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings

Related Links
New -CsConferencingConfiguration
Remove-CsConferencingConfiguration
Set-CsConferencingConfiguration
minutes to read • Edit Online

Get-CsConferencingPolicy
In ths Article

Returns information about the conferencing policies that have been configured for use in your organization.
Conferencing policies determine the features and capabilities that can be used in a conference; this includes
everything from whether or not the conference can include IP audio and video to the maximum number of people
who can attend a meeting. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsConferencingPolicy [-Tenant <Guid>] [-Include <PolicyFilter>] [-ApplicableTo <UserIdParameter>]
[[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsConferencingPolicy [-Tenant <Guid>] [-Include <PolicyFilter>] [-ApplicableTo <UserIdParameter>]


[-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Conferencing is an important part of Skype for Business: conferencing enables groups of users to come together
online to view slides and video, share applications, exchange files, and otherwise communicate and collaborate.
It's important for administrators to maintain control over conferences and conference settings. In some cases, there
might be security concerns: by default, anyone, including unauthenticated users, can participate in meetings and
save any of the slides or handouts distributed during those meetings. In other cases, there might be bandwidth
concerns: having a multitude of simultaneous meetings, each involving hundreds of participants and each featuring
video feeds and file sharing, has the potential to cause problems with your network. In addition, there might be
occasional legal concerns. For example, by default meeting participants are allowed to make annotations on shared
content; however, these annotations are not saved when the meeting is archived. If your organization is required to
keep a record of all electronic communication, you might want to disable annotations.
Of course, needing to manage conferencing settings is one thing; actually managing these settings is another. In
Skype for Business, conferences are managed by using conferencing policies. (In previous versions of the software,
these were known as meeting policies.) As noted, conferencing policies determine the features and capabilities that
can be used in a conference, including everything from whether or not the conference can include IP audio and
video to the maximum number of people who can attend a meeting. Conferencing policies can be configured at the
global scope; at the site scope; or at the per-user scope. This provides administrators with enormous flexibility when
it comes to deciding which capabilities will be made available to which users.
The Get-CsConferencingPolicy cmdlet provides a way for you to return information about all the conferencing
policies that have been configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------
Get-CsConferencingPolicy

The first example returns a collection of all the conferencing policies configured for use in your organization.
-------------------------- Example 2 --------------------------

Get-CsConferencingPolicy -Identity "Global"

In Example 2, the Identity parameter is used to limit the retrieved information to conferencing policies that have an
identity equal to Global. Because policy Identities must be unique, this command returns a single policy: the Global
conferencing policy.
-------------------------- Example 3 --------------------------

Get-CsConferencingPolicy -Filter "tag:*"

Example 3 uses the Filter parameter to return a collection of all the conferencing policies that have been configured
at the per-user scope. The wildcard value "tag:*" tells Windows PowerShell to limit the returned data to
conferencing policies that have an identity beginning with the string value "tag:".
-------------------------- Example 4 --------------------------

Get-CsConferencingPolicy | Where-Object {$_.MaxMeetingSize -gt 100}

Example 4 returns a collection of all the conferencing policies where the MaxMeetingSize property is greater than
100. The command starts out by using the Get-CsConferencingPolicy cmdlet to return a collection of all the
conferencing policies configured for use in the organization. That collection is then piped to the Where-Object
cmdlet, which applies a filter that limits the returned data to policies where the MaxMeetingSize property is greater
than 100.
-------------------------- Example 5 --------------------------

Get-CsConferencingPolicy | Where-Object {$_.AllowExternalUsersToSaveContent -eq $True -and


$_.AllowExternalUserControl -eq $True}

Example 5 returns all the conferencing policies that meet two criteria: the AllowExternalUsersToSaveContent
property is equal to True and the AllowExternalUserControl property is also equal to True. To do this, the command
calls the Get-CsConferencingPolicy cmdlet without any additional parameters; this returns a collection of all the
conferencing policies configured for use in the organization. That collection is then piped to the Where-Object
cmdlet, which picks out only those policies where both AllowExternalUsersToSaveContent and
AllowExternalUserControl are True. The -and operator tells the Where-Object cmdlet that an object must meet all
the specified criteria in order to be returned.
-------------------------- Example 6 --------------------------

Get-CsConferencingPolicy | Where-Object {$_.AllowExternalUsersToSaveContent -eq $True -or


$_.AllowExternalUserControl -eq $True}

Example 6 is a variation of the command shown in Example 5. In this case, the command returns any policy that
meets at least one (but not necessarily both) of the specified criteria: either the AllowExternalUsersToSaveContent
property is equal to True and/or the AllowExternalUserControl property is equal to True. To do this, the command
calls the Get-CsConferencingPolicy cmdlet without any additional parameters; this returns a collection of all the
conferencing policies configured for use in the organization. That collection is then piped to the Where-Object
cmdlet, which picks out only those policies where either AllowExternalUsersToSaveContent and/or
AllowExternalUserControl are equal to True. The -or operator tells the Where-Object cmdlet that an object must
meet just one of the specified criteria in order to be returned.
-------------------------- Example 7 --------------------------

Get-CsConferencingPolicy -ApplicableTo "kenmyer@litwareinc.com"

In Example 7, the ApplicableTo parameter is used to return only the policies that can be assigned to the user
"kenmyer@litwareinc.com". The ApplicableTo parameter can only be used with Skype for Business Online; that's
because, with Skype for Business Online, there might be policies that cannot be assigned to certain users due to
licensing and/or country/region restrictions. Note that this command requires the Office 365 UsageLocation
property to be configured for the user's Active Directory user account.

Parameters
-ApplicableTo
Returns a list of the conferencing policies that can be assigned to the specified user. For example, to return a
collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command:
Get-CsConferencingPolicy -ApplicableTo "kenmyer@litwareinc.com"

The ApplicableTo parameter is useful because it's possible that only some of the available per-user conferencing
policies can be assigned to a given user. This is due to the fact that different licensing agreements and different
country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in
China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions
might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-
CsConferencingPolicy without using the ApplicableTo parameter you will get back a collection of all the available
policies, including any policies that can't actually be assigned to a specific user.

Type: UserIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters when specifying the conferencing policy (or policies) to be returned. For
example, this syntax returns all the policies configured at the per-user scope
: -Filter "tag:*"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the conferencing policy to be retrieved. Conferencing policies can be configured at the global
scope or at the per-user scope. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user
policy use syntax similar to this: -Identity SalesConferencingPolicy.
If this parameter is not included, the Get-CsConferencingPolicy cmdlet will return a collection of all the
conferencing policies configured for use in your organization.
Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use
wildcards when specifying a conferencing policy.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Include
PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly

Type: PolicyFilter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the conferencing policy data from the local replica of the Central Management store rather than from the
Central Management store itself.
This parameter is not used with Skype for Business Online.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Meeting.MeetingPolicy

Related Links
Grant-CsConferencingPolicy
New -CsConferencingPolicy
Remove-CsConferencingPolicy
Set-CsConferencingPolicy
Get-CsConferencingPolicy
minutes to read • Edit Online

Get-CsConfigurationStoreLocation
In ths Article

Reports back the location of the Active Directory service control point for the Central Management store. This
cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsConfigurationStoreLocation [-GlobalSettingsDomainController <Fqdn>] [-Report <String>]
[<CommonParameters>]

Description
Active Directory Domain Services uses service control points (SCP ) to help computers locate services. For example,
when you install Skype for Business Server, a service control point is created that provides location information for
the Central Management store used to maintain Skype for Business Server data. Computers that need access to the
database connect to Active Directory and use the information contained in the SCP to help them locate the correct
computer and the correct instance of SQL Server.
The Get-CsConfigurationStoreLocation cmdlet is used to report back the SQL Server path (for example, atl-sql-
001.litwareinc.com/rtc) to the computer running the Central Management store.

Examples
-------------------------- Example 1 --------------------------

Get-CsConfigurationStoreLocation

The command shown in Example 1 returns the SQL Server path to the computer (or pool) hosting the Central
Management store.
-------------------------- Example 2 --------------------------

Get-CsConfigurationStoreLocation -Report "C:\Logs\ConfigurationStore.html"

Example 2 is a variation of the command shown in Example 1; in this case, however, the Report parameter is
included in order to specify a path for the report generated when you run the Get-CsConfigurationStoreLocation
cmdlet.

Parameters
-GlobalSettingsDomainController
Fully qualified domain name (FQDN ) of a domain controller where global settings are stored. If global settings are
stored in the Active Directory System container, then this parameter must point to the root domain controller. If
global settings are stored in the Configuration container, then any domain controller can be used and this
parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ConfigurationStore.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
String
The Get-CsConfigurationStoreLocation cmdlet reports back the location of the configuration store.

Related Links
Remove-CsConfigurationStoreLocation
Set-CsConfigurationStoreLocation
minutes to read • Edit Online

Get-CsConversationHistoryConfiguration
In ths Article

Returns the conversation history configuration settings for the organization. These settings manage conversation
histories for mobile device users.

Syntax
Get-CsConversationHistoryConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsConversationHistoryConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
Prior to the release of Skype for Business Server, 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, 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. Just keep in mind that a
single, global, collection of these settings is used to manage conversation histories throughout your deployment.
There is no option for creating additional conversation history settings at the site, service, or per-user scope.

Examples
-------------------------- Example 1 --------------------------

Get-CsConversationHistoryConfiguration

The command shown in Example 1 returns the conversation history configuration settings for the organization.
Note that you will always get back just one collection of settings; that's because Skype for Business Server 2015
limits you to a single, global collection of conversation history settings.

Parameters
-Filter
Enables you to use wildcard values when referencing a collection of conversation history configuration settings.
Because you can only have a single, global instance of these settings there is no reason to use the Filter parameter.
However, if you prefer you can use the following syntax to reference the global settings:
-Filter "g*"

That syntax brings back all the conversation history configuration settings that have an Identity that begins with the
letter "g".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the conversation history configuration settings. Because you can only have a single, global
instance of these settings, you do not need to specify an Identity when calling the Get-
CsConversationHistoryConfiguration cmdlet. If you prefer, however, you can use the following syntax to reference
the global settings:
-Identity "global"

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the conversation history configuration data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.ConversationHistory.ConversationHistorySettings

Related Links
Remove-CsConversationHistoryConfiguration
Set-CsConversationHistoryConfiguration
minutes to read • Edit Online

Get-CsCpsConfiguration
In ths Article

Returns information about the Call Park service. Call parking is a service that allows a user to "park" an incoming
phone call. Parking a call transfers it to a number in a specified range, or orbit, and then immediately places the call
on hold. Anyone (not just the person who originally answered the call) can resume the conversation from any
telephone in the system by entering the correct number. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsCpsConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsCpsConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet is used to retrieve one or more Call Park service configurations. A Call Park service configuration
specifies what happens to a call once it's parked. For example, if a parked call isn't answered after a period of time it
can be automatically forwarded to someone else, such as an administrator, or to a Response Group. Calls can also
be configured to ring after a certain period of time to ensure the call isn't forgotten. In addition, Call Park service
can be configured to play music on hold to the caller while the call is parked.

Examples
-------------------------- Example 1 --------------------------

Get-CsCpsConfiguration

Example 1 retrieves a collection of all the Call Park service configurations that have been defined for use in your
organization.
-------------------------- Example 2 --------------------------

Get-CsCpsConfiguration -Identity site:Redmond1

Example 2 retrieves only the Call Park service configurations with the Identity site:Redmond1.
-------------------------- Example 3 --------------------------

Get-CsCpsConfiguration -Filter site:*

In Example 3, the Filter parameter is used to return all the Call Park service configurations that have been
configured at the site scope. The wildcard string site:* tells the Get-CsCpsConfiguration cmdlet to return only those
settings where the Identity begins with the string value site:.
-------------------------- Example 4 --------------------------

Get-CsCpsConfiguration -Filter *:re*

As in Example 3, in this example we use the Filter parameter to retrieve a subset of all the defined Call Park service
configurations. In this case, we filter on the string :re, which will return Call Park configurations for all sites with
names beginning with the letters re, such as Redmond1, Redmond2, and RemoteComputer.
-------------------------- Example 5 --------------------------

Get-CsCpsConfiguration | Where-Object {$_.EnableMusicOnHold -eq $False}

Example 5 returns all the Call Park service settings that do not play music when a caller is placed on hold. To do
this, the command first uses the Get-CsCpsConfiguration cmdlet to retrieve all the Call Park service settings
configured for use in the organization. That collection is then piped to the Where-Object cmdlet, which, in turn,
applies a filter that limits the returned data to those items where the EnableMusicOnHold property is equal to (-eq)
False.

Parameters
-Filter
Allows you to do a wildcard search to retrieve only those configurations with Identity values matching the wildcard
string.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the Call Park service configuration you want to retrieve. This identifier will be either Global
or site:<sitename>, where <sitename> is the name of the site to which the configuration applies.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Call Park service information from the local replica of the Central Management store, rather than the
Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings

Related Links
New -CsCpsConfiguration
Remove-CsCpsConfiguration
Set-CsCpsConfiguration
Set-CsCallParkServiceMusicOnHoldFile
minutes to read • Edit Online

Get-CsDatabaseMirrorState
In ths Article

Returns information about whether database mirroring has been implemented for a specified database on a
specified pool. Database mirroring enables you to simultaneously maintain two copies of a database, with each
copy residing on a different server. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsDatabaseMirrorState -PoolFqdn <Fqdn> [-DatabaseType <DatabaseNameType>] [-LocalStore] [-Report <String>]
[<CommonParameters>]

Description
The Get-CsDatabaseMirrorState cmdlet returns information about the mirror databases configured for a pool; this
includes information about the mirror databases that might (or might not) have been configured for the Front End
server database, the Location Information Service database, the call detail recording and Quality of Experience
databases, and so on. For each database the cmdlet will report back the synchronization status for both the primary
database and the mirror database. In some cases you will see output similar to this, including the property value
DatabaseInaccessibleOrMirroringNotEnabled:
DatabaseName : lcscdr
StateOnPrimary : DatabaseInaccessibleOrMirroringNotEnabled
StateOnMirror : DatabaseInaccessibleOrMirroringNotEnabled
MirroringStatusOnPrimary :
MirroringStatusOnSecondary :
That typically means that no mirror database has been assigned to the primary database (in this case, the database
lcscdr, used for maintaining call detail data).
The functions carried out by the Get-CsDatabaseMirrorState cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsDatabaseMirrorState -PoolFqdn "atl-cs-001.litwareinc.com" -DatabaseType Monitoring

The command shown in Example 1 returns the state of the database mirror assigned to the monitoring database
for the pool atl-cs-001.litwareinc.com.
Parameters
-DatabaseType
Type of database whose mirror state is being checked.
Allowed values for Lync Server 2013 are:
App
Archiving
CMS
Monitoring
Provision
User
Allowed values for Skype for Business Server 2015 are:
ActiveMonitoring
Application
Archiving
CentralMgmt
Edge
Lyss
Monitoring
PersistentChat
PersistentChatCompliance
Provision
Registrar
SigninTelemetry
User

Type: DatabaseNameType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the backup mirror state from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool whose database mirroring state is being checked. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"
Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\DatabaseMirrorState.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deployment.DatabaseMirrorState

Related Links
Install-CsMirrorDatabase
Uninstall-CsMirrorDatabase
minutes to read • Edit Online

Get-CsDeviceUpdateConfiguration
In ths Article

Returns information about the device update configuration settings currently deployed in your organization. These
settings help manage the Device Update Web service, a Skype for Business Server component that enables
administrators to distribute firmware updates to telephones and other devices running Skype for Business. This
cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsDeviceUpdateConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsDeviceUpdateConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The Device Update Web service provides a way for administrators to distribute firmware updates to devices that
run Skype for Business. Periodically, administrators upload a set of device update rules to Skype for Business
Server. After those rules have been tested and approved, they can then be applied to the appropriate devices as
those devices connect to the system. Devices check for updates when they are first powered on, then check again
when a user logs on. After that, devices check for updates every 24 hours.
The Device Update Web service is managed by using device configuration settings; these settings can be applied at
the global scope or at the site scope. You can use the Get-CsDeviceUpdateConfiguration cmdlet to return
information about the device update configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsDeviceUpdateConfiguration

The command shown in Example 1 returns a collection of all the device update configuration settings currently in
use in the organization. Calling the Get-CsDeviceUpdateConfiguration cmdlet without any additional parameters
returns all the device update settings currently in use.
-------------------------- Example 2 --------------------------

Get-CsDeviceUpdateConfiguration -Identity Global

In Example 2, information is returned for the global device update configuration settings.
-------------------------- Example 3 --------------------------
Get-CsDeviceUpdateConfiguration -Filter site:*

Example 3 demonstrates the use of the Filter parameter. The filter value "site:*" returns a collection of all the device
update configuration settings applied at the site scope; that's because these settings all have an Identity that begins
with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsDeviceUpdateConfiguration | Where-Object {$_.MaxLogFileSize -gt 2048000}

Example 4 returns all the device update configuration settings where the MaxLogFileSize property is greater than
2048000 bytes. To do this, the Get-CsDeviceUpdateConfiguration cmdlet is used to return a collection of all the
device update configuration settings currently in use. That collection is then piped to the Where-Object cmdlet,
which picks out only those settings where the MaxLogFileSize property is greater than 2048000.
-------------------------- Example 5 --------------------------

Get-CsDeviceUpdateConfiguration | Where-Object {$_.ValidLogFileTypes -like "*Watson*"}

The command shown in Example 5 returns all the device update configuration settings that include "Watson" as a
valid log file type. To accomplish this task, the Get-CsDeviceUpdateConfiguration cmdlet is used to return a
collection of all the device update configuration settings. That collection is then piped to the Where-Object cmdlet,
which picks out only the device settings that include "Watson" in their set of valid log file types.

Parameters
-Filter
Provides a way for you to use wildcard characters when specifying device update configuration settings. For
example, to return a collection of all the configuration settings that have been applied at the site scope, use this
syntax: -Filter "site:". To return all the settings that have the term "EMEA" in their Identity, use this syntax: -Filter
"EMEA*". Note that the Filter parameter acts only on the Identity of the settings; you cannot filter on other device
update configuration properties.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the device update configuration settings to be retrieved. To refer to the global settings, use
this syntax: -Identity global. To refer to site settings, use syntax similar to this: -Identity site:Redmond. Note that you
cannot use wildcards when specifying an Identity. If you need to use wildcards, use the Filter parameter instead.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LocalStore
Retrieves the device update configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration

Related Links
New -CsDeviceUpdateConfiguration
Remove-CsDeviceUpdateConfiguration
Set-CsDeviceUpdateConfiguration
minutes to read • Edit Online

Get-CsDeviceUpdateRule
In ths Article

Returns information about the device update rules configured for use in your organization. Device update rules are
used to associate firmware updates with devices that run Skype for Business Phone Edition. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsDeviceUpdateRule [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsDeviceUpdateRule [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server uses device update rules as a way to provide firmware updates to devices that run Skype
for Business Phone Edition. Periodically, administrators upload a set of device update rules to Skype for Business
Server; after those rules have been tested and approved, they are automatically downloaded and applied to the
appropriate devices as those devices connect to the system. By default devices check for new update rules each
time they turn on and connect to Skype for Business Server. Devices also check for updates every 24 hours after
that initial sign on.
Device update rules can be imported (and applied to) the Web Services service. The Get-CsDeviceUpdateRule
cmdlet enables you to return information about the device update rules that have been imported for use in your
organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsDeviceUpdateRule

The command in Example 1 returns information about all the device update rules that have been applied in your
organization. Calling the Get-CsDeviceUpdateRule cmdlet without any additional parameters always returns the
complete collection of device update rules.
-------------------------- Example 2 --------------------------

Get-CsDeviceUpdateRule -Identity service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-420a-82ac-


dc2d9b1222ff9

The command shown in Example 2 returns information about the device update rule with the Identity
"WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-420a-82ac-dc2d9b1222ff9".
-------------------------- Example 3 --------------------------

Get-CsDeviceUpdateRule -Filter service:WebServer:atl-cs-001.litwareinc.com*

Example 3 returns information about all the device update rules configured for the service WebServer:atl-cs-
001.litwareinc.com. To accomplish this task, the Filter parameter is used along with the filter value "WebServer:atl-
cs-001.litwareinc.com*". That filter limits the returned data to device update rules that have an Identity that begins
with the string value "service:WebServer:atl-cs-001.litwareinc.com."
-------------------------- Example 4 --------------------------

Get-CsDeviceUpdateRule | Where-Object {$_.Brand -eq "LG-Nortel"}

Example 4 returns all the device update rules where the Brand property is equal to "LG -Nortel". To do this, the Get-
CsDeviceUpdateRule cmdlet is called in order to return a collection of all the device update rules in the
organization. That collection is then piped to the Where-Object cmdlet, which selects only those rules where the
Brand is equal to "LG -Nortel".
-------------------------- Example 5 --------------------------

Get-CsDeviceUpdateRule | Where-Object {$_.ApprovedVersion -eq $Null}

Example 5 returns a collection of all the device update rules that have not been approved. This is done by using the
Get-CsDeviceUpdateRules cmdlet to return a collection of all the rules and then piping that collection to the
Where-Object cmdlet. In turn, the Where-Object cmdlet selects only those rules where the Approved property is
equal to a null value. If the Approved property is null, it means that these rules are not approved.
-------------------------- Example 6 --------------------------

Get-CsDeviceUpdateRule | Where-Object {$_.ApprovedVersion -ne $Null -and $_.Brand -eq "LG-Nortel"}

This command returns a collection of all the device update rules that meet two criteria: the rule has been approved
and the rule relates to LG -Nortel devices. To accomplish this task, the Get-CsDeviceUpdateRule cmdlet is first
called to return a collection of all the device update rules in the organization. That collection is then piped to the
Where-Object cmdlet, which filters the collection on two criteria: the Approved property must not be null (that is,
this property must have a value of some kind); and the Brand must be equal to "LG -Nortel".

Parameters
-Filter
Enables you to use wildcards when specifying the Identity of a device update rule or set of rules. For example, to
return all the device update rules for WebServer:atl-cs-001.litwareinc.com use this filter value:
"service:WebServer:atl-cs-001.litwareinc.com*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier for the device update rule. The Identity of a device update rule is composed of two parts: the
service scope where the rule has been applied (for example, service:WebServer:atl-cs-001.litwareinc.com) and the
globally unique identifier (GUID ) that was pre-assigned to the rule (for example, d5ce3c10-2588-420a-82ac-
dc2d9b1222ff9). Based on this, the Identity for a given device update rule will look something like this:
"service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-420a-82ac-dc2d9b1222ff9 "

Wildcards are not allowed when specifying an Identity. Use the Filter parameter if you want to use wildcards when
specifying a rule.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the device update rule data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdate.Rule

Related Links
Approve-CsDeviceUpdateRule
Remove-CsDeviceUpdateRule
Reset-CsDeviceUpdateRule
Restore-CsDeviceUpdateRule
minutes to read • Edit Online

Get-CsDiagnosticConfiguration
In ths Article

Returns information about the diagnostic configuration settings currently in use in your organization. Diagnostic
configuration settings are used to determine whether traffic to or from a given domain or Uniform Resource
Identifier (URI) is recorded in your Skype for Business Server log files. This cmdlet was introduced in Lync Server
2010.

Syntax
Get-CsDiagnosticConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsDiagnosticConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
If you enable logging for Skype for Business Server, then, by default, traffic traveling to or from any domain or URI
is included in those log files. This ensures that as much information as possible is recorded in the log files.
However, this can occasionally result in too much information. For example, if you are experiencing connectivity
problems with a particular domain, you might want to limit logging to traffic between your network and that
domain; that makes it easier for you to identify the relevant records and, in turn, might make it easier for you to
diagnose and correct the problem.
Diagnostic configuration settings make it possible for you to specify the domains or URIs that will be recorded in
the log files. Skype for Business Server 2015 enables you to create diagnostic configuration settings at the site
scope. In turn, this enables you to apply different settings to the Redmond site while than you do on your other
sites.
The Get-CsDiagnosticConfiguration cmdlet enables you to return information about the diagnostic configuration
settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsDiagnosticConfiguration

In Example 1, information is returned for all of the diagnostic configuration settings currently in use in the
organization. This is done by calling the Get-CsDiagnosticConfiguration cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsDiagnosticConfiguration -Identity site:Redmond


Example 2 returns information for the diagnostic configuration settings applied to the Redmond site (-Identity
site:Redmond).
-------------------------- Example 3 --------------------------

Get-CsDiagnosticConfiguration -Identity site:Redmond | Select-Object -ExpandProperty Filter

The command shown in Example 3 displays the information about the individual filters contained within the
diagnostic configuration settings for the Redmond site. To do this, the command first uses the Get-
CsDiagnosticConfiguration cmdlet to return the settings for the Redmond site. This information is then piped to the
Select-Object cmdlet, which uses the ExpandProperty parameter to "expand" the value of the Filter property.
Expanding the Filter property enables you to access the properties and property values for the individual filters
maintained in the diagnostic configuration settings.
-------------------------- Example 4 --------------------------

Get-CsDiagnosticConfiguration -Identity global | Select-Object -ExpandProperty Filter | Where-Object {$_.Uri -


contains "sip:diagnostics@litwareinc.com"}

The command shown in Example 4 returns a subset of the filters found in the global diagnostic configuration
settings; in particular, it returns filters where the Uri property includes the SIP address
sip:diagnostics@litwareinc.com. To do this, the command first uses the Get-CsDiagnosticConfiguration cmdlet to
return all the filter information for the global instance of the diagnostic configuration settings. This information is
then piped to the Select-Object cmdlet, which expands the Filter property. The individual filter objects are then
piped to the Select-Object cmdlet, which extracts only those filters where the Uri property includes the SIP address
sip:diagnostics@litwareinc.com.
-------------------------- Example 5 --------------------------

Get-CsDiagnosticConfiguration -Identity global | Select-Object -ExpandProperty Filter | Where-Object {$_.Uri -


notcontains "sip:diagnostics@litwareinc.com"}

Example 5 is a variation of the command shown in Example 4; in Example 5, however, filters are returned only if the
Uri property does not include the SIP address sip:diagnostics@litwareinc.com. To carry out this task, the command
calls the Get-CsDiagnosticConfiguration cmdlet to return all the diagnostic configuration information for the global
instance of the configuration settings. This information is then piped to the Select-Object cmdlet, which expands the
Filter property. Those filter objects are then piped to the Select-Object cmdlet, which selects only those filters where
the Uri property does not include the SIP address sip:diagnostics@litwareinc.com.

Parameters
-Filter
Enables you to use wildcard characters when specifying the settings collection (or collections) to be returned. For
example, this syntax returns all the settings configured at the site scope: -Filter "site:*".
Note that you cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier for the diagnostic configuration settings to be returned. To return settings configured at the site
scope, use syntax similar to this: -Identity "site:Redmond". To return the global settings, use this syntax: -Identity
global.
If this parameter is not specified, then all of the diagnostics configuration settings currently in use will be returned.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the diagnostic configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings

Related Links
New -CsDiagnosticConfiguration
Remove-CsDiagnosticConfiguration
Set-CsDiagnosticConfiguration
minutes to read • Edit Online

Get-CsDiagnosticHeaderConfiguration
In ths Article

Returns information about the diagnostic header configuration settings currently in use in your organization.
Diagnostic header configuration settings determine whether SIP messages are accompanied by header
information. This information can be useful in troubleshooting and error reporting. This cmdlet was introduced in
Lync Server 2010.

Syntax
Get-CsDiagnosticHeaderConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsDiagnosticHeaderConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When you send SIP (Session Initiation Protocol) messages, you have the option of attaching an ms-diagnostics
header to each message. This message (which is not visible to end users) contains information that might be useful
in troubleshooting connection problems or in reporting errors. For example, the diagnostic header might contain
error codes that enable the client application (for example, Skype for Business) to take a predetermined course of
action should a specific situation arise.
For SIP messages sent within your internal network, there's little reason not to include these diagnostic headers:
they have a minimal impact on message size and can be an invaluable tool for administrators trying to
troubleshoot connectivity problems. However, diagnostic headers also contain information, such as the fully
qualified domain names (FQDNs) of your SIP servers, that you might not want to make available to people outside
the internal network. Because of this, the diagnostic header configuration settings enable you to decide whether
you want diagnostic headers sent to users on external networks (such as users in a federated domain) and/or to
outside users. (Outside users are users who have connected from outside the internal network and have not yet
been authenticated.)
By default, headers are not included in messages sent either to external networks or to unauthenticated users.
However, you can modify the global diagnostic header settings to include headers to external networks and/or
unauthenticated users. Alternatively, you can create custom settings at the site scope or at the service scope (for the
Edge Server or Registrar service). That way, you can choose to include diagnostic headers on messages sent from
one site, or through one Edge Server, while disallowing headers on messages sent from other sites or through
other Edge Servers.
The Get-CsDiagnosticHeaderConfiguration cmdlet provides a way for you to retrieve information about the
diagnostic header configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------
Get-CsDiagnosticHeaderConfiguration

The preceding command returns information about all the diagnostic header configuration settings currently in use
in the organization. This is done by calling the Get-CsDiagnosticHeaderConfiguration cmdlet without any
parameters.
-------------------------- Example 2 --------------------------

Get-CsDiagnosticHeaderConfiguration -Identity site:Redmond

In Example 2, a single collection of diagnostic header configuration settings is returned: the collection that has the
Identity site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsDiagnosticHeaderConfiguration -Filter "service:*"

The command shown in Example 3 returns all the diagnostic header settings that have been configured at the
service scope. This is done by calling the Get-CsDiagnosticHeaderConfiguration cmdlet and the Filter parameter;
the filter value "service:*" ensures that the only settings that are returned are those that have an Identity that begins
with the characters "service:".
-------------------------- Example 4 --------------------------

Get-CsDiagnosticHeaderConfiguration | Where-Object {$_.SendToExternalNetworks -eq $True}

Example 4 returns all the diagnostic header configuration settings that allow sending to external networks. To
perform this task, the command first calls the Get-CsDiagnosticHeaderConfiguration cmdlet without any
parameters; this returns a collection of all the diagnostic header settings currently in use. This collection is then
piped to the Where-Object cmdlet, which selects only those settings where the SendToExternalNetworks property
is equal to True.
-------------------------- Example 5 --------------------------

Get-CsDiagnosticHeaderConfiguration | Where-Object {$_.SendToExternalNetworks -eq $True -or


$_.SendToOutsideUnauthenticatedUsers -eq $True}

The command shown in Example 5 returns information about the diagnostic header configuration settings that
meet at least one of the following criteria: 1) the SendToExternalNetworks property is equal to True; and/or 2) the
SendToOutsideUnauthenticatedUsers is equal to True. To do this, the command first uses the Get-
CsDiagnosticHeaderConfiguration cmdlet to return a collection of all the diagnostic header settings currently in
use. This collection is then piped to the Where-Object cmdlet, which picks out those settings where the
SendToExternalNetworks property and/or the SendToOutsideUnauthenticatedUsers property is equal to True.
The -or operator specifies that, to be returned, settings only have to meet one of the specified criteria. To require
that settings meet both of the specified criteria, use the -and operator instead:
Where-Object {$_.SendToExternalNetworks -eq $True -and $_.SendToOutsideUnauthenticatedUsers -eq $True}

Parameters
-Filter
Enables you to use wildcard characters when specifying the settings collection (or collections) to be returned. For
example, this syntax returns all the settings configured at the site scope: -Filter "site:". This syntax returns all the
settings configured at the service scope: -Filter "service:".
Note that you cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the diagnostic header configuration settings to be returned. To return settings configured at
the site scope, use syntax similar to this: -Identity "site:Redmond". To return settings configured at the service scope,
use syntax like this: -Identity "service:EdgeServer:atl-edge-001.litwareinc.com". To return the global settings, use
this syntax: -Identity global.
If this parameter is not specified, then all the diagnostic header configuration settings currently in use will be
returned.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the diagnostic header configuration data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings

Related Links
New -CsDiagnosticHeaderConfiguration
Remove-CsDiagnosticHeaderConfiguration
Set-CsDiagnosticHeaderConfiguration
minutes to read • Edit Online

Get-CsDialInConferencingAccessNumber
In ths Article

Returns information about all the dial-in conferencing access numbers configured for use in your organization.
Dial-in conferencing provides a way for users to use a "regular" telephone mobile phone, or device on the public
switched telephone network (PSTN ) to join the audio portion of an online conference. This cmdlet was introduced
in Lync Server 2010.

Syntax
Get-CsDialInConferencingAccessNumber [[-Identity] <UserIdParameter>] [-Credential <PSCredential>]
[-DomainController <Fqdn>] [-Filter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Get-CsDialInConferencingAccessNumber [-Credential <PSCredential>] [-DomainController <Fqdn>] [-EmptyRegion]


[-Filter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Get-CsDialInConferencingAccessNumber [-Credential <PSCredential>] [-DomainController <Fqdn>] [-Filter <String>]


[-OU <OUIdParameter>] [-Region <String>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Description
Dial-in conferencing enables users to use any kind of telephone (such as a standard "land line", a mobile phone, or a
Voice over Internet Protocol (VoIP ) phone) to join the audio portion of an online conference. This enables users to
participate in the meeting even if they do not have a computer or an Internet connection. Users have full audio
capabilities: they can speak to other participants and hear everything that takes place. However, they won't be able
to see shared slides, video feeds, or other visual elements.
In order to provide users with dial-in conferencing capabilities, you must create dial-in conferencing access
numbers: phone numbers that users can call in order to be connected to a meeting. Dial-in conferencing access
numbers are created by using the New -CsDialInConferencingAccessNumber cmdlet. When you create a new dial-
in conferencing access number, you are actually creating a new contact object in Active Directory Domain Services;
this contact object is used to represent the access number and all its properties. Contact numbers can be retrieved
by using the Get-CsDialInConferencingAccessNumber cmdlet.
If you have imported dial-in conferencing access numbers from Microsoft Office Communications Server 2007
these numbers will also be retrieved by running the Get-CsDialInConferencingAccessNumber cmdlet and
including the Region parameter. (Imported numbers will not be displayed unless you use the Region parameter.)
Note, however, that a warning message will be displayed alongside the imported number's Uniform Resource
Identifiers (URIs). This is simply the way the cmdlet handles imported dial-in conferencing access numbers.

Examples
-------------------------- Example 1 --------------------------

Get-CsDialInConferencingAccessNumber

The command shown in Example 1 returns a collection of all the dial-in conferencing access numbers configured
for use in the organization. Calling the Get-CsDialInConferencingAccessNumber cmdlet without any additional
parameters always returns a collection of all the available dial-in access numbers.
-------------------------- Example 2 --------------------------

Get-CsDialInConferencingAccessNumber -Identity sip:RedmondDialIn@litwareinc.com

In Example 2, the dial-in conferencing access number with the Identity sip:RedmondDialIn@litwareinc.com is
returned. Because identities must be unique, this command will never return more than one access number.
-------------------------- Example 3 --------------------------

Get-CsDialInConferencingAccessNumber -Region "Redmond"

Example 3 uses the Region parameter to return all the dial-in conferencing access numbers associated with the
Redmond region. To do this, the Get-CsDialInConferencingAccessNumber cmdlet is called along with the Region
parameter. Specifying "Redmond" as the parameter value causes the Get-CsDialInConferencingAccessNumber
cmdlet to return all the numbers where "Redmond" appears in the list of associated regions. For example, an access
number that only listed Redmond as a region would be returned, as would an access number that listed both
Redmond and Portland.
-------------------------- Example 4 --------------------------

Get-CsDialInConferencingAccessNumber -Region $Null

Example 4 returns all the dial-in conferencing access numbers that are not associated with a region (that is, where
the Regions property is empty).
-------------------------- Example 5 --------------------------

Get-CsDialInConferencingAccessNumber -Region site:USA/Redmond

The command shown in Example 5 returns all the dial-in conferencing access numbers for the Redmond region
that have been scoped to the USA site (that is, the site with the SiteId site:USA).
-------------------------- Example 6 --------------------------

Get-CsDialInConferencingAccessNumber -Filter {DisplayName -like "*Seattle*"}

In Example 6, the Filter parameter is used in order to return a collection of all the dial-in conferencing access
numbers that include the string value "Seattle" somewhere in their DisplayName. The filter value {DisplayName -
like "Seattle"} limits the returned data to access numbers where the DisplayName includes the word "Seattle" (for
example, Seattle Access Number; Dial-In Number for Seattle; Tacoma/Seattle Access Number; etc.).
-------------------------- Example 7 --------------------------

Get-CsDialInConferencingAccessNumber -Filter {LineUri -like "tel:+1425*"}


Example 7 returns all the dial-in conferencing access numbers where the line Uri begins with tel:+1425; that
effectively returns all the access numbers in the U.S. area code 425. To do this, the Get-
CsDialInConferencingAccessNumber cmdlet is called along with the Filter parameter; the filter value {LineUri -like
"tel:+1425*"} limits the returned data to line Uris that begin with the string value "tel:+1425". To return all the
phone numbers for area code 425 or for the area code 206, use this filter value:
{LineUri -like "tel:+1425*" -or LineUri -like "tel:+1206*"}

-------------------------- Example 8 --------------------------

Get-CsDialInConferencingAccessNumber | Where-Object {$_.PrimaryLanguage -eq "it-IT"}

Example 8 returns a collection of all the dial-in conferencing access numbers where the primary language is set to
Italian. To carry out this task, the Get-CsDialInConferencingAccessNumber cmdlet is first called in order to return a
collection of all the access numbers configured for use in the organization. This collection is then piped to the
Where-Object cmdlet, which selects only those numbers where the PrimaryLanguage property is equal to Italian
("it-It").
-------------------------- Example 9 --------------------------

Get-CsDialInConferencingAccessNumber | Where-Object {$_.SecondaryLanguages -contains "fr-FR"}

The command shown in Example 9 returns all the dial-in conferencing access numbers where French is listed as
one of the secondary languages. To accomplish this task, the Get-CsDialInConferencingAccessNumber cmdlet is
first called without any parameters; that returns a complete collection of the access numbers configured for use in
the organization. This collection is then piped to the Where-Object cmdlet, which selects only those numbers where
the SecondaryLanguages property includes a listing for French (fr-FR ).

Parameters
-Credential
Enables you to run the Get-CsDialInConferencingAccessNumber cmdlet under alternate credentials; this might be
required if the account you used to log on to Windows does not have the necessary privileges required to work
with contact objects.
To use the Credential parameter you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-mcs-001) or its fully qualified domain name (for example, atl-mcs-001.litwareinc.com).
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EmptyRegion
Returns information about the dial plans that are associated with a region that is not associated with at least one
dial-in conferencing access number. For example, suppose the Bellevue dial plan is associated with the Bellevue
region, but no access numbers have been configured for the Bellevue region. The Bellevue region would thus be
considered an empty region.
This parameter cannot be used in conjunction with any other parameter.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on specific attributes for Skype for Business Server. For example,
you can limit returned data to dial-in conferencing numbers that have the string value "Redmond" in their display
name, or toll-free dial-in conferencing numbers that use the 1-800 prefix.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only access numbers that have the 1-800 prefix would look like this: {LineUri -like
"tel:+1800"}, withLineUri representing the Active Directory attribute, -like representing the comparison operator,
and "tel:+1800" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
SIP address of the dial-in conferencing access number (that is, the contact object that represents the number) to be
retrieved. You must include the "sip:" prefix when specifying the Identity; for example: -Identity
sip:RedmondDialIn@litwareinc.com.
If this parameter is not specified, then the Get-CsDialInConferencingAccessNumber cmdlet will return all the dial-
in conferencing access numbers configured for use in your organization.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False
-OU
Enables you to return access numbers from a specific Active Directory organizational unit (OU ). This includes data
from both the specified OU and any of its child OUs. For example, if the Finance OU has two child OUs,
AccountsPayable and AccountsReceivable, access number information will be returned from each of these three
OUs.
When specifying an OU, use the distinguished name of that container; for example: -OU
"OU=Finance,dc=litwareinc,dc=com".

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Region
Returns all the dial-in conferencing access numbers associated with the specified dial plan region. For example, to
return all the dial-in numbers for the Northwest region, use this syntax: -Region Northwest.
You can also return access numbers that have been scoped to a particular site (or to the global scope) by including
the scope in the parameter value. For example, to return access numbers that use the Northwest region, and that
have been scoped to the Redmond site, use this syntax: -Region site:Redmond/Northwest. Note that, when
referencing the site scope, you must use the SiteId property. You can retrieve SiteId values by using the Get-CsSite
cmdlet.
To return a list of access numbers that are not associated with a dial plan, set the Region parameter value to $Null: -
Region $Null.
Note that dial-in conferencing access numbers are only returned in order of their assigned priority if this parameter
is specified. Priority order is the same order in which the numbers appear in meeting invitations and on the dial-in
conferencing webpage. For details, see the Set-CsDialInConferencingAccessNumber cmdlet help topic.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by a command. For example, to return just seven access
numbers (regardless of how many access numbers are in your forest), simply include the ResultSize parameter and
set the parameter value to 7. Note that there is no way to guarantee which seven items will be returned. If you set
the ResultSize to 7 but you have only three access numbers in your forest, the command will return those three
numbers and then complete without error.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned.
Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The Get-CsDialInConferencingAccessNumber cmdlet accepts a string value representing the Identity of the access
number.

Outputs
Microsoft.Rtc.Management.Xds.AccessNumber

Related Links
New -CsDialInConferencingAccessNumber
Remove-CsDialInConferencingAccessNumber
Set-CsDialInConferencingAccessNumber
minutes to read • Edit Online

Get-CsDialInConferencingConfiguration
In ths Article

Retrieves information about how Skype for Business Server 2015 responds when users join or leave a dial-in
conference. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsDialInConferencingConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsDialInConferencingConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When users join (or leave) a dial-in conference, Skype for Business Server can respond in different ways. For
example, participants might be asked to record their name before they can enter the conference itself. Likewise,
administrators can decide whether they want to have Skype for Business Server announce that dial-in participants
have either left or joined a conference.
These conference "join behaviors" are managed using dial-in conferencing configuration settings; these settings can
be configured at the global scope or at the site scope. (Settings configured at the site scope take precedence over
settings configured at the global scope.) The Get-CsDialInConferencingConfiguration cmdlet enables you to
retrieve information about the dial-in conferencing configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsDialInConferencingConfiguration

Example 1 returns a collection of all the dial-in conferencing configuration settings currently in use in the
organization. Calling the Get-CsDialInConferencingConfiguration cmdlet without any additional parameters always
returns the complete collection of dial-in conferencing settings.
-------------------------- Example 2 --------------------------

Get-CsDialInConferencingConfiguration -Identity site:Redmond

Example 2 returns the dial-in conferencing configuration settings with the Identity site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsDialInConferencingConfiguration -Filter "site:*"


In Example 3, the Filter parameter is used to return all the dial-in conferencing settings that have been configured
at the site scope. The filter value "site:*" instructs the Get-CsDialInConferencingConfiguration cmdlet to return only
those settings where the Identity begins with the string value "site:". By design, any dial-conferencing settings that
have an Identity beginning with "site:" represent settings configured at the site scope.
-------------------------- Example 4 --------------------------

Get-CsDialInConferencingConfiguration | Where-Object {$_.EnableNameRecording -eq $False}

Example 4 uses the Get-CsDialInConferencingConfiguration cmdlet and the Where-Object cmdlet to return a
collection of all the dial-in conferencing configuration settings where the EnableNameRecording property is set to
False. To do this, the Get-CsDialInConferencingConfiguration cmdlet is called without any parameters in order to
return a collection of all the dial-in conferencing settings. That collection is then piped to the Where-Object cmdlet,
which picks out only those settings where the EnableNameRecording property is equal to False.

Parameters
-Filter
Provides a way for you to use wildcard characters when specifying dial-in conferencing configuration settings. For
example, to return a collection of all the configuration settings that have been applied at the site scope use this
syntax: -Filter "site:". To return all the settings that have the term "EMEA" in their Identity use this syntax: -Filter
"EMEA*". Note that the Filter parameter acts only on the Identity of the settings; you cannot filter on other dial-in
conferencing configuration properties.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the dial-in conferencing configuration settings to be retrieved. To refer to the global
settings, use this syntax: -Identity global. To refer to site settings, use syntax similar to this: -Identity site:Redmond.
You cannot use wildcards when specifying an Identity. To do that, use the Filter parameter instead.
If called without any parameters the Get-CsDialInConferencingConfiguration cmdlet returns information about all
the dial-in conferencing configuration settings in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the dial-in conferencing data from the local replica of the Central Management store rather than from the
Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfigurati
on

Related Links
New -CsDialInConferencingConfiguration
Remove-CsDialInConferencingConfiguration
Set-CsDialInConferencingConfiguration
minutes to read • Edit Online

Get-CsDialInConferencingDtmfConfiguration
In ths Article

Returns the dual-tone multifrequency (DTMF ) signaling settings used for dial-in conferencing. DTMF enables users
who dial in to a conference to control conference settings (such as muting and unmuting themselves or locking and
unlocking the conference) by using the keypad on their telephone. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsDialInConferencingDtmfConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsDialInConferencingDtmfConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server enables users to join conferences by dialing in over the telephone. Dial-in users are not
able to view video or exchange instant messages with other conference attendees, but they are able to fully
participate in the audio portion of the meeting.
In addition to being able to join a conference, users are also able to manage selected portions of that conference by
using their telephone keypad. (The specific conference settings users can and cannot manage depend on whether
or not the user is a presenter.) For example, by default users can press the 6 key on their keypad to mute or unmute
themselves. Participants can privately play the names of all the other people attending the meeting, while
presenters can do such things as mute and unmute all the meeting participants and enable/disable the
announcement that is played any time someone joins or leaves a conference.
The ability to make selections using a telephone keypad is known as dual-tone multifrequency (DTMF ) signaling: if
you have ever dialed a phone number and been instructed to do something along the order of "Press 1 for English
or press 2 for Spanish," then you have used DTMF signaling. The Get-CsDialInConferencingDtmfConfiguration
cmdlet enables you to retrieve a list of all the available DTMF commands as well as the keys used to carry out those
commands.

Examples
-------------------------- Example 1 --------------------------

Get-CsDialInConferencingDtmfConfiguration -Identity site:Redmond

The command show in Example 1 returns the DTMF settings for the Redmond site.
-------------------------- Example 2 --------------------------

Get-CsDialInConferencingDtmfConfiguration | Select-Object Identity, HelpCommand


Example 2 returns a collection of all the DTMF settings, and then, for each item in the collection, displays the value
of the key to be pressed in order to privately play a description of DTMF commands. To do this, the Get-
CsDialInConferencingDtmfConfiguration cmdlet is called in order to return a collection of all the property values
for all the DTMF settings currently in use in the organization. That collection is then piped to the Select-Object
cmdlet, which picks two properties (Identity and HelpCommand) to be displayed on the screen.
-------------------------- Example 3 --------------------------

Get-CsDialInConferencingDtmfConfiguration -Filter "site:*"

The command shown in Example 3 returns all the DTMF settings that have been configured at the site scope. This
is done by including the Filter parameter and the filter value "site:*". That filter value limits the returned data to
settings that have an Identity that begins with the characters "site:". By definition, those are settings configured at
the site scope.
-------------------------- Example 4 --------------------------

Get-CsDialInConferencingDtmfConfiguration | Where-Object {$_.AdmitAll -ne 8}

Example 4 returns all the DTMF configuration settings where the AdmitAll property is not equal to 8 (the default
value). To accomplish this task, the Get-CsDialInConferencingDtmfConfiguration cmdlet is first called without any
parameters in order to return a collection of all the DTMF settings currently in use. This collection is then piped to
the Where-Object cmdlet, which picks out only those settings where the AdmitAll property is not equal to 8.

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection (or collections) of DTMF configuration
settings. To return a collection of all the settings configured at the site scope, use this syntax: -Filter site:. To return a
collection of all the settings that have the string value "EMEA" somewhere in their Identity (the only property you
can filter for ), use this syntax: -Filter *EMEA.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of DTMF settings you want to return. To refer to the global settings,
use this syntax: -Identity global. To refer to a collection configured at the site scope, use syntax similar to this: -
Identity site:Redmond. Note that you cannot use wildcards when specifying an Identity. If you need to use
wildcards, then use the Filter parameter instead.
If this parameter is not specified, then the Get-CsDialInConferencingDtmfConfiguration cmdlet returns a collection
of all the DTMF configuration settings in use in the organization.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the DTMF configuration data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfi
guration

Related Links
New -CsDialInConferencingDtmfConfiguration
Remove-CsDialInConferencingDtmfConfiguration
Set-CsDialInConferencingDtmfConfiguration
minutes to read • Edit Online

Get-CsDialInConferencingLanguageList
In ths Article

Returns a list of languages, including regional/minority languages, supported for use with Skype for Business
Server 2015 dial-in conferences. These languages are used to relay audio messages and instructions to users
participating in a conference by using a telephone. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsDialInConferencingLanguageList [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsDialInConferencingLanguageList [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server enables users to join conferences by using a telephone; these dial-in users cannot view
video or exchange instant messages, but they can participate fully in the audio portion of the meeting. When users
connect to a conference over the phone, they first hear a welcome message and then are given instructions on how
to join the meeting. (For example, depending on how the conference has been configured, they might be asked to
state their name and then press the pound (#) key.) At various times Skype for Business Server might need to issue
additional messages or instructions; for example, if a user presses 1 on their telephone keypad the system will read
a list of all the other keypad options available to them.
Administrators can configure the language, or languages, used in a dial-in conference to relay messages and
instructions. The Get-CsDialInConferencingLanguageList cmdlet returns a list of the supported languages. The list
itself is returned using 5-character language codes (for example, ca-ES to indicate Catalan).
The supported language list is read-only. There is no way for you to add new languages to the list; that's because
there is no way for you to add a new, supported language to dial-in conferencing. Note, too that the list of available
languages is configured at the global scope; you cannot assign different lists to different sites. (However, you can
assign different languages to different dial-in conferencing access numbers.)

Examples
-------------------------- Example 1 --------------------------

(Get-CsDialInConferencingLanguageList).Languages -contains "en-US"

Example 1 demonstrates how you can query the Get-CsDialInConferencingLanguageList cmdlet to see if a
particular language appears in the list of supported languages. In this example, the Get-
CsDialInConferencingLanguageList cmdlet is called in order to return information about all the supported
languages; the Windows PowerShell operator -contains is then used to see if the language code "en-US" is
contained within that list of supported languages. If it is, the Get-CsDialInConferencingLanguageList cmdlet will
report back the value "True". If "en-US" cannot be found in the list of supported languages, then the cmdlet will
report back the value "False".
-------------------------- Example 2 --------------------------

(Get-CsDialInConferencingLanguageList).Languages

The command shown in Example 2 returns the complete list of supported languages. The
DialInConferencingLanguageList object stores this information in the Languages property. In order to display each
language on the screen, this command first uses the Get-CsDialInConferencingLanguageList cmdlet to return a
collection of all the language lists and their properties. This call to the Get-CsDialInConferencingLanguageList
cmdlet is enclosed in parentheses to ensure that Windows PowerShell carries out this operation before doing
anything else. After the information has been returned, standard "dot notation" (the object name followed by a
period followed by a property name) is used to display all the values stored in the Languages property.

Parameters
-Filter
Enables you to use wildcard characters when specifying a dial-conferencing language list. Because there is only one
such object (global), you can return the language list without using either the Filter or the Identity parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the dial-in conferencing language list to be returned. At this point in time there is only one such object:
global. Because of this, you do not need to include this parameter when calling the Get-
CsDialInConferencingLanguageList cmdlet.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the languages list from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingLanguageL
ist

Related Links
New -CsDialInConferencingAccessNumber
Set-CsDialInConferencingAccessNumber
minutes to read • Edit Online

Get-CsDialPlan
In ths Article

Returns information about the dial plans used in your organization. This cmdlet was introduced in Lync Server
2010.

Syntax
Get-CsDialPlan [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsDialPlan [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet returns information about one or more dial plans (also known as a location profiles) in an organization.
Dial plans provide information required to enable Enterprise Voice users to make telephone calls. Dial plans are
also used by the Conferencing Attendant application for dial-in conferencing. A dial plan determines such things as
which normalization rules are applied and whether a prefix must be dialed for external calls.
Note: You can use the Get-CsDialPlan cmdlet to retrieve specific information about the normalization rules of a dial
plan, but if that's the only dial plan information you need, you can also use the Get-CsVoiceNormalizationRule
cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsDialPlan

Example 1 returns a collection of all the dial plans configured for use in your organization; this is done by calling the
Get-CsDialPlan cmdlet without any additional parameters.
-------------------------- Example 2 --------------------------

Get-CsDialPlan -Identity RedmondDialPlan

In Example 2, the Identity parameter is used to limit the retrieved data to dial plans that have a per-user dial plan
with the Identity RedmondDialPlan. Because identities must be unique, this command will return only the specified
dial plan.
-------------------------- Example 3 --------------------------

Get-CsDialPlan -Identity site:Redmond


Example 3 is identical to Example 2 except that instead of retrieving a per-user dial plan, we're retrieving a dial plan
assigned to a site. We do that by specifying the value site: followed by the site name (in this case Redmond) of the
site we want to retrieve.
-------------------------- Example 4 --------------------------

Get-CsDialPlan -Filter tag:*

This example uses the Filter parameter to return a collection of all the dial plans that have been configured at the
per-user scope. (Settings configured at the per-user, or tag, scope can be directly assigned to users and groups.) The
wildcard string tag:* instructs the cmdlet to return only those dial plans that have an identity beginning with the
string value tag:, which identifies a dial plan as a per-user dial plan.
-------------------------- Example 5 --------------------------

Get-CsDialPlan | Select-Object -ExpandProperty NormalizationRules

This example displays the normalization rules used by the dial plans configured for use in your organization.
Because the NormalizationRules property consists of an array of objects, the complete set of normalization rules is
typically not displayed on screen. To see all of these rules, this sample command first uses the Get-CsDialPlan
cmdlet to retrieve a collection of all the dial plans. That collection is then piped to the Select-Object cmdlet; in turn,
the ExpandProperty parameter of the Select-Object cmdlet is used to "expand" the values found in the
NormalizationRules property. Expanding the values simply means that all the normalization rules will be listed out
individually on the screen, the same output that would be seen if the Get-CsVoiceNormalizationRule cmdlet had
been called.
-------------------------- Example 6 --------------------------

Get-CsDialPlan | Where-Object {$_.Description -match "Redmond"}

In Example 6, the Get-CsDialPlan cmdlet and the Where-Object cmdlet are used to retrieve a collection of all the
dial plans that include the word Redmond in their description. To do this, the command first uses the Get-
CsDialPlan cmdlet to retrieve all the dial plans. That collection is then piped to the Where-Object cmdlet, which
applies a filter that limits the returned data to profiles that have the word Redmond somewhere in their Description.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Performs a wildcard search that allows you to narrow down your results to only dial plans with identities that match
the given wildcard string.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier designating the scope, and for per-user scope a name, to identify the dial plan you want to
retrieve.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the dial plan information from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile

Related Links
New -CsDialPlan
Remove-CsDialPlan
Set-CsDialPlan
Grant-CsDialPlan
Test-CsDialPlan
Get-CsVoiceNormalizationRule
minutes to read • Edit Online

Get-CsEffectivePolicy
In ths Article

Returns the "effective policies" for the specified user or users. This simply means that, if a user has been a per-user
policy, the Identity of that policy will be displayed. If a user has not been assigned a per-user policy, then the Get-
CsEffectivePolicy cmdlet will indicate whether the user is managed by a service policy, a site policy, or the global
policy. This enables you to determine exactly which policy is being used to manage a given user. This cmdlet was
introduced in Lync Server 2013.

Syntax
Get-CsEffectivePolicy [-Identity] <UserIdParameter> [-Credential <PSCredential>] [-DomainController <Fqdn>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Description
Among other things, the Get-CsUser cmdlet returns information about the Microsoft Lync Server policies that are
used to govern a user's behavior. For example:
DialPlan : RedmondDialPlan
LocationPolicy : RedmondLocationPolicy
ClientPolicy :
In the preceding output, it would appear that the user is being managed by a specific dial plan and location policy,
but is not managed by a client. In truth, the user is managed by a client policy, either the global policy or a site
policy. However, the Get-CsUser cmdlet only returns information about per-user policies that have been assigned
to the user; of the user is managed by a global policy, a site policy, or a service policy, then the Get-CsUser cmdlet
returns no information.
In troubleshooting scenarios, it can been very useful to know whether a user is managed by a global policy, a site
policy, or a service policy. In cases such as that, you can use the Get-CsEffectivePolicy cmdlet to return exact
information about the policies that are used to govern a user's behavior. For the preceding user, the Get-
CsEffectivePolicy cmdlet might return information similar to this:
LocationProfile : RedmondDialPlan
LocationPolicy : RedmondLocationPolicy
ClientPolicy : Global
This output lets you know that the user is managed by the global client policy.
Note that, unlike the Get-CsUser cmdlet, the Get-CsEffectivePolicy cmdlet only returns information about policies;
it does not return additional information such as the user's phone number or Registrar pool. Note, too that there
are some differences in the terminology used in the Get-CsUser cmdlet to label policies names vs. the terminology
used by the Get-CsEffectivePolicy cmdlet. For example, the Get-CsUser cmdlet uses the name DialPlan while the
Get-CsEffectivePolicy cmdlet uses the name LocationProfile.
The functions carried out by the Get-CsEffectivePolicy cmdlet are not directly available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsEffectivePolicy - Identity "Ken Myer"

The command shown in Example 1 returns the effective policies for the user with the Active Directory display name
Ken Myer.
-------------------------- Example 2 --------------------------

"Ken Myer","Pilar Ackerman" | Get-CsEffectivePolicy

In the preceding command, effective policy information is returned for users with the display names Ken Myer and
Pilar Ackerman. Policy information for multiple users can be returned by piping multiple user Identities to the Get-
CsEffectivePolicy cmdlet.
-------------------------- Example 3 --------------------------

Get-CsUser -Filter {ConferencingPolicy -eq "RedmondConferencingPolicy"} | Get-CsEffectivePolicy

In Example 3, effective policy information is returned for all the users who have been assigned the conferencing
policy RedmondConferencingPolicy. To do this, the command first uses the Get-CsUser cmdlet to return a
collection of users who have been assigned RedmondConferencingPolicy; the Filter parameter and the filter value
{ConferencingPolicy -eq "RedmondConferencingPolicy"} limits the returned data to users who have been assigned
the RedmondConferencingPolicy per-user conferencing policy. That collection of user accounts is then piped to the
Get-CsEffectivePolicy cmdlet, which displays effective policy information for each user in the collection.
-------------------------- Example 4 --------------------------

Get-CsUser -Filter {ConferencingPolicy -eq "RedmondConferencingPolicy"} | Get-CsEffectivePolicy | Select-Object


Identity, MobilityPolicy

Example 4 is a variation of the command shown in Example 3. In this example, effective policy information is again
returned for all the users who have been assigned the conferencing policy RedmondConferencingPolicy; in this
case, however, the returned information is limited to the user Identity and mobility policy. This is done by returning
all the effective policy information and then piping that data to the Select-Object cmdlet, which, in turn, is used to
limit the displayed data to the Identity and MobilityPolicy properties.
-------------------------- Example 5 --------------------------

Get-CsUser -LdapFilter "Department=Finance" | Get-CsEffectivePolicy

In Example 5, effective policy information is displayed for all the users in the Finance department. This task is
carried out by first using the Get-CsUser cmdlet and the LdapFilter property to return a collection of user accounts;
the filter value "Department=Finance" limits those accounts to users who work in the Finance department. That
collection is then piped to the Get-CsEffectivePolicy cmdlet, which displays effective policy information for each
user in the collection.
Parameters
-Credential
Enables you to run the Get-CsEffectivePolicy cmdlet under alternate credentials. This might be required if the
account you used to log on to Windows does not have the necessary privileges required to work with user objects.
To use the Credential parameter you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve user information. To connect to a
particular domain controller, include the DomainController parameter followed by the fully qualified domain name
(FQDN ). For example:

-DomainController "atl-dc-001.litwareinc.com"

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account whose effective policy settings are being calculated. User Identities are
typically specified by using one of the following formats: 1) the user's SIP address; 2) the user's user principal name
(UPN ); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer);
and, 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by
using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless
of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7.
Note that there is no way to guarantee which seven users will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the
command will return those three users and then complete without error.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser
The Get-CsEffectivePolicy cmdlet accepts a pipelined string value representing the display name of a user account
that has been enabled for Skype for Business Server. The cmdlet also accepts pipelined instances of the Active
Directory user object.

Outputs
Microsoft.Rtc.Management.AD.Cmdlets.EffectivePolicies

Related Links
Get-CsUser
minutes to read • Edit Online

Get-CsEffectiveTenantDialPlan
In ths Article

Use the Get-CsEffectiveTenantDialPlan cmdlet to retrieve an effective tenant dial plan.

Syntax
Get-CsEffectiveTenantDialPlan [-Identity] <UserIdParameter> [-OU <OUIdParameter>] [-DomainController <Fqdn>]
[-Credential <PSCredential>] [-ResultSize <Int32>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The Get-CsEffectiveTenantDialPlan cmdlet returns information about the effective tenant dial plan in an
organization. The returned effective Tenant Dial Plan contains the Identity and the Normalization rules that are
effective for the user while using the EnterpriseVoice features. The Identity is in the form
TenantGUID_GlobalVoiceDialPlan_TenantDialPlan.

Examples
-------------------------- Example 1 --------------------------

Get-CsEffectiveTenantDialPlan -Identity Vt1_User1

This example gets the effective tenant dial plan for the Vt1_User1 organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
The Credential parameter specifies the user name and password that's used to run this command. Typically, you
use this parameter in scripts or when you need to provide different credentials that have the required permissions.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter are either the fully qualified domain name (FQDN ) or the computer name.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter is the unique identifier of the tenant dial plan to retrieve.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
The OrganizationalUnit parameter filters the results based on the object's location in Active Directory. Only objects
that exist in the specified location are returned.

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0
and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsEnhancedEmergencyServiceDisclaimer
In ths Article

Retrieves the disclaimer text that is used globally to prompt for location information for an Enhanced 9-1-1 (E9-1-
1) implementation. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsEnhancedEmergencyServiceDisclaimer [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsEnhancedEmergencyServiceDisclaimer [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
In order for an Enterprise Voice implementation to provide E9-1-1 service, locations must be mapped to ports,
subnets, switches, and wireless access points to identify the caller's location. When the caller is connecting from
outside one of these mapped points, he must enter his location manually in order for it to be received by
emergency services. This cmdlet retrieves a text string that will be displayed to users who decide not to enter their
location information. This message will be displayed only if the LocationRequired property of the user's location
policy is set to Disclaimer. (You can retrieve location policy settings by calling the Get-CsLocationPolicy cmdlet.)

Examples
-------------------------- Example 1 --------------------------

Get-CsEnhancedEmergencyServiceDisclaimer

This command retrieves the text of the enhanced emergency service disclaimer.

Parameters
-Filter
This parameter allows for wildcard searches of the Identity. However, since the only valid value for Identity is
Global, this parameter is not useful for this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This will always be Global.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the disclaimer information from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.Location.EnhancedEmergencyServiceDisclaimer

Related Links
Remove-CsEnhancedEmergencyServiceDisclaimer
Set-CsEnhancedEmergencyServiceDisclaimer
Get-CsLocationPolicy
minutes to read • Edit Online

Get-CsExternalAccessPolicy
In ths Article

Returns information about the external access policies that have been configured for use in your organization.
External access policies determine whether or not your users can: 1) communicate with users who have Session
Initiation Protocol (SIP ) accounts with a federated organization; 2) communicate with users who have SIP accounts
with a public instant messaging (IM ) provider such as Windows Live; and, 3) access Skype for Business Server over
the Internet, without having to log on to your internal network. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsExternalAccessPolicy [-Tenant <Guid>] [-Include <PolicyFilter>] [-ApplicableTo <UserIdParameter>]
[[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsExternalAccessPolicy [-Tenant <Guid>] [-Include <PolicyFilter>] [-ApplicableTo <UserIdParameter>]


[-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When you first configure Skype for Business Online your users are only allowed to exchange instant messages and
presence information among themselves: by default, they can only communicate with other people who have SIP
accounts in your Online organization or in your Active Directory Domain Services for on-premises deployments.
For on-premises deployments, users are not allowed to access Skype for Business Server over the Internet; instead,
they must be logged on to your internal network before they will be able to log on to Skype for Business Server.
That might be sufficient to meet your communication needs. If it doesn't meet your needs, you can use external
access policies to extend the ability of your users to communicate and collaborate. External access policies can grant
(or revoke) the ability of your users to do any or all of the following:

1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation
alone will not provide users with this capability. Instead, you must enable federation and then assign users an
external access policy that gives them the right to communicate with federated users.
2. Communicate with people who have SIP accounts with a public instant messaging service such as Windows Live.
3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This
enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or
other remote location.
The Get-CsExternalAccessPolicy cmdlet provides a way for you to return information about all of the external
access policies that have been configured for use in your organization.

Examples
-------------------------- EXAMPLE 1 --------------------------
Get-CsExternalAccessPolicy

Example 1 returns a collection of all the external access policies configured for use in your organization. Calling the
Get-CsExternalAccessPolicy cmdlet without any additional parameters always returns the complete collection of
external access policies.
-------------------------- EXAMPLE 2 -------------------------- (Skype for Business Online )

Get-CsExternalAccessPolicy -Identity "tag:RedmondExternalAccessPolicy"

Example 2 uses the Identity parameter to return the external access policy that has the Identity
tag:RedmondExternalAccessPolicy. Because access policy Identities must be unique, this command will never return
more than one item.
-------------------------- EXAMPLE 2 -------------------------- (Skype for Business Server 2015)

Get-CsExternalAccessPolicy -Identity site:Redmond

Example 2 uses the Identity parameter to return the external access policy that has the Identity site:Redmond.
Because access policy Identities must be unique, this command will never return more than one item.
-------------------------- Example 3 --------------------------

Get-CsExternalAccessPolicy -Filter tag:*

The command shown in Example 3 uses the Filter parameter to return all of the external access policies that have
been configured at the per-user scope; the parameter value "tag:*" limits returned data to those policies that have
an Identity that begins with the string value "tag:". By definition, any policy that has an Identity beginning with "tag:"
is a policy that has been configured at the per-user scope.
-------------------------- Example 4 --------------------------

Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True}

In Example 4, the Get-CsExternalAccessPolicy cmdlet and the Where-Object cmdlet are used to return all the
external access policies that grant users federation access. To do this, the Get-CsExternalAccessPolicy cmdlet is first
used to return a collection of all the external access policies currently in use in the organization. This collection is
then piped to the Where-Object cmdlet, which selects only those policies where the EnableFederationAccess
property is equal to True.
-------------------------- Example 5 --------------------------

Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True -and $_.EnablePublicCloudAccess


-eq $True}

The command shown in Example 5 returns the external access policies that meet two criteria: both federation
access and public cloud access are allowed. In order to perform this task, the command first uses the Get-
CsExternalAccessPolicy cmdlet to return a collection of all the access policies in use in the organization. That
collection is then piped to the Where-Object cmdlet, which picks out only those policies that meet two criteria: the
EnableFederationAccess property must be equal to True and the EnablePublicCloudAccess property must also be
equal to True. Only policies in which both EnableFederationAccess and EnablePublicCloudAccess are True will be
returned and displayed on the screen.
-------------------------- EXAMPLE 6 --------------------------

Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"

In Example 6, the ApplicableTo parameter is used to return only the policies that can be assigned to the user
"kenmyer@litwareinc.com".
NOTE: The ApplicableTo parameter can only be used with Skype for Business Online; that's because, with Skype for
Business Online, there might be policies that cannot be assigned to certain users due to licensing and/or
country/region restrictions.
NOTE: This command requires the Office 365 UsageLocation property to be configured for the user's Active
Directory user account.

Parameters
-ApplicableTo
Returns a list of the external access policies that can be assigned to the specified user. For example, to return a
collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command:
Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"

The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access
policies can be assigned to a given user. This is due to the fact that different licensing agreements and different
country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in
China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions
might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-
CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available
policies, including any policies that can't actually be assigned to a specific user.
The ApplicableTo parameter applies only to Skype for Business Online. This parameter is not intended for use with
the on-premises version of Skype for Business Server 2015.

Type: UserIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Below Content Applies To: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015
Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at
the site scope, use this Filter:
site:*

To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter:
"S*".

Note that the Filter parameter can only be applied to the policy Identity.
Below Content Applies To: Skype for Business Online
Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at
the per-user scope, use this Filter:
"tag:*"

To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter:
"tag:S*"

Note that the Filter parameter can only be applied to the policy Identity.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity assigned to the policy when it was created. External access policies can be assigned at the global,
site, or per-user scope. To refer to the global instance use this syntax: -Identity global. To refer to a policy at the site
scope, use this syntax: -Identity site:Redmond. To refer to a policy at the per-user scope, use syntax similar to this: -
Identity RedmondPolicy.
Note that wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard
search for policies, use the Filter parameter instead.
If neither the Identity nor Filter parameters are specified, then the Get-CsExternalAccessPolicy cmdlet will bring
back a collection of all the external access policies configured for use in the organization.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Include
PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly

Type: PolicyFilter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the external access policy data from the local replica of the Central Management store rather than from
the Central Management store itself.
NOTE: This parameter is not used with Skype for Business Online.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy

Related Links
Grant-CsExternalAccessPolicy
New -CsExternalAccessPolicy
Remove-CsExternalAccessPolicy
Set-CsExternalAccessPolicy
minutes to read • Edit Online

Get-CsExternalUserCommunicationPolicy
In ths Article

Returns information about one or more external user communication policies configured for your organization.

Syntax
Get-CsExternalUserCommunicationPolicy [[-Identity] <XdsIdentity>] [-Filter <String>] [-LocalStore] [-Tenant
<Guid>] [-AsJob] [<CommonParameters>]

Description
This cmdlet retrieves external user communication policy information. External user communication policies are
used to block P2P file transfer with Federated partners.

Examples
-------------------------- Example 1 ------------------------

PS C:\> Get-CsExternalUserCommunicationPolicy

This example displays all the external user communication policies that have been defined for an organization along
with the settings for each.
-------------------------- Example 2 ------------------------

PS C:\> Get-CsExternalUserCommunicationPolicy -Identity BlockExternalP2PFileTransfer

This example uses the Identity parameter to retrieve the external user communication policy settings for the policy
named BlockExternalP2PFileTransfer.
-------------------------- Example 3 ------------------------

PS C:\> Get-CsExternalUserCommunicationPolicy -Filter tag*

This example uses the Filter parameter to retrieve all the external user communication policies along with the
settings for each. All per-user external user communication policies have an Identity in the format tag:.
-------------------------- Example 4 ------------------------

PS C:\> Get-CsExternalUserCommunicationPolicy -Filter Block*

This example uses the Filter parameter to retrieve all the external user communication policies which their name
begins with the string "Block" along with the configuration for each one.
Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter accepts a wildcard string and returns all external user communication policies with identities
matching that string. For example, a Filter value of tag:* will return all external user communication policies
excluding Global policy.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the external user communication policy to be created.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
New -CsExternalUserCommunicationPolicy
Set-CsExternalUserCommunicationPolicy
Remove-CsExternalUserCommunicationPolicy
Grant-CsExternalUserCommunicationPolicy
minutes to read • Edit Online

Get-CsExUmContact
In ths Article

Retrieves one or more hosted Exchange Unified Messaging (UM ) contact objects. This cmdlet was introduced in
Lync Server 2010.

Syntax
Get-CsExUmContact [[-Identity] <UserIdParameter>] [-Filter <String>] [-LdapFilter <String>]
[-Credential <PSCredential>] [-DomainController <Fqdn>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Description
Skype for Business Server works with Exchange UM to provide several voice-related capabilities, including Auto
Attendant and Subscriber Access. When Exchange UM is provided as a hosted service (rather than on-premises),
contact objects must be created by using Windows PowerShell to apply the Auto Attendant and Subscriber Access
functionality. This cmdlet retrieves one or more of these contacts.

Examples
-------------------------- Example 1 --------------------------

Get-CsExUmContact

This example retrieves all Exchange UM contacts defined within a Skype for Business Server 2015 deployment.
-------------------------- Example 2 --------------------------

Get-CsExUmContact -Identity sip:exum1@fabrikam.com

This example retrieves the Exchange UM contact with the SIP address sip:exum1@fabrikam.com
-------------------------- Example 3 --------------------------

Get-CsExUmContact -Filter {Enabled -eq $False}

In this example, we use the Filter parameter to retrieve all Exchange UM contacts that are not enabled for Skype for
Business Server. We do this by filtering on the Enabled property to see if the value of this property is equal to (-eq)
False ($False). Contacts returned by this command will not function.
-------------------------- Example 4 --------------------------

Get-CsExUmContact -Filter {LineURI -like "tel:555*"}


This command filters on the LineURI property to retrieve all Exchange UM contacts with a LineURI beginning with
tel:555. In other words, it retrieves all contacts with a phone number that begins with 555.
-------------------------- Example 5 --------------------------

Get-CsExUmContact -OU "OU=ExUmContacts,DC=Vdomain,DC=com"

The command in this example uses the OU parameter to retrieve all Exchange UM contacts that are in the Active
Directory OU OU=ExUmContacts,DC=Vdomain,DC=com.

Parameters
-Credential
Enables you to run the cmdlet under alternate credentials; this might be required if the account you used to log on
to Windows does not have the necessary privileges required to work with contact objects.
To use the Credential parameter, you must first create a PSCredential object by calling the Get-Credential cmdlet.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-mcs-001) or its fully qualified domain name (for example, atl-mcs-001.litwareinc.com).
Full data type: Microsoft.Rtc.Management.Deploy.Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on Skype for Business Server-specific attributes. For example,
you can limit returned data to contacts that have line URIs beginning with "tel:555".
The Filter parameter uses a subset of the Windows PowerShell filtering syntax used by the Where-Object cmdlet.
For example, a filter that returns only contacts who have been enabled for Enterprise Voice would look like this:
{EnterpriseVoiceEnabled -eq $True}, with EnterpriseVoiceEnabled representing the Active Directory attribute; -eq
representing the comparison operator (equal to); and $True (a built-in Windows PowerShell variable) representing
the filter value.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the contact object you want to retrieve. Contact identities can be specified using one of four
formats: 1) the contact's SIP address; 2) the contact's user principal name (UPN ); 3) the contact's domain name and
logon name, in the form domain\logon (for example, litwareinc\exum1); and, 4) the contact's Active Directory
display name (for example, Team Auto Attendant).
Full data type: Microsoft.Rtc.Management.AD.UserIdParameter

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering "generic" Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server).
The LdapFilter parameter uses LDAP query language when creating filters.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to limit the retrieved information to a specific Active Directory organizational unit (OU ). Note that this
returns data from the specified OU and any child OUs.
When specifying an OU, use the distinguished name of that container; for example,
OU=ExUmContacts,dc=litwareinc,dc=com.

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by a command. For example, to return just seven contacts
(regardless of how many contacts are in your forest) simply include the ResultSize parameter and set the parameter
value to 7. Note that there is no way to guarantee which seven contacts will be returned. If you set the ResultSize to
7 but you have only three contacts in your forest, the command will return those three contacts, and then complete
without error.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned.
Full data type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
Accepts a pipelined string value representing the Identity of an Exchange UM contact object.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact

Related Links
New -CsExUmContact
Remove-CsExUmContact
Set-CsExUmContact
Move-CsExUmContact
minutes to read • Edit Online

Get-CsFileTransferFilterConfiguration
In ths Article

Returns the file transfer filter configurations in your organization. These configurations are used to block a user's
ability to transfer certain types of files (for example, files with a .vbs or .ps1 file extension) using a Skype for
Business Server client. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsFileTransferFilterConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsFileTransferFilterConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When sending instant messages, users can attach and send files to the other participants in the conversation. Skype
for Business Server can be configured so that files with certain extensions--typically extensions of file types that
could potentially prove harmful--are not allowed to be sent using the Skype for Business Server client.
The Get-CsFileTransferFilterConfiguration cmdlet provides a way for you to retrieve a particular collection of
settings (these settings can be configured at the global scope or at the site scope). File transfer filter configurations
include the list of file extensions that are blocked from transfers, to what degree filtering is enabled (all file transfers
are blocked or only files with the specified extensions), and whether file transfer filtering is enabled.

Examples
-------------------------- Example 1 --------------------------

Get-CsFileTransferFilterConfiguration

The command shown in Example 1 returns a collection of all the file transfer filter configurations in use in your
organization. This is the default behavior any time you call the Get-CsFileTransferFilterConfiguration cmdlet
without any additional parameters.
-------------------------- Example 2 --------------------------

Get-CsFileTransferFilterConfiguration -Identity site:Redmond

Example 2 returns a single file transfer filter configuration: the configuration that has the Identity site:Redmond.
Because identities must be unique, this command can never return more than one configuration.
-------------------------- Example 3 --------------------------
Get-CsFileTransferFilterConfiguration -Filter site:*

Example 3 uses the Filter parameter to return a collection of all the file transfer filter configurations at the site level.
The Filter value "site:*" instructs the Get-CsFileTransferFilterConfiguration cmdlet to return only those
configurations that have an Identity that begins with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsFileTransferFilterConfiguration | Where-Object {$_.Extensions -contains ".xls"}

The command shown in Example 4 returns only those file transfer filter configurations that include .xls in their list
of prohibited file extensions. To do this, the Get-CsFileTransferFilterConfiguration cmdlet is first used to return a
collection of all the configurations in use in your organization. That collection is then piped to the Where-Object
cmdlet, which applies a filter that restricts the returned data to those configurations where the Extensions property
includes (-contains) the string value ".xls".
-------------------------- Example 5 --------------------------

Get-CsFileTransferFilterConfiguration | Where-Object {$_.Enabled -eq $False}

Example 5 returns all the file transfer filter configurations that are currently disabled. To accomplish this task, the
Get-CsFileTransferFilterConfiguration cmdlet is used to return a collection of all the configurations in use in your
organization. This collection is then piped to the Where-Object cmdlet, which, in turn, selects only those
configuration where the Enabled property is equal to (-eq) False ($False).
-------------------------- Example 6 --------------------------

Get-CsFileTransferFilterConfiguration -Identity Global | Select-Object -ExpandProperty Extensions

Example 6 shows a complete list of the file extensions prohibited by the global file transfer filter configuration. The
command begins with a call to the Get-CsFileTransferFilterConfiguration cmdlet, specifying the Global
configuration. The returned information is then piped to the Select-Object cmdlet, which uses the ExpandProperty
parameter to "expand" the value of the Extensions property. That results in the complete list of file extensions being
displayed on the screen, one file extension per line.

Parameters
-Filter
Enables you to use wildcards when specifying the file transfer filter configurations to be returned. For example, to
return all the file transfer filter configurations at the site scope, use this syntax: -Filter "site:*". By design, file transfer
filter configurations that have an Identity (the only property you can filter for) that begins with the string value
"site:" were configured at the site scope.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the file transfer filter configuration you want to retrieve. To refer to the global settings, use this
syntax: -Identity global. To refer to settings configured at the site scope, use syntax similar to this: -Identity
site:Redmond. Note that you cannot use wildcard values when specifying an Identity. If you want to use wildcards,
use the Filter parameter instead.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the file transfer filter configuration from the local replica of the Central Management store, rather than
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration

Related Links
New -CsFileTransferFilterConfiguration
Remove-CsFileTransferFilterConfiguration
Set-CsFileTransferFilterConfiguration
minutes to read • Edit Online

Get-CsFIPSConfiguration
In ths Article

Returns information about the Federal Information Processing Standards (FIPS ) configuration settings currently in
use in the organization. The FIPS standards are a set of United States government security standards required for
use in computers maintained by non-military government agencies and by government contractors. This cmdlet
was introduced in Lync Server 2013.

Syntax
Get-CsFIPSConfiguration [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsFIPSConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
The Federal Information Processing Standards (FIPS ) are a series of standards and guidelines used by computers
engaged in work for the US government; for example, there are FIPS standards that govern the use of such things
as cryptography, encryption, and digital signatures. (See http://www.itl.nist.gov/fipspubs/by-num.htm
(http://www.itl.nist.gov/fipspubs/by-num.htm) for more information.) Skype for Business Server provides an option
that enables the software to use only algorithms that meet the FIPS standards. If you need to work with the United
States government (or with other entities that follow FIPS ) then you can enable FIPS compliance in Skype for
Business Server.
Keep in mind, however, that, for the on-premises version of Skype for Business Server, you have only a single,
global collection of FIPS configuration settings: FIPS compliance can only be enabled or disabled for your entire
Skype for Business Server implementation. You cannot selectively enable or disable FIPS compliance on, say, an
individual site or an individual Registrar pool. If you do enable FIPS compliance, you could potentially encounter
problems when trying to communicate with organizations that do not fully adhere to the FIPS standards.
By default, FIPS compliance is disabled in Skype for Business Server.
The functions carried out by the Get-CsFIPSConfiguration cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsFIPSConfiguration

The command shown in Example 1 returns information for all the FIPS configuration settings currently in use in
the organization. Note that there is only a single, global instance of FIPS configuration settings.
Parameters
-Filter
Enables you to use wildcard values when referencing a collection of FIPS configuration settings. Because you can
only have a single, global instance of these settings there is no reason to use the Filter parameter. However, if you
prefer you can use the following syntax to reference the global settings:
-Filter "g*"

That syntax brings back all the FIPS configuration settings that have an Identity that begins with the letter "g".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the FIPS configuration settings. Because you can only have a single, global instance of these
settings, you do not need to specify an Identity when calling the Get-CsFIPSConfiguration cmdlet. If you prefer,
however, you can use the following syntax to reference the global settings:
-Identity global

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the FIPS configuration data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose FIPS configuration
settings are to be retrieved.
For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.FIPSConfiguration.FIPSConfiguration

Related Links
New -CsFIPSConfiguration
Remove-CsFIPSConfiguration
Set-CsFIPSConfiguration
minutes to read • Edit Online

Get-CsGraphPolicy
In ths Article

Use the `Get-CsGraphPolicy` cmdlet to return information about one or more graph policies configured for your
organization. Graph policies determine whether users can pre-load content or files that are attached to an Outlook
meeting invitation into a Skype for Business Online meeting.

Syntax
Get-CsGraphPolicy [[-Identity] <XdsIdentity>] [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [-AsJob]
[<CommonParameters>]

Description
Skype for Business Online supports a Global CsGraphPolicy that is set by default to enable Outlook content pre-
load in Skype for Business Online meetings. The Global policy can't be changed by you. Use the Get-CsGraphPolicy
cmdlet to get predefined graph policies in your organization.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "Get-CsGraphPolicy"}

Examples
-------------------------- Example 1 --------------------------

Get-CsGraphPolicy

This example returns all predefined graph policies in your organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter accepts a wildcard string and returns all graph policies with identities matching that string. For
example, a Filter value of "*Enabled*" will return all policies which contain the string "Enabled".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the predefined graph policy to return.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Grant-CsGraphPolicy
minutes to read • Edit Online

Get-CsGroupPickupUserOrbit
In ths Article

Use the Get-CsGroupPickupUserOrbit cmdlet to get the group pickup orbit number for an Enterprise Voice user.

Syntax
Get-CsGroupPickupUserOrbit [-User] <String> [-Force] [<CommonParameters>]

Examples
-------------------------- Example 1 --------------------------

Get-CsGroupPickupUserOrbit -User sip:ken.myer@contoso.com

The following example gets the group pickup orbit number of a user specified by SIP address.
-------------------------- Example 2 --------------------------

Get-CsGroupPickupUserOrbit "Ken Myer"

The following example gets the group pickup orbit number by using the display name. User is a positional
parameter. The first parameter after the cmdlet is assumed to be the User parameter value.
-------------------------- Example 3 --------------------------

Get-CsUser "Ken Myer" | Get-CsGroupPickupUserOrbit

The following example gets the group pickup orbit numbers by piping the output of Get-CsUser to the Get-
CsGroupPickupUserOrbit.

Parameters
-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-User
Specifies the user whose group pickup orbit number will be retrieved. Because User is a positional parameter, the -
User syntax is not required. The first parameter after the cmdlet is assumed to be the User parameter value.
Users can be specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN );
3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4)
the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using
the user's Active Directory distinguished name.

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

Inputs
Get-CsUser

Outputs
Microsoft.Rtc.Management.Voice.Helpers.GroupPickup.DisplayGroupPickupUserOrbit
minutes to read • Edit Online

Get-CsHealthMonitoringConfiguration
In ths Article

Returns information about the health monitoring configuration settings currently in use in your organization. These
settings enable administrators to run quality assurance tests without having to supply user names and passwords
for the required test accounts. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsHealthMonitoringConfiguration [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsHealthMonitoringConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
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 Microsoft System Center Operations Manager (formerly
Microsoft Operations Manager).
Synthetic transactions can be conducted in two different ways. Many administrators will use the
CsHealthMonitoringConfiguration cmdlets to set up test accounts for each of their Registrar or Director pools.
These test accounts are a pair of user accounts that have been preconfigured for use with synthetic transactions.
(Typically these are test accounts and not accounts that belong to actual users.) When test accounts have been
configured for a pool, administrators can run a synthetic transaction against that pool without having to specify the
identities of (and supply the credentials for) the user accounts involved in the test. Instead, the synthetic transaction
will automatically use the preconfigured test accounts when performing its checks.
Alternatively, administrators can run a synthetic transaction using actual user accounts. For example, if two users
are unable to exchange instant messages, an administrator can run a synthetic transaction using the two user
accounts in question (as opposed to a pair of test accounts). If you decide to conduct a synthetic transaction using
actual user accounts you will have to supply the credentials for each user.
The Get-CsHealthMonitoringConfiguration cmdlet provides a way for you to retrieve information about the health
monitoring configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsHealthMonitoringConfiguration
Example 1 returns all the health monitoring configuration settings currently in use in your organization.
-------------------------- Example 2 --------------------------

Get-CsHealthMonitoringConfiguration -Identity atl-cs-001.litwareinc.com

The command shown in Example 2 returns a single collection of health monitoring configuration settings: the
settings that have the Identity atl-cs-001.litwareinc.com.
-------------------------- Example 3 --------------------------

Get-CsHealthMonitoringConfiguration -Filter *.litwareinc.com

Example 3 returns all the health monitoring configuration settings that have been created for the domain
litwareinc.com. To do this, the Get-CsHealthMonitoringConfiguration cmdlet is called along with the Filter
parameter; the filter value "*.litwareinc.com" ensures that only those settings that have an Identity that ends with
the string value ".litwareinc.com" will be returned.
-------------------------- Example 4 --------------------------

Get-CsHealthMonitoringConfiguration | Where-Object {$_.FirstTestUserSipUri -eq "sip:kenmyer@litwareinc.com" -or


$_.SecondTestUserSipUri -eq " sip:kenmyer@litwareinc.com"}

The command shown in Example 4 returns all the health monitoring configuration settings that include the user
with the SIP address sip:kenmyer@litwareinc.com as one of the test users. To carry out this task, the command first
calls the Get-CsHealthMonitoringConfiguration cmdlet without any additional parameters; this returns a collection
of all the health monitoring configuration settings currently in use in the organization. This collection is then piped
to the Where-Object cmdlet, which picks out only those settings where the FirstTestUserSipUri property is equal to
"sip:kenmyer@litwareinc.com" or where the SecondTestUserSipUri property is equal to
"sip:kenmyer@litwareinc.com". As a result, any collection of settings where Ken Myer's SIP address is used for
either the first or the second test user will be returned.

Parameters
-Filter
Enables you to use wildcard characters when specifying the health monitoring configuration settings to be
retrieved. For example, this syntax returns all the settings configured for the litwareinc.com domain: -Filter
"*.litwareinc.com".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the pool where the health monitoring configuration settings have been
assigned. For example: -Identity atl-cs-001.litwareinc.com.
If this parameter is not included, then the Get-CsHealthMonitoringConfiguration cmdlet will return information
about all the health monitoring configuration settings currently in use.
Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the health monitoring configuration data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.HealthMonitoringSettings

Related Links
New -CsHealthMonitoringConfiguration
Remove-CsHealthMonitoringConfiguration
Set-CsHealthMonitoringConfiguration
minutes to read • Edit Online

Get-CsHostedVoicemailPolicy
In ths Article

Retrieves a hosted voice mail policy. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsHostedVoicemailPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsHostedVoicemailPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet retrieves a policy that specifies how to route unanswered calls to a user to a hosted Exchange Unified
Messaging (UM ) service.
A user must be enabled for Exchange UM hosted voice mail for this policy to take effect. You can call the Get-
CsUser cmdlet and check the HostedVoiceMail property to determine whether a user is enabled for hosted voice
mail. (A value of True means the user is enabled.)

Examples
-------------------------- Example 1 --------------------------

Get-CsHostedVoicemailPolicy

This command returns all defined hosted voice mail policies for the Skype for Business Server 2015
implementation.
-------------------------- Example 2 --------------------------

Get-CsHostedVoicemailPolicy -Identity ExRedmond

This command returns the policy settings for the per-user hosted voice mail policy ExRedmond.
-------------------------- Example 3 --------------------------

Get-CsHostedVoicemailPolicy -Filter tag:*

This command returns the policy settings for all per-user hosted voice mail policies (policies beginning with the tag
scope).
-------------------------- Example 4 --------------------------
Get-CsHostedVoicemailPolicy -Tenant "73d355dd-ce5d-4ab9-bf49-7b822c18dd98"

This command returns the hosted voice mail policy for the Skype for Business Online tenant with the tenant ID
73d355dd-ce5d-4ab9-bf49-7b822c18dd98.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter allows you to do a wildcard search on the Identity of the hosted voice mail policy. This will retrieve
all instances of a hosted voice mail policy where the Identity matches the wildcard pattern specified in the Filter
value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier for the hosted voice mail policy you want to retrieve. The Identity includes the scope (in the
case of global), the scope and site (for a site policy, such as site:Redmond), or the policy name (for a per-user policy,
such as HVUserPolicy).

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the hosted voice mail policy from the local replica of the Central Management store, rather than the
Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose voicemail policy is to be
retrieved.
For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.HostedVoicemailPolicy

Related Links
New -CsHostedVoicemailPolicy
Remove-CsHostedVoicemailPolicy
Set-CsHostedVoicemailPolicy
Grant-CsHostedVoicemailPolicy
minutes to read • Edit Online

Get-CsHostingProvider
In ths Article

Returns information about the hosting providers configured for use in your organization. A hosting provider is a
third-party organization that provides instant messaging, presence, and related services for a domain that you
would like to federate with. Hosting providers differ from public providers (such as Yahoo!, MSN, and AOL ) in that
their services are not offered to the general public. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsHostingProvider [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsHostingProvider [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and, 3) federation between your organization and a third-party hosting provider.
A hosting provider is an organization that provides SIP communication services for other organizations; for
example, Fabrikam, Inc. might host users from Contoso, Northwind Traders, and Wingtip Toys. When you establish
a federation relationship with a hosting provider, you effectively establish federation with any organization hosted
by that provider. For example, if you federate with Fabrikam, your users will be able to exchange instant messages
and presence information with users from Contoso, Northwind Traders, and Wingtip Toys.
Hosting providers are also used in split domain scenarios. In a split domain scenario, some of your Skype for
Business Server users have accounts hosted on-premises (that is, hosted on your local implementation of Skype for
Business Server). Other users have their accounts maintained off-premises by the third-party hosting provider.
Federating with the hosting provider enables on-premises and off-premises users to communicate with one
another.
The Get-CsHostingProvider cmdlet provides a way for you to return information about all the hosting providers
that have been configured for use in your organization.
Note that you cannot federate with a hosting provider if your Edge Servers are configured to use default routing
rather than Domain Name System (DNS ) server routing.

Examples
-------------------------- Example 1 --------------------------
Get-CsHostingProvider

Example 1 returns a collection of all the hosting providers configured for use in the organization. Calling the Get-
CsHostingProvider cmdlet without any additional parameters returns the complete collection of hosting providers.
-------------------------- Example 2 --------------------------

Get-CsHostingProvider -Identity Fabrikam.com

Example 2 returns the hosting provider that has the Identity Fabrikam.com. Because Identities must be unique
among hosting providers, this command will never return more than a single item.
-------------------------- Example 3 --------------------------

Get-CsHostingProvider -Filter *.org

The command shown in Example 3 returns a collection of all the hosting providers that have an Identity that ends
with the string value ".org" (for example, fabrikam.org and contoso.org).
-------------------------- Example 4 --------------------------

Get-CsHostingProvider | Where-Object {$_.Enabled -eq $True}

In Example 4, all the hosting providers that are currently enabled for use are returned. To do this, the Get-
CsHostingProvider cmdlet is first called in order to return a collection of all the hosting providers currently
configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which picks out
only those providers where the Enabled property is equal to True.
-------------------------- Example 5 --------------------------

Get-CsHostingProvider | Where-Object {$_.Enabled -eq $True -and $_.EnabledSharedAddressSpace -eq $True}

Example 5 returns all the hosting providers that have a shared address space and that host Skype for Business
Server 2015 users; by definition, that means that the command returns all the hosting providers that are part of a
"split-domain" setup. (Split domain simply means that some of your Skype for Business Server 2015 accounts are
maintained on-premises while other accounts are maintained by a hosting provider.) To carry out this task, the
command first uses the Get-CsHostingProvider cmdlet to return a collection of all the currently configured hosting
providers. This collection is then piped to the Where-Object cmdlet, which selects only those providers that meet
two criteria: 1) the Enabled property is equal to True; and, 2) the EnabledSharedAddressSpace property is equal to
True.
-------------------------- Example 6 --------------------------

Get-CsHostingProvider | Select-Object *

The command shown in Example 6 displays all the property values for all the hosting providers configured for use
in your organization. By default, the property values for EnabledSharedAddressSpace and HostsOCSUsers are not
displayed when you run the Get-CsHostingProvider cmdlet. To see the values for these properties, the information
returned by the Get-CsHostingProvider cmdlet is piped to the Select-Object cmdlet; the wildcard character (*)
instructs the Select-Object cmdlet to display all the properties and property values for the returned items.
Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard values to return one or more hosting providers. For example, to return all the hosting
providers that have an identity that ends with the string value ".com" use this syntax: -Filter ".com". To return all the
hosting providers that have an Identity that begins with the string "Fabri" use this syntax: -Filter "Fabri".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the hosting provider to be returned. The Identity might be the fully qualified domain name
(FQDN ) of the hosting provider (for example, fabrikam.com) or perhaps the name of the company providing the
services (Fabrikam, Inc.).
If this parameter is not specified, the Get-CsHostingProvider cmdlet will return a collection of all the hosting
providers configured for use in your organization.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the hosting provider data from the local replica of the Central Management store rather than from the
Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider

Related Links
Disable-CsHostingProvider
Enable-CsHostingProvider
New -CsHostingProvider
Remove-CsHostingProvider
Set-CsHostingProvider
minutes to read • Edit Online

Get-CsHuntGroup
In ths Article

The Get-CsHuntGroup cmdlet returns the identified Call Queues.

Syntax
Get-CsHuntGroup [-PrimaryUri <System.Uri>] [<CommonParameters>]

Description
The Get-CsHuntGroup cmdlet lets you retrieve information about the Call Queues in your organization. Call Queue
output contains statistical data on the number of active calls that are in the queue.
If called without parameters, Get-CsHuntgroup returns a collection of all Call Queues configured to be used in your
organization.
The Get-CsHuntGroup cmdlet may suggest additional steps required to complete the Call Queue setup.

Examples
-------------------------- Example 1 --------------------------

Get-CsHuntGroup

This example gets all Call Queues in the organization.


-------------------------- Example 2 --------------------------

Get-CsHuntGroup -PrimaryUri "sip:hg_a82e2406b9b5474a9878e9659f32dbc3@litwareinc.com"

This example gets the Call Queue with the primary uri
"sip:hg_a82e2406b9b5474a9878e9659f32dbc3@litwareinc.com". If no Call Queue exists with the primary uri
"sip:hg_a82e2406b9b5474a9878e9659f32dbc3@litwareinc.com", then this example generates an error.

Parameters
-AsJob
This parameter is reserved for Microsoft internal use only.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassDualWrite
This parameter is reserved for Microsoft internal use only.

Type: System.Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for Microsoft internal use only.
PARAMVALUE: Fqdn

Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
This parameter is reserved for Microsoft internal use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
The PrimaryUri parameter represents the SIP address for the Call Queue. It must start with "sip:".

Type: System.Uri
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for Microsoft internal use only.
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Outputs
Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroup
minutes to read • Edit Online

Get-CsHuntGroupTenantInformation
In ths Article

The Get-CsHuntGroupTenantInformation cmdlet returns additional call queue information for the tenant.

Syntax
Get-CsHuntGroupTenantInformation [-Tenant <Guid>] [-DomainController <Fqdn>] [-Force] [-AsJob]
[<CommonParameters>]

Description
The Get-CsHuntGroupTenantInformation cmdlet returns additional call queue information for the tenant.

Examples
-------------------------- Example 1 --------------------------

Get-CsHuntGroupTenantInformation

This example returns additional call queue information for the tenant.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsHybridApplicationEndpoint
In ths Article

Returns information about one or more hybrid application endpoints in your organization along with their settings.
This cmdlet was introduced in the July 2017 cumulative update for the Lync Server 2013 and May 2017 cumulative
update for Skype Business Server 2015.

Syntax
Get-CsHybridApplicationEndpoint [-Filter <String>] [-LdapFilter <String>] [-OU <OUIdParameter>] [-
DomainController <Fqdn>] [-Credential <PSCredential>] [[-Identity] <UserIdParameter>] [-ResultSize <UInt32>]
[<CommonParameters>]

Description
This cmdlet returns information about one or more hybrid application endpoints in your organization along with
their settings. Some of this settings are SipAddress, DisplayName and LineURI.
The Get-CsHybridApplicationEndpoint cmdlet provides numerous ways for you to filter the collection of endpoints
actually returned when you run the cmdlet. For example, if you don't want to return all your Skype for Business
Server endpoints you can apply the optional parameters Filter or LdapFilter. (These parameters are mutually
exclusive: if you use Filter in a command you cannot use LdapFilter in that same command, and vice-versa.) The
Filter parameter enables you to limit the returned data to endpoints who meet the specified Skype for Business
Server criteria; for example, you might decide to return only enabled endpoints, or only endpoints with a LineURI
assigned. The LdapFilter parameter enables you to limit the returned data to users who fit other Active Directory-
based criteria.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CsHybridApplicationEndpoint

This example displays all the hybrid application endpoints that have been defined for an organization along with
the settings for each.
-------------------------- Example 2 --------------------------

PS C:\> Get-CsHybridApplicationEndpoint -Identity "CN={4f6c99fe-7999-4088-ac4d-


e88e0b3d3820},OU=Redmond,DC=litwareinc,DC=com"

This example uses the Identity parameter to retrieve the hybrid application endpoint settings for a specific endpoint.
-------------------------- Example 3 --------------------------
PS C:\> Get-CsHybridApplicationEndpoint -Filter {DisplayName -like "*bot*"}

This example uses the Filter parameter to retrieve all the hybrid application endpoints with the word "bot" in their
DisplayName attribute along with the configuration for each one.

Parameters
-Credential
Enables you to run the Get-CsHybridApplicationEndpoint cmdlet under alternate credentials. This might be
required if the account you used to log on to the Windows does not have the necessary privileges required to work
with user objects.
To use the Credential parameter you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve user information. To connect to a
particular domain controller, include the DomainController parameter followed by the fully qualified domain name
(FQDN ) (for example, atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on Skype for Business Server 2015-specific attributes. For
example, you can limit returned data to endpoints with specific word in their DisplayName attribute.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only endpoints with a value in their LineURI attribute would look like this, with
LineURI representing the Active Directory attribute, -ne representing the comparison operator (not equal to), and
$null (a built-in Windows PowerShell variable) representing the filter value:
{LineURI -ne $null}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique application Id for the endpoint you want to get.

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server 2015). For example, you can limit returned data to endpoints which work
in a specific department, or endpoints which have a specified manager or job title.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only endpoints which belongs in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L )
representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and
"Redmond" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return information about endpoints in a specific organizational unit (OU ) or container. The OU
parameter returns data from both the specified OU and any of its child OUs. For example, if the Finance OU has
two child OUs--AccountsPayable and AccountsReceivable--endpoints will be returned from each of these three
OUs.
When specifying an OU, use the distinguished name (DN ) of that container; for example: -OU
"OU=Finance,dc=litwareinc,dc=com". To return endpoints accounts from the Users container, use this syntax:
-OU "cn=Users,dc=litwareinc,dc=com"

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven endpoints
(regardless of the number of endpoints that are in your forest) include the ResultSize parameter and set the
parameter value to 7. Note that there is no way to guarantee which seven endpoints will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three endpoints in your forest, the
command will return those three endpoints, and then complete without error.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object

Related Links
New -CsHybridApplicationEndpoint
Set-CsHybridApplicationEndpoint
Remove-CsHybridApplicationEndpoint
minutes to read • Edit Online

Get-CsHybridMediationServer
In ths Article

Gets the external FQDN of an Edge server access proxy that serves as a hosting provider to a user.

Syntax
Get-CsHybridMediationServer [-Identity] <String> [-Tenant <Guid>] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
A user whose name equals to the FQDN parameter will be retrieved. The HostingProvider property of that user
will be returned and renamed as AccessProxyExternalFqdn. The returned user will act as a mediation server in
PSTN Hybrid deployment, whose sip address is sip:{MediationServerFqdn}@{SipDomain} and HostingProvider
targets to Edge server access proxy external FQDN.
If the user has licenses assigned, the warning message will be shown as guidance to ask admin remove all the
licenses for it or re-create a new user without any license and try again.

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Online )

Get-CsHybridMediationServer -Fqdn MediationServer.Contoso.com

This example gets the FQDN of a mediation server access proxy.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the hybrid public switched telephone network (PSTN ) site. For example: -Identity
"SeattlePSTN".

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example: -
Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command: Get-
CsTenant | Select-Object DisplayName, TenantID If you are using a remote session of Windows PowerShell and are
connected only to Skype for Business Online, you do not have to include the Tenant parameter. The tenant ID will
be determined by your connection and credentials. The Tenant parameter is primarily for use in a hybrid
deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Set-CsHybridMediationServer
Online Version
minutes to read • Edit Online

Get-CsHybridPSTNAppliance
In ths Article

Use the `Get-CsHybridPSTNAppliance` cmdlet to retrieve information about your Skype for Business Cloud
Connector Edition appliances.

Syntax
Get-CsHybridPSTNAppliance [-Name <String>] [-LocalStore] [[-Identity] <XdsGlobalRelativeIdentity>]
[-Tenant <Guid>] [-Filter <String>] [-SiteName <String>] [-AsJob] [<CommonParameters>]

Description
Skype for Business Cloud Connector Edition appliances are registered, retrieved, modified, and unregistered by the
CsHybridPSTNAppliance cmdlet group (Register, Get, Set, and Unregister). The Skype for Business Cloud
Connector Edition appliances can be reviewed in your hybrid configuration by using the Get-
CsTenantHybridConfiguration cmdlet. However, you can't create or modify Skype for Business Cloud Connector
Edition appliances through the CsTenantHybridConfiguration cmdlets. You must use the CsHybridPSTNAppliance
cmdlets to manage Skype for Business Cloud Connector Edition appliances.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned, run the following
command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "<CmdletName>"}

Examples
-------------------------- Example 1 --------------------------

Get-CsHybridPSTNAppliance

The command shown in Example 1 returns information for all the Skype for Business Cloud Connector Edition
appliances.
-------------------------- Example 2 --------------------------

Get-CsHybridPSTNAppliance -SiteName "SeattlePSTN"

The command shown in Example 2 returns information for all the Skype for Business Cloud Connector Edition
appliances in the given site.
-------------------------- Example 3 --------------------------

Get-CsHybridPSTNAppliance -Name "CCE1"


The command shown in Example 3 returns information for the Skype for Business Cloud Connector Edition
appliance with the given name.
-------------------------- Example 4 --------------------------

Get-CsHybridPSTNAppliance -SiteName "SeattlePSTN" -Name "CCE1"

The command shown in Example 4 returns information for the Skype for Business Cloud Connector Edition
appliance in the given site with the given name.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter accepts a wildcard string and returns all hybrid PSTN appliances with identities matching that
string. For example, a Filter value of "CCE*" will return all appliances which start with the string "CCE".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the Skype for Business Cloud Connector Edition appliance.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name of Skype for Business Cloud Connector Edition appliance.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SiteName
Name of Skype for Business Cloud Connector Edition site that the appliance belongs to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Set-CsHybridPSTNAppliance
Register-CsHybridPSTNAppliance
Unregister-CsHybridPSTNAppliance
minutes to read • Edit Online

Get-CsHybridPSTNSite
In ths Article

Use the Get-CsHybridPSTNSite cmdlet to retrieve information about your hybrid public switched telephone
network (PSTN ) sites.

Syntax
Get-CsHybridPSTNSite [-Tenant <Guid>] [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsHybridPSTNSite [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Hybrid PSTN sites are created, retrieved, modified, and deleted by the CsHybridPSTNSite cmdlet group (New, Get,
Set, and Remove .) The hybrid PSTN sites can be reviewed in your hybrid configuration by using the Get-
CsTenantHybridConfiguration cmdlet. However, you can't create or modify hybrid PSTN sites through the
CsTenantHybridConfiguration cmdlets, you must use the CsHybridPSTNSite cmdlets to manage hybrid PSTN
sites.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned, run the following
command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<CmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Get-CsHybridPSTNSite

The command shown in Example 1 returns information for all the PSTN sites.
-------------------------- Example 2 --------------------------

Get-CsHybridPSTNSite -Identity "SeattlePSTN"

The command shown in Example 2 returns information for the PSTN site with the given identity.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on (PSTN ) site specific attributes. The Filter parameter uses the
same filtering syntax that is used by the Where-Object cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the hybrid public switched telephone network (PSTN ) site. For example: -Identity
"SeattlePSTN".

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the information from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the global unique identifier (GUID ) of the Skype for Business Online tenant account on which the cmdlet
will operate. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308".
You can find the tenant ID for your Skype for Business Online tenants by running this command: Get-CsTenant |
Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will be determined by your connection and
credentials. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
HybridPstnSite
minutes to read • Edit Online

Get-CsImConfiguration
In ths Article

Use the Get-CsImConfiguration cmdlet to retrieve information about Instant Messaging (IM ) configurations. This
cmdlet was introduced in Skype for Business June 2016 Cumulative Update.

Syntax
Get-CsImConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsImConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Use the Get-CsImConfiguration cmdlet to retrieve information about Instant Messaging (IM ) configurations.

Examples
-------------------------- Example 1 --------------------------

Get-CsImConfiguration

This example returns information for all Instant Messaging (IM ) configurations in your organization.

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection of items. For instance the following usage
specifies all the site scoped IM configurations: -Filter "site:*" . Filter and Identity are mutually exclusive.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier specifying the scope and, in some cases the name, of the IM configuration. If this parameter is
omitted, all IM configurations for the organization are returned.
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Presence of this switch causes the cmdlet to retrieve information from the local replica of the Central Management
store, rather than from Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
New -CsImConfiguration
Set-CsImConfiguration
Remove-CsImConfiguration
minutes to read • Edit Online

Get-CsImFilterConfiguration
In ths Article

Returns the instant messaging (IM ) link filters configured in your organization. These filters are used to prevent
users from sending instant messages that contain hyperlinks with specific prefixes (for example, links with an http
or telnet prefix). Depending on your settings, this means that any Uniform Resource Identifier (URI) prefaced with
one of these schemes will be converted to a non-clickable hyperlink or removed altogether. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsImFilterConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsImFilterConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When sending instant messages, users can embed a URI within the text of that message to refer other participants
in the conversation to a particular web site or share. Skype for Business Server can be configured so that hyperlinks
with certain prefixes are blocked or are not active. (In other words, the participants can't simply click the link and go
to the site the URI refers to; they must copy and paste the link manually into a browser.)
The Get-CsImFilterConfiguration cmdlet retrieves all the settings for filtering URIs from instant messages. Called
by itself (with no parameters), the Get-CsImFilterConfiguration cmdlet returns all URI IM filter settings, globally
and for all sites. You can also specify an Identity to show the settings for a specific site (or the global settings).

Examples
-------------------------- Example 1 --------------------------

Get-CsImFilterConfiguration

The command shown in Example 1 returns a collection of all the IM hyperlink filters configured for use in your
organization. This is the behavior any time you call the Get-CsImFilterConfiguration cmdlet without any additional
parameters.
-------------------------- Example 2 --------------------------

Get-CsImFilterConfiguration -Identity site:Redmond

Example 2 returns settings for one IM filter: the settings that have the Identity site:Redmond. Because identities
must be unique, this command can never return more than one configuration.
-------------------------- Example 3 --------------------------
Get-CsImFilterConfiguration -Filter site:*

Example 3 uses the Filter parameter to return a collection of all the IM filters that have been configured at the site
level. The wildcard string site:* instructs the Get-CsImFilterConfiguration cmdlet to return only those IM filter
configurations that have an Identity that begins with the string value site:.
-------------------------- Example 4 --------------------------

(Get-CsImFilterConfiguration -Identity Global).Prefixes

In Example 4 the value of the global IM filter configuration's Prefixes property is "expanded" when displayed on the
screen; this simply means that the property and its values are shown in a more user-friendly and readable format.
To perform this task, the Get-CsImFilterConfiguration cmdlet is first used to retrieve the global IM filter
configuration. (Note that the call to the Get-CsImFilterConfiguration cmdlet is enclosed in parentheses. That tells
Windows PowerShell to first carry out the command enclosed in parentheses, and then continue on from there.)
After the configuration has been retrieved, the value of the Prefixes property is displayed with one prefix on each
line.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Performs a wildcard search for configurations matching a given Identity pattern. For example, returns all settings
with identities beginning with site* (all site-specific settings).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the settings you want to retrieve. This will be either global or site:<site name>, where <site
name> is the name of the site to which these settings apply, such as site:Redmond.
Full Data Type: Microsoft.Rtc.Management.Xds.XdsIdentity

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the IM filter configuration from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.ImFilterConfiguration

Related Links
New -CsImFilterConfiguration
Remove-CsImFilterConfiguration
Set-CsImFilterConfiguration
minutes to read • Edit Online

Get-CsImTranslationConfiguration
In ths Article

This cmdlet is reserved for internal Microsoft use.

Syntax
Get-CsImTranslationConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsImTranslationConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet is reserved for internal Microsoft use.

Examples
-------------------------- Example 1 --------------------------

This cmdlet is reserved for internal Microsoft use.

This cmdlet is reserved for internal Microsoft use.

Parameters
-Filter
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsIPPhonePolicy
In ths Article

Use the Get-CsIPPhonePolicy cmdlet to get all the settings of the Skype for Business Online global IP phone policy.
IP phone policies define the Skype for Business Online features that are available to users.

Syntax
Get-CsIPPhonePolicy [[-Identity] <XdsIdentity>] [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [-AsJob]
[<CommonParameters>]

Description
IP phone policies are applied each time a user accesses the system via an IP phone device. The Get-
CsIPPhonePolicy cmdlet retrieves the global IP phone policy that has been configured in your organization along
with all their settings.

Examples
-------------------------- Example 1 ------------------------

PS C:\> Get-CsIPPhonePolicy

This example returns the global IP phone policy along with all their settings.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Grant-CsIPPhonePolicy
Set-CsIPPhonePolicy
minutes to read • Edit Online

Get-CsKerberosAccountAssignment
In ths Article

Returns information about the Kerberos account assignments configured for use in the organization. This cmdlet
was introduced in Lync Server 2010.

Syntax
Get-CsKerberosAccountAssignment [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsKerberosAccountAssignment [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
In past versions of the product IIS ran under a standard user account. This had the potential to cause issues: if that
password expired you could lose your Web Services, an issue that was often difficult to diagnose. To help avoid the
issue of expiring passwords, Skype for Business Server enables you to create a computer account (for a computer
that doesn't actually exist) that can serve as the authentication principal for all the computers in a site that are
running IIS. Because these accounts use the Kerberos authentication protocol, the accounts are referred to as
Kerberos accounts, and the new authentication process is known as Kerberos web authentication. This enables you
to manage all your IIS servers by using a single account.
To run your servers under this new authentication principal, you must first create a computer account by using the
New -CsKerberosAccount cmdlet; this account is then assigned to one or more sites. After the assignment has been
made, the association between the account and the Skype for Business Server site is enabled by running the
Enable-CsTopology cmdlet. Among other things, this creates the required service principal name (SPN ) in Active
Directory Domain Services. SPNs provide a way for client applications to locate a particular service.
The Get-CsKerberosAccountAssignment cmdlet provides a way for you to return information about the Kerberos
account assignments currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsKerberosAccountAssignment

The command shown in Example 1 returns information about all the Kerberos account assignments currently in use
in the organization.
-------------------------- Example 2 --------------------------

Get-CsKerberosAccountAssignment -Identity "site:Redmond"


Example 2 returns information about a single Kerberos account assignment: the account assignment for the
Redmond site.
-------------------------- Example 3 --------------------------

Get-CsKerberosAccountAssignment -Filter "*Redmond*"

In Example 3, information is returned for all the Kerberos accounts that have been assigned to sites that have the
string value "Redmond" somewhere in their site Identity. To do this, the Filter parameter is included along with the
filter value "*Redmond".
-------------------------- Example 4 --------------------------

Get-CsKerberosAccountAssignment | Where-Object {$_.UserAccount -match "litwareinc"}

Example 4 returns information about all the Kerberos account assignments where the identity of the assigned
account includes the string value "litwareinc". To carry out this task, the command first calls the Get-
CsKerberosAccountAssignment cmdlet without any parameters; that returns a collection of all the Kerberos
accounts assignments currently in use. This collection is then piped to the Where-Object cmdlet, which picks out
only those account assignments where the identity of the account includes the string value "litwareinc". (Note that,
despite the parameter name UserAccount, the account in question is actually a computer account.)

Parameters
-Filter
Enables you to use wildcard characters when specifying the Kerberos account assignment (or assignments) to be
returned. For example, this syntax returns all the account assignments that include the string value "Europe": -Filter
"Europe".
You cannot use both the Identity and the Filter parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the site where the Kerberos account was assigned; for example: -Identity "site:Redmond". (Note
that this is the Identity of the site, not of the computer account.) You cannot use wildcards when specifying the site
identity. To employ wildcards, use the Filter parameter instead.
If neither the Identity nor the Filter parameter is included, then the Get-CsKerberosAccountAssignment cmdlet
returns all the Kerberos account assignments configured for use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LocalStore
Retrieves the Kerberos assignment data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccountAssignment

Related Links
New -CsKerberosAccountAssignment
Remove-CsKerberosAccountAssignment
Set-CsKerberosAccountAssignment
minutes to read • Edit Online

Get-CsLisCivicAddress
In ths Article

Retrieves only the address portion of one or more locations in the location configuration database for Enhanced 9-
1-1 (E9-1-1). This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsLisCivicAddress [<CommonParameters>]

Description
E9-1-1 enables those who answer emergency calls to determine the caller's geographic location without having to
ask the caller for that information. In Skype for Business Server, the location is determined based on mapping the
caller's port, subnet, switch, or wireless access point to a specific location. This cmdlet retrieves one or more of the
addresses associated with these locations.
This cmdlet differs from the Get-CsLisLocation cmdlet in that it returns only unique addresses. It does not return
the company name or a location name, it returns only address information. It also returns a flag (MSAGValid) that
specifies whether the address has been validated against the Master Street Address Guide. This flag can be
automatically updated by running the Test-CsLisCivicAddress cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsLisCivicAddress

This example retrieves all civic addresses from the location database. The Get-CsLisCivicAddress cmdlet does not
accept any parameters (other than the common Windows PowerShell parameters such as Verbose). Therefore any
call to the Get-CsLisCivicAddress cmdlet will always return all civic addresses. See Example 2 for a command that
will allow you to retrieve more specific results.
-------------------------- Example 2 --------------------------

Get-CsLisCivicAddress | Where-Object {$_.City -eq "Redmond"}

In this example, all the civic addresses in the city of Redmond are retrieved. The example begins with a call to the
Get-CsLisCivicAddress cmdlet, which retrieves a collection of all civic addresses in the location database. This
collection is then piped to the Where-Object cmdlet, which will return only those items in the collection with a City
property value equal to (-eq) Redmond.
-------------------------- Example 3 --------------------------
Get-CsLisCivicAddress | Where-Object {$_.MSAGValid -eq $true}

Example 3 retrieves all Location Information Server (LIS ) civic addresses that have been validated against the
Master Street Address Guide (MSAG ).

Inputs
None

Outputs
System.Management.Automation.PSCustomObject

Related Links
Test-CsLisCivicAddress
Get-CsLisLocation
minutes to read • Edit Online

Get-CsLisLocation
In ths Article

Retrieves one or more locations in the location configuration database for Enhanced 9-1-1 (E9-1-1). This cmdlet
was introduced in Lync Server 2010.

Syntax
Get-CsLisLocation [-Unreferenced] [<CommonParameters>]

Description
E9-1-1 enables those who answer emergency calls to determine the caller's geographic location without having to
ask the caller for that information. In Skype for Business Server the location is determined based on mapping the
caller's port, subnet, switch, or wireless access point to a specific location. This cmdlet retrieves one or more of
these locations.
This cmdlet differs from the Get-CsLisCivicAddress cmdlet in that in addition to retrieving address information, the
Get-CsLisLocation cmdlet retrieves the name of the location and the company name associated with the location.
The Get-CsLisCivicAddress cmdlet retrieves only address information.

Examples
-------------------------- Example 1 --------------------------

Get-CsLisLocation

Calling the Get-CsLisLocation cmdlet with no parameters retrieves all locations defined within the location
configuration database.
-------------------------- Example 2 --------------------------

Get-CsLisLocation -Unreferenced

The Unreferenced parameter doesn't accept a value. It's simply a switch that tells the Get-CsLisLocation cmdlet to
return only those locations that are not associated with a port, switch, subnet, or wireless access point.
-------------------------- Example 3 --------------------------

Get-CsLisLocation | Where-Object {$_.Location -ceq "NorthCampus"}

In order to retrieve specific LIS locations, you must retrieve all the locations by calling the Get-CsLisLocation
cmdlet, and then pipe that collection of locations to the Where-Object cmdlet to narrow the collection down to the
specific locations you're looking for. Example 3 does just that: it uses the Get-CsLisLocation cmdlet and the Where-
Object cmdlet to retrieve all the locations with a Location property that is equal to the string NorthCampus. (Notice
that we used the -ceq comparison operator. This operator does a case-sensitive comparison. That means that in this
case only locations with Location values of NorthCampus will be returned; northcampus, Northcampus, etc., will
not be returned.)

Parameters
-Unreferenced
Including this parameter will retrieve only the locations that were not associated with a port, subnet, switch, or
wireless access point. In other words, including this parameter retrieves all locations that either were created by
calling the Set-CsLisLocation cmdlet or that were assigned to a Location Information Server (LIS ) port, subnet,
switch, or wireless access point that no longer exists.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Management.Automation.PSCustomObject

Related Links
Remove-CsLisLocation
Set-CsLisLocation
Get-CsLisCivicAddress
minutes to read • Edit Online

Get-CsLisPort
In ths Article

Retrieves one or more ports from the location configuration database. Each port can be associated with a location,
in which case this cmdlet will also retrieve the location information of the ports. This location association is used in
an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the
caller's location. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsLisPort [<CommonParameters>]

Description
Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for
that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP ) connection, that
information must be extracted based on various connection factors. The VoIP administrator must configure a
location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on
associations between physical locations and the port through which the client is connected.
This cmdlet does not take any parameters (other than the Windows PowerShell common parameters). The cmdlet
will retrieve all instances of port to location mappings. To narrow down the information retrieved, you must pipe
the output from this cmdlet to another Windows PowerShell cmdlet such as the Where-Object cmdlet or the
Select-Object cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsLisPort

Example 1 retrieves all Location Information Server (LIS ) ports and any associated locations that have been defined
in the Skype for Business Server deployment.
-------------------------- Example 2 --------------------------

Get-CsLisPort | Where-Object {$_.City -eq "Redmond"}

This example retrieves all information for all ports that have been associated with a location in the city of Redmond.
The command begins by calling the Get-CsLisPort cmdlet to retrieve all port location associations. This collection of
port locations is piped to the Where-Object cmdlet. The Where-Object cmdlet checks the City property of each
item in the collection to determine whether the value is equal to (-eq) Redmond.

Inputs
None

Outputs
System.Management.Automation.PSCustomObject

Related Links
Remove-CsLisPort
Set-CsLisPort
minutes to read • Edit Online

Get-CsLisServiceProvider
In ths Article

Retrieves information about the web service provided by the Enhanced 9-1-1 (E9-1-1) Network Routing Provider
to validate locations. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsLisServiceProvider [<CommonParameters>]

Description
In an Enterprise Voice implementation with E9-1-1, emergency calls must first be routed through an E9-1-1
Network Routing Provider to ensure that the calls are routed to the appropriate Public Safety Answering Point
(PSAP ). (A PSAP is the agency in the United States that directs the calls to the nearest emergency services, such as
police, fire, and ambulance services.) In order to do this, the provider must have a list of locations from the
organization that it can then match against the Master Street Address Guide to ensure all locations are valid. This
cmdlet retrieves information about a provider, including the name of the provider and a URL for the web service
that the organization will use to send the locations.

Examples
-------------------------- Example 1 --------------------------

Get-CsLisServiceProvider

The Get-CsLisServiceProvider cmdlet does not have any parameters (other than the Windows PowerShell
common parameters, such as Verbose). There will never be more than one service provider for an E9-1-1
implementation, so this cmdlet will retrieve information about the web service provided by that service provider.

Inputs
None

Outputs
System.Management.Automation.PSCustomObject

Related Links
Remove-CsLisServiceProvider
Set-CsLisServiceProvider
minutes to read • Edit Online

Get-CsLisSubnet
In ths Article

Retrieves one or more subnets from the location configuration database. Each subnet can be associated with a
location, in which case this cmdlet will also retrieve the location information of the subnets. This location
association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services
operator of the caller's location. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsLisSubnet [<CommonParameters>]

Description
Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for
that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP ) connection, that
information must be extracted based on various connection factors. The VoIP administrator must configure a
location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on
associations between physical locations and the subnet through which calls are routed.
This cmdlet does not take any parameters (other than the Windows PowerShell common parameters). The cmdlet
will retrieve all instances of subnet to location mappings. To narrow down the information retrieved, you must pipe
the output from this cmdlet to another Windows PowerShell cmdlet such as the Where-Object cmdlet or the
Select-Object cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsLisSubnet

Example 1 retrieves all Location Information Server (LIS ) subnets that have been defined in the Skype for Business
Server deployment.
-------------------------- Example 2 --------------------------

Get-CsLisSubnet | Where-Object {$_.Subnet -eq "192.0.10.0"}

This example retrieves all information for the subnet with the IP address 192.0.10.0. The command begins by
calling the Get-CsLisSubnet cmdlet to retrieve all subnet location associations. This collection of subnet locations is
piped to the Where-Object cmdlet. The Where-Object cmdlet checks the Subnet property of each item in the
collection to determine whether the value is equal to (-eq) 192.0.10.0. Because the Subnet ID must be unique, this
command will return, at most, one object.
Inputs
None

Outputs
System.Management.Automation.PSCustomObject

Related Links
Remove-CsLisSubnet
Set-CsLisSubnet
minutes to read • Edit Online

Get-CsLisSwitch
In ths Article

Retrieves one or more network switches from the location configuration database. Each switch can be associated
with a location, in which case this cmdlet will also retrieve the location information of the switches. This location
association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services
operator of the caller's location. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsLisSwitch [<CommonParameters>]

Description
Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for
that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP ) connection, that
information must be extracted based on various connection factors. The VoIP administrator must configure a
location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on
associations between physical locations and the network switch through which the client is connected.
This cmdlet does not take any parameters (other than the Windows PowerShell common parameters). The cmdlet
will retrieve all instances of switch to location mappings. To narrow down the information retrieved you must pipe
the output from this cmdlet to another Windows PowerShell cmdlet such as the Where-Object cmdlet or the
Select-Object cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsLisSwitch

Example 1 retrieves all Location Information Server (LIS ) switches that have been defined in the Skype for Business
Server deployment.
-------------------------- Example 2 --------------------------

Get-CsLisSwitch | Where-Object {$_.ChassisID -eq "99-99-99-99-99-99"}

This example retrieves all information for all switches that have a ChassisID equal to 99-99-99-99-99-99. Because
ChassisIDs must be unique, this command will retrieve, at most, one switch location. The command begins by
calling the Get-CsLisSwitch cmdlet to retrieve all switch location associations. This collection of switch locations is
piped to the Where-Object cmdlet. The Where-Object cmdlet checks the ChassisID property of each item in the
collection and returns the item with the ChassisID value 99-99-99-99-99-99.
-------------------------- Example 3 --------------------------
Get-CsLisSwitch | Where-Object {$_.City -eq "Redmond"}

This example retrieves all information for all switches that have been associated with a location in the city of
Redmond. The command begins by calling the Get-CsLisSwitch cmdlet to retrieve all switch location associations.
This collection of switch locations is piped to the Where-Object cmdlet. The Where-Object cmdlet checks the City
property of each item in the collection to determine whether the value is equal to (-eq) Redmond.

Inputs
None

Outputs
System.Management.Automation.PSCustomObject

Related Links
Remove-CsLisSwitch
Set-CsLisSwitch
minutes to read • Edit Online

Get-CsLisWirelessAccessPoint
In ths Article

Retrieves one or more wireless access points (WAPs) from the location configuration database. Each WAP can be
associated with a location, in which case this cmdlet will also retrieve the location information of the WAPs. This
location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency
services operator of the caller's location. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsLisWirelessAccessPoint [<CommonParameters>]

Description
Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for
that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP ) connection, that
information must be extracted based on various connection factors. The VoIP administrator must configure a
location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on
associations between physical locations and the WAP through which the client is connected.
This cmdlet does not take any parameters (other than the Windows PowerShell common parameters). The cmdlet
will retrieve all instances of WAP to location mappings. To narrow down the information retrieved, you must pipe
the output from this cmdlet to another Windows PowerShell cmdlet such as the Where-Object cmdlet or the
Select-Object cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsLisWirelessAccessPoint

Example 1 retrieves all Location Information Server (LIS ) WAPs that have been defined in the Skype for Business
Server deployment.
-------------------------- Example 2 --------------------------

Get-CsLisWirelessAccessPoint | Where-Object {$_.BSSID -eq "99-99-99-99-99-99"}

This example retrieves all information for all WAPs that have a Basic Service Set Identifier (BSSID ) equal to 99-99-
99-99-99-99. Because BSSIDs must be unique, this command will retrieve, at most, one WAP location. The
command begins by calling the Get-CsLisWirelessAccessPoint cmdlet to retrieve all WAP location associations.
This collection of WAP locations is piped to the Where-Object cmdlet. The Where-Object cmdlet checks the BSSID
property of each item in the collection and returns the item with the BSSID value 99-99-99-99-99-99.
-------------------------- Example 3 --------------------------
Get-CsLisWirelessAccessPoint | Where-Object {$_.City -eq "Redmond"}

This example retrieves all information for all WAPs that have been associated with a location in the city of
Redmond. The command begins by calling the Get-CsLisWirelessAccessPoint cmdlet to retrieve all WAP location
associations. This collection of WAP locations is piped to the Where-Object cmdlet. The Where-Object cmdlet
checks the City property of each item in the collection to determine whether the value is equal to (-eq) Redmond.

Inputs
None

Outputs
System.Management.Automation.PSCustomObject

Related Links
Remove-CsLisWirelessAccessPoint
Set-CsLisWirelessAccessPoint
minutes to read • Edit Online

Get-CsLocationPolicy
In ths Article

Returns information about how (or if) the Enhanced 9-1-1 (E9-1-1) Location Information service has been
configured. The E9-1-1 service enables those who answer emergency calls to determine the caller's geographic
location. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsLocationPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsLocationPolicy [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
The location policy is used to apply settings that relate to E9-1-1 functionality. The location policy determines
whether a user is enabled for E9-1-1, and if so what the behavior is of an emergency call. For example, you can use
the location policy to define what number constitutes an emergency call (911 in the United States), whether
corporate security should be automatically notified, how the call should be routed, and so on. This cmdlet retrieves
one or more location policies.

Examples
-------------------------- Example 1 --------------------------

Get-CsLocationPolicy

Example 1 returns a collection of all the location policies currently in use in your organization. This is done simply
by calling the Get-CsLocationPolicy cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsLocationPolicy -Identity Reno

The command shown in Example 2 returns only those location policies that have an Identity equal to Reno. Because
identities must be unique, this command will only return, at most, one location policy.
-------------------------- Example 3 --------------------------

Get-CsLocationPolicy -Filter tag:*

Example 3 uses the Filter parameter to return all the location policies that have been configured at the per-use
scope. (Policies configured at the per-user scope can be directly assigned to users and network sites.) The wildcard
string tag:* tells the Get-CsLocationPolicy cmdlet that the returned data should be limited to those location policies
that have an Identity that begins with the string value tag:. Even though you don't need to specify the tag: prefix
when retrieving an individual policy, you can use that prefix to filter on all per-user policies.
-------------------------- Example 4 --------------------------

Get-CsLocationPolicy | Where-Object {$_.EnhancedEmergencyServicesEnabled -eq $False}

Example 4 returns a collection of all the location policies where enhanced emergency services are disabled. To do
this, the command first uses the Get-CsLocationPolicy cmdlet to return a collection of all the location policies
currently in use in the organization. That collection is then piped to the Where-Object cmdlet; in turn, the Where-
Object cmdlet applies a filter that limits the returned data to those policies where the
EnhancedEmergencyServicesEnabled property is equal to (-eq) False ($False).

Parameters
-Filter
A string containing wildcard characters that will retrieve location policies based on matching the Identity value of
the policy to the wildcard string.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the location policy you want to retrieve. To retrieve the global location policy, use a value of
Global. For a policy created at the site scope, this value will be in the form site:<site name>, where site name is the
name of a site defined in the Skype for Business Server deployment (for example, site:Redmond). For a policy
created at the per-user scope, this value will simply be the name of the policy, such as Reno.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the location policy information from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose location policies are
being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.Location.LocationPolicy

Related Links
New -CsLocationPolicy
Remove-CsLocationPolicy
Set-CsLocationPolicy
Grant-CsLocationPolicy
Test-CsLocationPolicy
minutes to read • Edit Online

Get-CsManagementConnection
In ths Article

Returns information about the management connection to the Central Management store. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsManagementConnection [-Verbose] [<CommonParameters>]

Description
Configuration data for Skype for Business Server is stored in the Central Management store; it is crucial that both
Windows PowerShell and the management replica services be able to locate this database. When you install Skype
for Business Server, a service control point is created in Active Directory Domain Services that provides location
information for this database. Typically, computers rely on this service control point in order to connect to the
Central Management store. To see the details behind this connection (that is, if you want to know which computer
the Central Management store is running on, as well information about the SQL Server connection to that Central
Management store) you can run the Get-CsManagementConnection cmdlet.
If you have used the Set-CsManagementConnection cmdlet to set up a temporary management connection for
your current instance of Windows PowerShell (for example, in order to work from the local replica), the Get-
CsManagementConnection cmdlet will report back information for that temporary connection. By comparison, the
Get-CsConfigurationStoreLocation cmdlet always returns information for the service control point in Active
Directory, regardless of where the local management connection is pointed.

Examples
-------------------------- Example 1 --------------------------

Get-CsManagementConnection

The command in Example 1 returns information about the management connection to the Central Management
store.

Parameters
-Verbose
Reports detailed activity to the screen as the cmdlet runs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Xds.ManagementConnection

Related Links
Remove-CsManagementConnection
Set-CsManagementConnection
minutes to read • Edit Online

Get-CsManagementStoreReplicationStatus
In ths Article

Returns information about the Skype for Business Server replication process; this includes information on whether
replication is currently up to date for your Skype for Business Server computers. This cmdlet was introduced in
Lync Server 2010.

Syntax
Get-CsManagementStoreReplicationStatus [[-ReplicaFqdn] <String>] [-CentralManagementStoreStatus]
[<CommonParameters>]

Description
When an administrator makes a change of some kind to Skype for Business Server (for example, when an
administrator creates a new voice policy or changes the Address Book Server configuration settings) that change is
recorded in the Central Management store. In turn, the change must then be replicated to all the computers
running Skype for Business Server services or server roles.
In order to replicate data, the Master Replicator (running on the Central Management Server) creates a snapshot of
the modified configuration data; a copy of this snapshot is then sent to each computer running Skype for Business
Server services or server roles. On those computers, a replication agent receives the snapshot and uploads the
modified data; the agent then sends the Master Replicator a message reporting the latest replication status.
The Get-CsManagementStoreReplicationStatus cmdlet enables you to verify the replication status for any (or all) of
the Skype for Business Server computers in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsManagementStoreReplicationStatus

In Example 1, the Get-CsManagementStoreReplicationStatus cmdlet is called without any parameters; that returns
the replication status (up to date or not up to date) for all Skype for Business Server computers.
-------------------------- Example 2 --------------------------

Get-CsManagementStoreReplicationStatus | Where-Object {$_.UpToDate -eq $False}

Example 2 returns a collection of all the computers where replication is not up to date. This is done by first using
the Get-CsManagementStoreReplicationStatus cmdlet to retrieve a collection containing the replication status for
all the servers. This collection is then piped to the Where-Object cmdlet, which applies a filter that limits the
returned data to computers where the UpToDate property is equal to False.
-------------------------- Example 3 --------------------------

Get-CsManagementStoreReplicationStatus -ReplicaFqdn atl-cs-001.litwareinc.com

In Example 3, returned data is limited to a single computer: atl-cs-001.litwareinc.com/


-------------------------- Example 4 --------------------------

Get-CsManagementStoreReplicationStatus | Where-Object {$_.LastUpdateCreation -lt "8/11/2018 8:00 PM"}

Example 4 returns information about the computers that were last replicated prior to 8:00 P.M. on August 11, 2018.
To do this, the Get-CsManagementStoreReplicationStatus cmdlet is first called to return replication information for
all your Skype for Business Server computers. This information is then piped to the Where-Object cmdlet, which
selects only those computers where the LastUpdateCreation property is less than 8:00 P.M. on August 11, 2018
(8/11/2018 8:00 P.M.). To return information about computers that were last replicated after 8:00 P.M. on August
11, 2018, use the -gt (greater than) operator:
Where-Object {$_.LastUpdateCreation -gt "8/11/2018 8:00 PM"}

The dates specified in this example use the U.S. English format for date-time values. Dates should be specified
using a format compatible with your Regional and Language Options.
-------------------------- Example 5 --------------------------

Get-CsManagementStoreReplicationStatus -CentralManagementStoreStatus

The command shown in Example 5 uses the CentralManagementStoreStatus parameter to return detailed
information about the current status of the Central Management store. This includes the fully qualified domains
names of the Active Master and the File Transfer Agent services as well as the date and time of the last heartbeat
detected for each of those services.

Parameters
-CentralManagementStoreStatus
Returns additional information about the current status of the Central Management store, including a list of active
replicas and deleted replicas, as well as the location of the Active Master and the File Transfer Agent services.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-ReplicaFqdn
Fully qualified domain name (FQDN ) of the computer for which the replication status is to be checked. For
example: -ReplicaFqdn "atl-cs-001.litwareinc.com".
If this parameter is not included, then replication status information for all your Skype for Business Server
computers will be returned.
Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Xds.ReplicaState or
Microsoft.Rtc.Management.Xds.CentralManagementStoreStatusResult
By default, the Get-CsManagementStoreReplicationStatus cmdlet returns instances of the
Microsoft.Rtc.Management.Xds.ReplicaState object. If the CentralManagementStoreStatus parameter is used, then
the cmdlet returns instances of the Microsoft.Rtc.Management.Xds.CentralManagementStoreStatusResult object.

Related Links
Invoke-CsManagementStoreReplication
minutes to read • Edit Online

Get-CsMcxConfiguration
In ths Article

Retrieves information about the Skype for Business Server Mobility Service configuration settings currently in use
in your organization. The Mobility Service enables users of mobile phones such as iPhones and Windows Phones
to do such things as exchange instant messages and presence information; store and retrieve voice mail internally
instead of with their wireless provider; and take advantage of Skype for Business Server capabilities such as Call via
Work and dial-out conferencing. This cmdlet was introduced in the cumulative update for Lync Server 2010:
November 2011.

Syntax
Get-CsMcxConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsMcxConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server Mobility Service extends many of the capabilities of Skype for Business Server to mobile
devices such as Apple iPhones, Windows Phone, Android phones, and Nokia phones. Among other things, users
can use these phones to exchange instant message and presence information, and to receive notifications of new
voice mails. Thanks to the push notification service (Apple Push Notification Service and Microsoft Push
Notification Service), users with iPhones or Windows Phones can receive these notifications even if Skype for
Business is running in the background. The Mobility Service also provides the opportunity for organizations to
enable Call via Work. With Call via Work, users can make a call from their mobile phone and make it appear as
though the call originated from their work phone; for example, Caller ID systems will see the user's work number
instead of his or her mobile phone number.
The Mobility Service itself is managed by using Mobility Service configuration settings that can be applied to the
global scope, the site scope, or the service scope (for the Web server service only). These settings control such
things as the maximum length of time for a Mobility Service session; whether or not the Skype for Business Server
Autodiscovery Service (which directs Mobility Service users to the appropriate Registrar pool) is available to users
who log on outside the organization's firewall; and the location of the push notification service provider. The Get-
CsMcxConfiguration cmdlet provides a way for administrators to retrieve information about all the Mobility
Service configuration settings currently in use in their organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsMcxConfiguration

The command shown in Example 1 returns information about all the Mobility Service configuration settings
currently in use in your organization.
-------------------------- Example 2 --------------------------

Get-CsMcxConfiguration -Identity "global"

In Example 2, information is returned only for the global collection of Mobility Service configuration settings.
-------------------------- Example 3 --------------------------

Get-CsMcxConfiguration -Filter "service:*"

Example 3 returns information about all the Mobility Service configuration settings assigned to the service scope.
To do this, the Filter parameter is included along with the string value "service:*". That filter value returns all the
Mobility Service configuration settings that have an Identity that begins with the string value "service:".
-------------------------- Example 4 --------------------------

Get-CsMcxConfiguration | Where-Object {$_.ExposedWebURL -eq "External"}

In Example 4, the only Mobility Service configuration settings returned are those where the ExposedWebURL
property is equal to External. To do this, the command first calls the Get-CsMcxConfiguration cmdlet without any
parameters in order to return a collection of all the Mobility Service configuration settings currently in use in the
organization. That collection is then piped to the Where-Object cmdlet, which picks out only those settings where
the ExposedWebURL property is equal to (-eq) External.
-------------------------- Example 5 --------------------------

Get-CsMcxConfiguration | Where-Object {$_.SessionExpirationInterval -lt 259200}

Example 5 returns any and all of the Mobility Service configuration settings where the SessionExpirationInterval
property is set to a value less than the default value of 259200 seconds (72 hours). This is done by first using the
Get-CsMcxConfiguration cmdlet to return a collection of all the existing Mobility Service configuration settings.
That collection is then piped to the Where-Object cmdlet, which, in turn, selects only those settings where the
SessionExpirationInterval property is less than 259200.

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection of Mobility Service configuration settings. For
example, to return a collection of all the settings configured at the site scope, use this syntax:
-Filter site:*

To return a collection of all the settings configured at the service scope, use this syntax:
-Filter service:*
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of Mobility Service configuration settings you want to return. To
refer to the global settings, use this syntax:
-Identity global

To refer to a collection configured at the site scope, use syntax similar to this:
-Identity site:Redmond

To refer to a collection configured at the service scope, use syntax like this:
-Identity service:WebServer:atl-cs-001.litwareinc.com

Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards then use the Filter
parameter instead.
If this parameter is not specified, then the Get-CsMcxConfiguration cmdlet returns a collection of all the Mobility
Service configuration settings in use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Mobility Service configuration data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WriteableConfig.Settings.McxConfiguration.McxConfiguration
minutes to read • Edit Online

Get-CsMediaConfiguration
In ths Article

Returns information regarding media settings, including the supported level of encryption, whether Siren can be
used as a voice codec by the Mediation Server in its interactions with Skype for Business Server clients, and the
maximum allowed video resolution. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsMediaConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsMediaConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet retrieves one or more collections of settings that define media interactions.

Examples
-------------------------- Example 1 --------------------------

Get-CsMediaConfiguration

Example 1 returns all the media configurations in use in your organization; this is done simply by invoking the Get-
CsMediaConfiguration cmdlet without any additional parameters.
-------------------------- Example 2 --------------------------

Get-CsMediaConfiguration -Identity site:Redmond1

Example 2 returns only the media configuration that has the Identity site:Redmond1. Because identities must be
unique, specifying an Identity ensures that you will never retrieve more than one item.
-------------------------- Example 3 --------------------------

Get-CsMediaConfiguration -Filter site:*

In Example 3, the Filter parameter is used to return all the media configurations at the site scope. The wildcard
string site:* ensures that Windows PowerShell will return only those media configurations that have identities
beginning with the string value site:.
-------------------------- Example 4 --------------------------
Get-CsMediaConfiguration | Where-Object {$_.EncryptionLevel -eq "SupportEncryption"}

In this example, the Get-CsMediaConfiguration cmdlet and the Where-Object cmdlet are used to return all the
media configurations that support (but do not require) encryption. To do this, the command first uses the Get-
CsMediaConfiguration cmdlet to retrieve all the media configurations in use in your organization. This information
is then piped to the Where-Object cmdlet, which applies a filter that restricts the returned data to those
configurations where the EncryptionLevel property is equal to (-eq) SupportEncryption.
-------------------------- Example 5 --------------------------

Get-CsMediaConfiguration -Filter *:*med*

This example retrieves all media configurations defined for sites and services with names that contain the string
"med". For example, this command will retrieve media configuration settings defined for the site medford1, the site
TwoMedfordPlace, and the service MediationServer:redmond.litwareinc.com.

Parameters
-Filter
This parameter filters the results of the Get operation based on the wildcard value passed to this parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the media configuration you want to retrieve. This identifier specifies the scope at which
this configuration is applied (global, site, or service).

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the media configuration information from the local replica of the Central Management store, rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Media.MediaSettings

Related Links
New -CsMediaConfiguration
Remove-CsMediaConfiguration
Set-CsMediaConfiguration
minutes to read • Edit Online

Get-CsMeetingConfiguration
In ths Article

The Get-CsMeetingConfiguration cmdlet enables you to return information about the meeting configuration
settings currently in use in your organization. Meeting configuration settings help dictate the type of meetings (also
called "conferences") that users can create, and determine such things as how (or even if) anonymous users and
dial-in conferencing users can join these meetings. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsMeetingConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsMeetingConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Meetings (also called "conferences") are an integral part of Skype for Business. The CsMeetingConfiguration
cmdlets enable administrators to control the type of meetings that users can create, and determine how meetings
handle anonymous users and dial-in conferencing users. For example, you can configure meetings so that anyone
dialing in over the public switched telephone network (PSTN ) is automatically admitted to the meeting.
Alternatively, you can configure meetings so that dial-in users are not automatically admitted the meeting, but are
instead routed to the meeting lobby. These dial-in users remain on hold in the lobby until a presenter admits them
to the meeting.
When used in on-premises environments, the Get-CsMeetingConfiguration cmdlet enables you to return
information about the meeting configuration setting collections currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsMeetingConfiguration

The command shown in Example 1 returns a collection of all the meeting configuration settings currently in use in
the organization.
-------------------------- Example 2 --------------------------

Get-CsMeetingConfiguration -Identity site:Redmond

In Example 2, only one collection of meeting configuration settings is returned: the settings that have the Identity
site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsMeetingConfiguration -Filter "service:*"

Example 3 returns all the meeting configuration settings that have been configured at the service scope. This is
done by including the Filter parameter and the filter value "service:*", which limits returned data to settings where
the Identity property begins with the characters "service:".
-------------------------- Example 4 --------------------------

Get-CsMeetingConfiguration | Where-Object {$_.AdmitAnonymousUsersByDefault -eq $True}

In Example 4, information is returned for all the meeting configuration settings where anonymous users are
admitted by default. To accomplish this task, the command first uses the Get-CsMeetingConfiguration cmdlet
without any parameters to return a collection of all the meeting configuration settings currently in use. That
collection is then piped to the Where-Object cmdlet, which selects only those settings where the
AdmitAnonymousUsersByDefault property is equal to True.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters in order to return a collection of meeting configuration settings. Because
each tenant is limited to a single, global collection of meeting configuration settings there is no need to use the
Filter parameter. However, this is valid syntax for the Get-CsMeetingConfiguration cmdlet:
Get-CsMeetingConfiguration " -Filter "g*"

This parameter can be used as follows when using Skype for Business Server (on-premises).
To return a collection of all the settings configured at the site scope, use this syntax: -Filter site:* To return a
collection of all the settings that have the string value "EMEA" somewhere in their Identity (the only property you
can filter on) use this syntax: -Filter *EMEA*

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the collection of meeting configuration settings to be returned. Because each tenant is limited to a single,
global collection of meeting configuration settings there is no need include this parameter when calling the Get-
CsMeetingConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant
parameter for Online environments. For example:
Get-CsMeetingConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"

This parameter can be used as follows when using Skype for Business Server (on-premises). To refer to the global
settings, use this syntax: -Identity global

To refer to a collection configured at the site scope, use syntax similar to this: -Identity site:Redmond

Settings configured at the service scope can be retrieved using syntax like this:
-Identity service:UserServer:atl-cs-001.litwareinc.com

If this parameter is not specified, then the Get-CsMeetingConfiguration cmdlet will return a collection of all the
meeting settings in use in the organization.
Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards, then include the Filter
parameter instead.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the meeting configuration data from the local replica of the Central Management store rather than from
the Central Management store itself.
This parameter is not used with Skype for Business Online.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose meeting configuration
settings are to be retrieved.
For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.MeetingConfiguration

Related Links
New -CsMeetingConfiguration
Remove-CsMeetingConfiguration
Set-CsMeetingConfiguration
minutes to read • Edit Online

Get-CsMeetingMigrationStatus
In ths Article

You use the `Get-CsMeetingMigrationStatus` cmdlet to check the status of meeting migrations.

Syntax
Get-CsMeetingMigrationStatus [[-Identity] <UserIdParameter>] [-Confirm] [-EndTime <DateTime>] [-StartTime
<DateTime>]
[-SummaryOnly] [-Tenant <Guid>] [-WhatIf] [-AsJob] [-State <StateType>] [<CommonParameters>]

Description
Meeting Migration Service (MMS ) is a Skype for Business service that runs in the background and automatically
updates Skype for Business and Microsoft Teams meetings for users. MMS is designed to eliminate the need for
users to run the Meeting Migration Tool to update their Skype for Business and Microsoft Teams meetings.
You can use the Get-CsMeetingMigrationStatus cmdlet to check the status of meeting migrations.

Examples
-------------------------- Example 1 --------------------------

Get-CsMeetingMigrationStatus -SummaryOnly

This example is used to get a summary status of all MMS migrations.


-------------------------- Example 2 --------------------------

Get-CsMeetingMigrationStatus -UserId "ashaw@contoso.com"

This example get the meeting migration status for user ashaw@contoso.com.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EndTime
Specifies the end date of the date range.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon
name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name
(for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished
name.

Type: UserIdParameter
Required: False
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartTime
Specifies the start date of the date range.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-State
With this parameter you can filter by migration state. Possible values are:
Pending
InProgress
Failed
Succeeded

Type: StateType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SummaryOnly
Specified that you want a summary status of MMS migrations returned.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Get-CsTenantMigrationConfiguration
Get-CsOnlineDialInConferencingTenantSettings
Start-CsExMeetingMigration
minutes to read • Edit Online

Get-CsMeetingRoom
In ths Article

Returns information about all the Skype for Business meeting rooms configured for use in the organization. A
meeting room is a conferencing device designed to address video conferencing and collaboration scenarios in small
conference rooms. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsMeetingRoom [[-Identity] <UserIdParameter>] [-Credential <PSCredential>] [-DomainController <Fqdn>]
[-Filter <String>] [-LdapFilter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [-AsJob]
[<CommonParameters>]

Description
In Skype for Business, meeting rooms are self-contained computer appliances that are installed in conference
rooms and supply advanced meeting capabilities such as:
One touch meeting join experience
Multi-view video gallery
Touch-enabled white-boarding on the front of room screen
Calendar integration to provide access to scheduled meetings
Content sharing and switching
In order to manage these new endpoint devices you must, among other things, create and enable an Exchange
resource mailbox account for the device, then enable that resource account for Skype for Business. Note that, for
Skype for Business, there are no cmdlets for creating or removing meeting rooms. Instead, you use the Enable-
CsMeetingRoom cmdlet to enable meeting rooms and the Disable-CsMeetingRoom cmdlet to disable meeting
rooms. The resource account must already exist in order for you to enable the meeting room, and disabling a
meeting room only removes that room from your collection of meeting rooms; it does not delete the resource
mailbox account.
The functions carried out by the Get-CsMeetingRoom cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsMeetingRoom

The command shown in Example 1 returns information about all the meeting rooms configured for use in your
organization.
-------------------------- Example 2 --------------------------
Get-CsMeetingRoom -Identity "sip:RedmondMeetingRoom@litwareinc.com"

Example 2 returns information for a single meeting room: the system with the SIP address
sip:RedmondMeetingRoom@litwareinc.com.
-------------------------- Example 3 --------------------------

Get-CsMeetingRoom -Filter {VoicePolicy -eq "RedmondVoicePolicy"}

The command shown in Example 3 returns information for all the meeting rooms that have been assigned the per-
user voice policy RedmondVoicePolicy. To do this, the command includes the Filter parameter and the filter value
{VoicePolicy -eq "RedmondVoicePolicy"}. That filter value limits the returned data to meeting rooms where the
VoicePolicy property is equal to (-eq) RedmondVoicePolicy.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
Enables you to run the Get-CsMeetingRoom cmdlet under alternate credentials. This might be required if the
account you used to log on to Windows does not have the necessary privileges required to work with contact
objects.
To use the Credential parameter, you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve meeting room information. To
connect to a particular domain controller, include the DomainController parameter followed by the computer name
(for example, atl-dc-001) or its fully qualified domain name (FQDN ) (for example, atl-dc-001.litwareinc.com).
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on Skype for Business-specific attributes. For example, you can
limit returned data to meeting rooms that have been assigned a specific voice policy, or rooms that have not been
assigned a specific voice policy.
The Filter parameter uses much the same Windows PowerShell filtering syntax that is used by the Where-Object
cmdlet. For example, a filter that returns only rooms that have been assigned the voice policy RedmondVoicePolicy
would look like this:
{VoicePolicy -eq "RedmondVoicePolicy"}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the meeting room to be retrieved. Meeting room Identities are typically specified using one
of four formats: 1) the room's SIP address; 2) the room's user principal name (UPN ); 3) the room's domain name
and logon name, in the form domain\logon (for example, litwareinc\room14); and, 4) the room's Active Directory
display name (for example, Room 14).
You can also reference a room account by using the room's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the room Identity. For example, the
Identity "Redmond*" returns all the rooms that have a display name that includes the string value "Redmond".

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business). For example, you can limit returned data to meeting rooms belonging to a
specific department.The LdapFilter parameter uses the LDAP query language when creating filters. For example, a
filter that returns only meeting rooms found in the city of Redmond would look like this:
-LdapFilter "l=Redmond"

In that syntax, "l" (a lowercase L ) represents the Active Directory attribute (locality); "=" represents the comparison
operator (equal to); and "Redmond" represents the filter value.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return information about meeting rooms in a specific organizational unit (OU ) or container. The OU
parameter returns data from both the specified OU and any of its child OUs. For example, if the Finance OU has
two child OUs -- AccountsPayable and AccountsReceivable -- meeting rooms will be returned from each of these
three OUs.
When specifying an OU, use the distinguished name (DN ) of that container; for example:
-OU "OU=MeetingRooms,dc=litwareinc,dc=com"

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Below Content Applies To: Lync Server 2013, Skype for Business Server 2015
Enables you to limit the number of records returned by the cmdlet. For example, to return seven meeting rooms
(regardless of the number of meeting rooms that are in your forest) include the ResultSize parameter and set the
parameter value to 7. Note that there is no way to guarantee which seven meeting rooms will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three meeting rooms in your
forest, the command will return those three meeting rooms, and then complete without error.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter or String
The Get-CsMeetingRoom cmdlet accepts a pipelined string value representing the Identity of a user account that
has been enabled as a Skype for Business meeting room.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADMeetingRoom

Related Links
Disable-CsMeetingRoom
Enable-CsMeetingRoom
Move-CsMeetingRoom
Set-CsMeetingRoom
minutes to read • Edit Online

Get-CsMobilityPolicy
In ths Article

Retrieves information about the mobility policies currently in use in an organization. Mobility policies determine
whether or not a user can use Skype for Business Mobile. These policies also manage a user's ability to employ Call
via Work, a feature that enables users to make and receive phone calls on their mobile phone by using their work
phone number instead of their mobile phone number. Mobility policies can also be used to require Wi-Fi
connections when making or receiving calls. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsMobilityPolicy [-Tenant <Guid>] [-Include <PolicyFilter>] [-ApplicableTo <UserIdParameter>]
[[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsMobilityPolicy [-Tenant <Guid>] [-Include <PolicyFilter>] [-ApplicableTo <UserIdParameter>]


[-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Mobile is a client application that enables users to run Skype for Business on their mobile
phones. Call via Work provides a way for users to make calls on their mobile phone and yet have it appear as
though the call originated from their work phone number instead of their mobile phone number. Users who have
been enabled for Call via Work can achieve this either by dialing directly from their mobile phone or by using the
dial-out conferencing option. With dial-out conferencing, a user effectively asks the Skype for Business Server 2015
Mobility Service server to make a call for them. The server will set up the call, and then call the user back on their
mobile phone. After the user has answered, the server will then dial the party being called. Both of these
capabilities can be managed using mobility policies.
With Skype for Business Server 2015, mobile devices can make or receive phone calls by using either the standard
cellular phone network. or by using Wi-Fi connections. Mobility policies can be used to require Wi-Fi connections
and to prevent calls over the cellular network.
Mobility policies can be configured at the global, site, or the per-user scope, and information about those policies
can be retrieved by using the Get-CsMobilityPolicy cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsMobilityPolicy

The command shown in Example 1 returns information about all the mobility policies configured for use in your
organization.
-------------------------- Example 2 --------------------------
Get-CsMobilityPolicy -Identity "site:Redmond"

Example 2 returns information about a single mobility policy: the policy with the Identity site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsMobilityPolicy -Filter "tag:*"

In Example 3, information is returned for all of your per-user mobility policies. To do this, the Filter parameter is
included along with the filter value "tag:*"; this returns any policy that has an Identity that begins with the string
value "tag:". By definition, any policy that has an identity beginning with that string value is a per-user policy.
-------------------------- Example 4 --------------------------

Get-CsMobilityPolicy | Where-Object {$_.EnableOutsideVoice -eq $False}

The command shown in Example 4 limits the returned data to mobility policies where Call via Work has been
disabled. To carry out this task, the command first calls the Get-CsMobilityPolicy cmdlet without any parameters;
that returns a collection of all the mobility policies configured for use in the organization. This collection is then
piped to the Where-Object cmdlet, which picks out only those policies where the EnableOutsideVoice property is
equal to (-eq) False.

Parameters
-ApplicableTo
{{Fill ApplicableTo Description}}

Type: UserIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to
return all the policies configured at the site scope use this syntax:
-Filter "site:*"

To return a collection of all the per-user policies, use this syntax:


-Filter "tag:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the mobility policy to be returned. To refer to the global policy, use this syntax:
-Identity global

To refer to a site policy, use syntax similar to this:


-Identity site:Redmond

To refer to a per-user policy, use syntax similar to this:


-Identity SalesDepartmentPolicy

If this parameter is not specified, then the Get-CsMobilityPolicy cmdlet returns a collection of all the mobility
policies in use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Include
{{Fill Include Description}}

Type: PolicyFilter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the mobility policy data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WriteableConfig.Policy.Mobility.Mobility
minutes to read • Edit Online

Get-CsNetworkBandwidthPolicyProfile
In ths Article

Retrieves one or more network bandwidth policy profiles. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsNetworkBandwidthPolicyProfile [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsNetworkBandwidthPolicyProfile [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
As part of call admission control (CAC ), a bandwidth policy is used to define bandwidth limitations for certain
modalities. (In Skype for Business Server, only audio and video modalities can be assigned bandwidth limitations.)
This cmdlet retrieves one or more container profiles for these policies.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkBandwidthPolicyProfile

Calling the Get-CsNetworkBandwidthPolicyProfile cmdlet without any parameters will retrieve all bandwidth policy
profiles defined within the Skype for Business Server deployment.
-------------------------- Example 2 --------------------------

Get-CsNetworkBandwidthPolicyProfile -Identity LowBWProfile

This example retrieves the bandwidth policy profile with the Identity LowBWProfile. Because identities must be
unique this will return, at most, one profile.
-------------------------- Example 3 --------------------------

Get-CsNetworkBandwidthPolicyProfile -Filter *50MB*

In this example we use the Filter parameter to specify one or more profiles to retrieve based on a wildcard string.
We've used the string 50MB, which indicates that we want to retrieve all the bandwidth policy profiles with Identity
values that contain the string 50MB anywhere within the value. For example, this would retrieve profiles with
identities such as "BW profile for 50MB links", "50MB audio limit", and "video limits of 50MB".
Parameters
-Filter
A string containing wildcards that is used to retrieve bandwidth policy profiles that have Identity values that match
the wildcard pattern.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string value that uniquely identifies the bandwidth policy profile you want to retrieve. Specifying an Identity will
retrieve, at most, one profile.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the network bandwidth policy profile from the local replica of the Central Management store, rather than
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType

Related Links
New -CsNetworkBandwidthPolicyProfile
Remove-CsNetworkBandwidthPolicyProfile
Set-CsNetworkBandwidthPolicyProfile
minutes to read • Edit Online

Get-CsNetworkConfiguration
In ths Article

Retrieves global settings for call admission control (CAC ), Enhanced 9-1-1 (E9-1-1), and media bypass. This cmdlet
was introduced in Lync Server 2010.

Syntax
Get-CsNetworkConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsNetworkConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The network configuration object contains all the global settings for media bypass and for an entire CAC
configuration within a Skype for Business Server deployment, including whether or not that configuration has been
enabled. You can use this cmdlet to retrieve these configurations and settings. However, other than
EnableBandwidthPolicyCheck and MediaBypassSettings, it's recommended that you use cmdlets specific to the
object type for retrieving the CAC configuration settings. For example, to retrieve the network regions, it will usually
be easier to call the Get-CsNetworkRegion cmdlet than to call the Get-CsNetworkConfiguration cmdlet and then
retrieve the NetworkRegions property of that configuration.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkConfiguration

This example retrieves the network configuration settings. These settings are defined only at the global scope, so
only one item will be returned.
-------------------------- Example 2 --------------------------

(Get-CsNetworkConfiguration).MediaBypassSettings

Only one set of media bypass settings exists, which is applied globally. These settings are stored as part of the
overall network configuration. This command first retrieves that configuration by calling the Get-
CsNetworkConfiguration cmdlet, and then retrieves the MediaBypassSettings property of the configuration.

Parameters
-AsJob
{{Fill AsJob Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Because there will only ever be one network configuration, you do not need this parameter for this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This will always be Global.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the network configuration from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkConfigurationSettings

Related Links
Remove-CsNetworkConfiguration
Set-CsNetworkConfiguration
Get-CsNetworkSite
Get-CsNetworkRegionLink
Get-CsNetworkInterSitePolicy
Get-CsNetworkInterRegionRoute
Get-CsNetworkRegion
Get-CsNetworkSubnet
Get-CsNetworkBandwidthPolicyProfile
minutes to read • Edit Online

Get-CsNetworkInterface
In ths Article

Returns information about the network interfaces in use on computers running Skype for Business Server services
or server roles. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsNetworkInterface [[-Identity] <NetworkInterfaceIdentity>] [-ComputerFqdn <Fqdn>] [<CommonParameters>]

Get-CsNetworkInterface [-Filter <String>] [-ComputerFqdn <Fqdn>] [<CommonParameters>]

Description
In order for information to be transmitted from one computer to another, computers need network interfaces:
connections between a computer and the network. Computers running Skype for Business Server services or
server roles must have at least one network interface; otherwise they will not be able to communicate with other
computers. However, these computers can also have multiple network interfaces; for example, an Edge Server
might have one interface for connecting to the internal network and a second interface for connecting to the
Internet. The Get-CsNetworkInterface cmdlet provides a way for administrators to return information about the
network interfaces currently in use on computers running Skype for Business Server services or server roles.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkInterface

Example 1 returns information for all the network interfaces configured for use in the organization.
-------------------------- Example 2 --------------------------

Get-CsNetworkInterface -Identity atl-cs-001.litwareinc.com/Primary/1

The command shown in Example 2 returns information about a single network interface: the interface that has the
Identity atl-cs-001.litwareinc.com.com/Primary/1.
-------------------------- Example 3 --------------------------

Get-CsNetworkInterface -Filter "*.litwareinc.com*"

In Example 3, information is returned for all the network interfaces in the domain litwareinc.com. To do this, the
Filter parameter is included, along with the filter value ".litwareinc.com". This filter value limits the returned data to
interfaces that have an Identity that includes the string value "litwareinc.com".
-------------------------- Example 4 --------------------------

Get-CsNetworkInterface | Where-Object {$_.IPAddress -eq "192.168.0.240"}

Example 4 returns information about all the network interfaces configured for the IP address 192.168.0.240. To do
this, the command first calls the Get-CsNetworkInterface cmdlet without any parameters; this returns a collection
of all the network interfaces configured for use in the organization. That collection is then piped to the Where-
Object cmdlet, which picks out only those interfaces where the IPAddress property is equal to 192.168.0.240.
-------------------------- Example 5 --------------------------

Get-CsNetworkInterface | Where-Object {$_.IPAddress -like "192.168.0.*"}

The command shown in Example 5 is a variation of the command shown in Example 4; in this case, however,
information is returned for all the network interfaces configured for the subnet "192.168.0.*". This is done by
retrieving a collection of all the network interfaces, piping that collection to the Where-Object cmdlet, and then
picking out only those interfaces where IPAddress starts with the string value "192.168.0.".
-------------------------- Example 6 --------------------------

Get-CsNetworkInterface | Where-Object {$_.Interface -eq "External"}

Example 6 returns all the network interfaces that have been configured for external access. To do this, the Get-
CsNetworkInterface cmdlet is first called without any parameters; this returns a collection of all the network
interfaces currently in use. This collection is then piped to the Where-Object cmdlet, which selects only those items
where the Interface property is equal to External.

Parameters
-ComputerFqdn
FQDN of the computer for which network interface information is to be returned. For example, to return network
interface information for the computer atl-cs-001.litwareinc.com (and only for that computer) use this syntax:
-ComputerFqdn atl-cs-001.litwareinc.com

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcards when specifying the network interface (or interfaces) to be returned. For example, this
syntax returns information about the Primary network interface used on all of your computers running a Skype for
Business Server service or server role:
-Filter "*/Primary/*"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the network interface to be returned. A network interface Identity consists of three parts:
The fully qualified domain name (FQDN ) of the computer itself (for example, atl-cs-001.litwareinc.com).
The network interface "side" (Primary; Internal; External; public switched telephone network).
The side indicates the type of traffic the port is used for.
The network interface number for that particular side.
For example:
-Identity "atl-cs-001.litwareinc.com/Primary/1"

The Identity, ComputerFqdn, and Filter parameters must be used separately; for example, you cannot run a
command that uses both ComputerFqdn and Identity. In addition, you cannot use wildcard characters when
specifying the Identity. To employ wildcards, use the Filter parameter.
If neither the Identity, ComputerFqdn, nor Filter parameters are used, then the Get-CsNetworkInterface cmdlet
returns information about all the network interfaces currently in use on your computers running a Skype for
Business Server service or server role.

Type: NetworkInterfaceIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Xds.DisplayNetworkInterface

Related Links
Get-CsComputer
minutes to read • Edit Online

Get-CsNetworkInterRegionRoute
In ths Article

Retrieves one or more routes that connect network regions within a call admission control (CAC ) configuration.
This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsNetworkInterRegionRoute [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsNetworkInterRegionRoute [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Every region within a CAC configuration must have some way to access every other region. While region links set
bandwidth limitations on the connections between regions and also represent the physical links, a route determines
which linked path the connection will traverse from one region to another. This cmdlet retrieves information about
these route associations.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkInterRegionRoute -Identity NA_APAC_Route

Example 1 retrieves the route with the Identity NA_APAC_Route.


-------------------------- Example 2 --------------------------

Get-CsNetworkInterRegionRoute -Filter *APAC*

In Example 2, we use the Filter parameter to retrieve all routes that contain the string APAC anywhere within the
Identity.
-------------------------- Example 3 --------------------------

Get-CsNetworkInterRegionRoute | Where-Object {$_.NetworkRegionLinks -eq "NA_EMEA"}

This example retrieves all region routes that use the network region link NA_EMEA. The command begins by
calling the Get-CsNetworkInterRegionRoute cmdlet. Calling this cmdlet with no parameters retrieves all routes
defined with the CAC configuration. This collection of routes is then piped to the Where-Object cmdlet. The Where-
Object cmdlet takes the collection and retrieves all items in the collection that have the value NA_EMEA within their
NetworkRegionLinks list.
-------------------------- Example 4 --------------------------

Get-CsNetworkInterRegionRoute | Where-Object {$_.NetworkRegionID1 -eq "NorthAmerica" -or $_.NetworkRegionID2 -


eq "NorthAmerica"}

Example 4 retrieves all region routes that include the NorthAmerica region. The first part of the command is a call
to the Get-CsNetworkInterRegionRoute cmdlet. This cmdlet, called with no parameters, will retrieve all region
routes. Next, this collection of routes is piped to the Where-Object cmdlet. The Where-Object cmdlet will narrow
the collection down to only those routes that have NorthAmerica defined as one of the regions in the route. It does
this by checking to see if the route has a NetworkRegionID1 value equal to (-eq) NorthAmerica, or (-or) a
NetworkRegionID2 value equal to NorthAmerica.

Parameters
-Filter
A string that allows you to retrieve routes based on matching the Identity values to the wildcard string passed as a
value to this parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier for the network region route you want to retrieve. Network region routes are created only at
the global scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique
name that identifies a particular route.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the network interregion route information from the local replica of the Central Management store, rather
than the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType

Related Links
New -CsNetworkInterRegionRoute
Remove-CsNetworkInterRegionRoute
Set-CsNetworkInterRegionRoute
minutes to read • Edit Online

Get-CsNetworkInterSitePolicy
In ths Article

Retrieves one or more network inter-site policies, which define bandwidth limitations between sites that are directly
linked within a call admission control (CAC ) configuration. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsNetworkInterSitePolicy [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsNetworkInterSitePolicy [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When network sites share a direct link, bandwidth limitations for audio and video connections can be defined
between those two sites. This cmdlet retrieves one or more network site policies that associate bandwidth limitation
settings with directly connected sites.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkInterSitePolicy

Calling the Get-CsNetworkInterSitePolicy cmdlet with no parameters retrieves all network site policies defined
between two directly linked network sites.
-------------------------- Example 2 -------------------------- (Lync Server 2010)

Get-CsNetworkInterSitePolicy -Identity Reno_Portland

This example retrieves the network site policy with the Identity Reno_Portland.
-------------------------- Example 3 --------------------------

Get-CsNetworkInterSitePolicy -Filter *Reno*

Example 3 retrieves all network site policies that have the string Reno anywhere within the Identity value. The
wildcard characters () within the value passed to the Filter parameter signify "any character or set of characters." In
other words, the string *Reno will match Identity values that begin with any character or characters, followed by the
string Reno, followed by any character or characters.
-------------------------- Example 4 --------------------------
Get-CsNetworkInterSitePolicy | Where-Object {$_.BWPolicyProfileID -eq $null}

This example retrieves all network site policies that do not have a bandwidth policy profile assigned. The command
begins by calling the Get-CsNetworkInterSitePolicy cmdlet, which, as we saw in Example 1, retrieves a collection of
all network site policies. This collection is then piped to the Where-Object cmdlet. The Where-Object cmdlet
narrows the collection down to only those site policies that don't have a bandwidth policy profile assigned. It does
this by comparing to see if the BWPolicyProfileID property of each site policy is equal to (-eq) Null ($null).

Parameters
-Filter
A string containing wildcard characters that will search for policies with Identity values matching the wildcard
string.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the network site policy you want to retrieve. Network site policies are created only at the
global scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique name
that identifies that policy.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the network inter-site policy information from the local replica of the Central Management store, rather
than the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType
Related Links
New -CsNetworkInterSitePolicy
Remove-CsNetworkInterSitePolicy
Set-CsNetworkInterSitePolicy
minutes to read • Edit Online

Get-CsNetworkRegion
In ths Article

Retrieves one or more network regions. Network regions represent network hubs or backbones in an enterprise
network. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsNetworkRegion [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsNetworkRegion [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
A network region interconnects various parts of a network across multiple geographic areas. Every network region
must be associated with a central site. Use this cmdlet to retrieve information about one or more network regions,
including the associated central site and settings that determine whether alternate paths are allowed for audio and
video connections, and that associate the sites within the region with a media bypass configuration.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkRegion

Example 1 retrieves all network regions defined for the organization.


-------------------------- Example 2 --------------------------

Get-CsNetworkRegion -Identity NorthAmerica

Example 2 retrieves the network regions with the Identity NorthAmerica. Because identities are unique, this
command retrieves at most one network region.
-------------------------- Example 3 --------------------------

Get-CsNetworkRegion | Where-Object {$_.CentralSite -eq "site:Redmond"}

This example retrieves all network regions with identities that end with the string "America." This would retrieve
regions with identities such as NorthAmerica, SouthAmerica, and CentralAmerica.
-------------------------- Example 4 --------------------------
Get-CsNetworkRegion | Where-Object {$_.CentralSite -eq "site:Redmond"}

This example retrieves all network regions associated with the central site Redmond. The command begins by
calling the Get-CsNetworkRegion cmdlet, with no parameters, to retrieve a collection of all network regions defined
for the Skype for Business Server deployment. This collection is then piped to the Where-Object cmdlet. The
Where-Object cmdlet filters this collection to return only those items (network regions) where the CentralSite value
is equal to (-eq) site:Redmond.

Parameters
-Filter
This parameter allows you to perform a wildcard search on the Identity of all network regions configured for the
organization. Use the wildcard character to filter on any part of the Identity.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the network region you want to retrieve. The Identity will be in the form of a string that
uniquely identifies that region. (Note that the Identity is the same as the NetworkRegionID.)

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the network region information from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType
Related Links
New -CsNetworkRegion
Remove-CsNetworkRegion
Set-CsNetworkRegion
minutes to read • Edit Online

Get-CsNetworkRegionLink
In ths Article

Retrieves one or more links between network regions configured for call admission control (CAC ). This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsNetworkRegionLink [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsNetworkRegionLink [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Regions within a network are linked through physical WAN connectivity. This cmdlet retrieves one or more region
links that are defined within the network configuration settings for a Skype for Business Server deployment.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkRegionLink

Example 1 retrieves all network region links defined within a Skype for Business Server 2015 deployment.
-------------------------- Example 2 --------------------------

Get-CsNetworkRegionLink -Identity NA_EMEA

Example 2 retrieves information about (at most) one network region link, the link with the Identity NA_EMEA.
-------------------------- Example 3 --------------------------

Get-CsNetworkRegionLink -Filter *EMEA*

In this example we use the Filter parameter to retrieve all network region links with the string EMEA in the name
(Identity) of the link. Notice the * characters, one before the string EMEA and one after. This means any character or
characters can precede or follow the string; the string EMEA simply must be included in the Identity somewhere.
This will retrieve links with names such as NA_EMEA, EMEA_APAC, and EMEA2_SA.
-------------------------- Example 4 --------------------------

Get-CsNetworkRegionLink | Where-Object {$_.NetworkRegionID1 -eq "EMEA" -or $_.NetworkRegionID2 -eq "EMEA"}


This example retrieves all network region links that include EMEA as one of the two regions being linked. The
example begins by calling the Get-CsNetworkRegionLink cmdlet with no parameters, which will retrieve all region
links. This collection of links is then piped to the Where-Object cmdlet. The Where-Object cmdlet looks through
each member of the collection one-by-one, checking the values of the NetworkRegionID1 and NetworkRegionID2
properties. If either of these properties is equal to EMEA--in other words if either NetworkRegionID1 is equal to (-
eq) EMEA or (-or) NetworkRegionID2 is equal to (-eq) EMEA--then we want to keep that item in the collection and
display it.

Parameters
-Filter
Accepts a wildcard string that is used to retrieve network links based on matching the value of the Identity to the
wildcard string.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the network region link you want to retrieve. Network region links are created only at the
global scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique name
that identifies that link. (Note that this value is the same as the NetworkRegionLinkID.)

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the network region link information from the local replica of the Central Management store, rather than
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType
Related Links
New -CsNetworkRegionLink
Remove-CsNetworkRegionLink
Set-CsNetworkRegionLink
minutes to read • Edit Online

Get-CsNetworkSite
In ths Article

Retrieves one or more network sites defined for call admission control (CAC ) or Enhanced 9-1-1 (E9-1-1). This
cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsNetworkSite [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsNetworkSite [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Network sites are the offices or locations configured within each region of a CAC or E9-1-1 deployment. This
cmdlet retrieves the settings for one or more existing sites.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkSite

Calling the Get-CsNetworkSite cmdlet with no parameters will return all network sites configured for CAC or E9-1-
1 within the Skype for Business Server deployment.
-------------------------- Example 2 --------------------------

Get-CsNetworkSite -Identity Redmond

This command retrieves the site with the Identity (and, by definition, the NetworkSiteID ) Redmond.
-------------------------- Example 3 --------------------------

Get-CsNetworkSite -Filter NA*

The command in Example 3 calls the Get-CsNetworkSite cmdlet with the Filter parameter. The value of the Filter
parameter is NA*, meaning that this command will retrieve all sites with an Identity beginning with the string NA
and followed by any number of characters. This will return sites such as NARedmond, NAVancouver, and
NAChicago.
-------------------------- Example 4 --------------------------
Get-CsNetworkSite | Where-Object {$_.NetworkRegionID -eq "NorthAmerica"}

Example 4 uses two cmdlets, the Get-CsNetworkSite cmdlet and the Where-Object cmdlet, to retrieve all the sites
that are part of the NorthAmerica region. The command begins by calling the Get-CsNetworkSite cmdlet with no
parameters to retrieve all network sites. This collection of sites is then piped to the Where-Object cmdlet, which
filters the collection, looking for all sites in the collection where the NetworkRegionID property is equal to (-eq)
NorthAmerica.

Parameters
-Filter
A wildcard string that allows you to retrieve multiple sites based on matching the site Identity to the Filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the network site you want to retrieve. Sites are created only at the global scope, so you do
not need to specify a scope. Instead, you need to specify only the site ID. (Note that this is the same value as the
NetworkSiteID for the network site.)

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the network site information from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.DisplayNetworkSiteType
Related Links
New -CsNetworkSite
Remove-CsNetworkSite
Set-CsNetworkSite
minutes to read • Edit Online

Get-CsNetworkSubnet
In ths Article

Retrieves information about one or more network subnets. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsNetworkSubnet [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsNetworkSubnet [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Each subnet must be associated with a network site for the purposes of determining the geographic location of the
host belonging to this subnet. Use this cmdlet to retrieve information about the subnet, including the Identity (the
subnet ID ), the number of mask bits, the associated network site, and the description of the subnet.

Examples
-------------------------- Example 1 --------------------------

Get-CsNetworkSubnet

This example retrieves all subnets within the Skype for Business Server deployment.
-------------------------- Example 2 --------------------------

Get-CsNetworkSubnet -Identity 172.11.15.0

This example retrieves all information about the subnet with the Identity (the Subnet ID ) 172.11.15.0.
-------------------------- Example 3 --------------------------

Get-CsNetworkSubnet -Filter 172.11.*

This example retrieves all subnets with identities that begin with 172.11.
-------------------------- Example 4 --------------------------

Get-CsNetworkSubnet | Where-Object {$_.NetworkSiteID -eq "Vancouver"}

Example 4 retrieves all subnets associated with the Vancouver site. We first call the Get-CsNetworkSubnet cmdlet
with no parameters, which, as we saw in Example 2, retrieves all defined subnets. We then pipe this collection of
subnets to the Where-Object cmdlet. The Where-Object cmdlet takes that collection and narrows it down to only
those subnets with a NetworkSiteID equal to (-eq) Vancouver.

Parameters
-Filter
Use this parameter to perform a wildcard search of all subnets based on Identity. For example, the Filter value
172.11.* will retrieve all subnets with an Identity beginning with 172.11. (such as 172.11.10.0, 172.11.25.0, etc.).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique subnet ID of the subnet you want to retrieve. This value will be an IP address (such as 174.11.12.0).

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the network subnet information from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType

Related Links
New -CsNetworkSubnet
Remove-CsNetworkSubnet
Set-CsNetworkSubnet
minutes to read • Edit Online

Get-CsOAuthConfiguration
In ths Article

Returns information about the Open Authorization (OAuth) configuration settings currently in use in the
organization. OAuth is a standard protocol used for server-to-server authentication and authorization. This cmdlet
was introduced in Lync Server 2013.

Syntax
Get-CsOAuthConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [-AsJob]
[<CommonParameters>]

Get-CsOAuthConfiguration [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [-AsJob] [<CommonParameters>]

Description
In Skype for Business Server, server-to-server authentication (for example, the authentication that enables Skype
for Business Server and Exchange to share information) is carried out using the OAuth security protocol. OAuth is
always on in Skype for Business Server; there is no need (or even any way) to enable or disable the protocol.
However, if Skype for Business Server needs to communicate with other server products you might need to modify
your OAuth configuration settings; for example, you might need to specify the autodiscover URL for the Office 365
version of Exchange, and you might need to specify your Realm name. These settings can only be managed by
using the CsOAuthConfiguration cmdlets; options for managing OAuth settings are not available in the Skype for
Business Server Control Panel.
Note that, for the on-premises version of Skype for Business Server, you can have only a single, global collection of
OAuth settings: you cannot not create additional collections of OAuth settings nor can you delete the global
collection. Each Skype for Business Online tenant is also limited to a single collection of OAuth configuration
settings.
The functions carried out by the Get-CsOAuthConfiguration cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsOAuthConfiguration

The command shown in Example 1 returns information for the OAuth configuration settings in use in the
organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard values when referencing a collection of OAuth configuration settings. Because you can
only have a single, global instance of these settings there is no reason to use the Filter parameter. However, if you
prefer you can use the following syntax to reference the global settings:
-Filter "g*"

That syntax brings back all the OAuth configuration settings that have an Identity that begins with the letter "g".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the OAuth configuration settings. Because you can only have a single, global instance of these
settings, you do not need to specify an Identity when calling the Get-CsOAuthConfiguration cmdlet. If you prefer,
however, you can use the following syntax to reference the global settings:
-Identity global

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the OAuth configuration data from the local replica of the Central Management store rather than from
the Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose OAuth configuration
settings are to be retrieved.
For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthSettings

Related Links
Set-CsOAuthConfiguration
minutes to read • Edit Online

Get-CsOAuthServer
In ths Article

Returns information about the Open Authorization (OAuth) servers configured for use by the organization. OAuth
servers, also known as security token servers, issue security tokens used in server-to-server authentication and
authorization. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsOAuthServer [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsOAuthServer [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
In Skype for Business Server, server-to-server authentication (for example, the authentication that enables Skype
for Business Server and Exchange to share information) is carried out using the OAuth security protocol. This type
of authentication typically requires three servers: the two servers that need to communicate with one another
(Server A and B ) and a third-party security token server. If Servers A and B need to communicate with one another,
the two servers contact the token server (also known as an OAuth server) and obtain mutually-trusted security
tokens that the two servers can exchange in order to prove their identities.
If you are using an on-premises version of Skype for Business Server and you need to communicate with another
server product that fully supports the OAuth protocol then you typically do not need to use a token server; that's
because these server products are able to issue their own security tokens. However, if you need to communicate
with another server product then you will need to use a token servers. These token servers can be managed by
using the CsOAuthServer cmdlets.
The functions carried out by the Get-CsOAuthServer cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Server 2015)

Get-CsOAuthServer

Example 1 returns information about all the OAuth servers configured for use in the organization.
-------------------------- Example 2 -------------------------- (Skype for Business Server 2015)

Get-CsOAuthServer -Identity "Office 365"

In Example 2, information is returned for the OAuth server that has the Identity "Office 365".
Parameters
-Filter
Enables you to use wildcard characters in order to return one or more OAuth servers. For example, to return all of
the OAuth servers that have an Identity that includes the string value "Microsoft" use this syntax:
-Filter "*Microsoft*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the OAuth server to be returned. For example:
-Identity "Office 365"

If neither the Identity parameter nor the Filter parameter is included in the command then the Get-CsOAuthServer
cmdlet will return information about all your OAuth servers.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the OAuth service data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose OAuth server settings are
to be retrieved.
For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer#Decorated

Related Links
New -CsOAuthServer
Remove-CsOAuthServer
Set-CsOAuthServer
minutes to read • Edit Online

Get-CsOnlineApplicationEndpoint
In ths Article

Provide the topic introduction here.

Syntax
Get-CsOnlineApplicationEndpoint [-Uri] <String> [-Audience <String>] [-Ring <String>] [-PhoneNumber <String>]
[-IsInternalRun <Boolean>] [-Tenant <Guid>] [-RunFullProvisioningFlow <Boolean>]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
Example 1

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Audience
{{Fill Audience Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
{{Fill DomainController Description}}

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
{{Fill Force Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsInternalRun
{{Fill IsInternalRun Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PhoneNumber
{{Fill PhoneNumber Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Ring
{{Fill Ring Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RunFullProvisioningFlow
{{Fill RunFullProvisioningFlow Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Uri
PARAMVALUE: String

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsOnlineApplicationInstanceAssociation
In ths Article

Use the Get-CsOnlineApplicationInstanceAssociation cmdlet to get information about the associations setup in
your organization.

Syntax
Get-CsOnlineApplicationInstanceAssociation -Identity <String> [-Tenant <Guid>] [<CommonParameters>]

Description
Use the Get-CsOnlineApplicationInstanceAssociation cmdlet to get information about the associations setup
between online application instances and the application configurations, like auto attendants and call queues.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineApplicationInstanceAssociation -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093"

This example gets the association object for the application instance that has the identity of f7a821dc-2d69-5ae8-
8525-bcb4a4556093.

Parameters
-Identity
The identity for the application instance whose association is to be retrieved.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
System.String
The Get-CsOnlineApplicationInstanceAssociation cmdlet accepts a string as the Identity parameter.

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation

Related Links
Get-CsOnlineApplicationInstanceAssociationStatus
New -CsOnlineApplicationInstanceAssociation
Remove-CsOnlineApplicationInstanceAssociation
minutes to read • Edit Online

Get-CsOnlineApplicationInstanceAssociationStatus
In ths Article

Use the Get-CsOnlineApplicationInstanceAssociationStatus cmdlet to get the provisioning status for the
associations you have setup in your organization.

Syntax
Get-CsOnlineApplicationInstanceAssociationStatus -Identity <String> [-Tenant <Guid>] [<CommonParameters>]

Description
Use the Get-CsOnlineApplicationInstanceAssociationStatus cmdlet to get provisioning status for the associations
you have setup between online application instances and the application configurations, like auto attendants and
call queues.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineApplicationInstanceAssociationStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093"

This example gets the provisioning status for the association object of the application instance that has the identity
of f7a821dc-2d69-5ae8-8525-bcb4a4556093.

Parameters
-Identity
The identity for the application instance whose association provisioning status is to be retrieved.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Get-CsOnlineApplicationInstanceAssociationStatus cmdlet accepts a string as the Identity parameter.

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord

Related Links
Get-CsOnlineApplicationInstanceAssociation
New -CsOnlineApplicationInstanceAssociation
Remove-CsOnlineApplicationInstanceAssociation
minutes to read • Edit Online

Get-CsOnlineDialInConferencingBridge
In ths Article

Use the Get-CsOnlineDialInConferencingBridge cmdlet to view the settings on an audio conferencing bridge that is
used when Microsoft is the audio conferencing provider.

Syntax
Get-CsOnlineDialInConferencingBridge [-Tenant <Guid>] [-TenantDomain <String>]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineDialInConferencingBridge [-Identity] <Guid> [-Tenant <Guid>] [-TenantDomain <String>]


[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineDialInConferencingBridge -Name <String> [-Tenant <Guid>] [-TenantDomain <String>]


[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
The Get-CsOnlineDialInConferencingBridge cmdlet is used to view all of the settings for all dial-in conferencing
bridges or for a specific dial-in conferencing bridge. However, if the PSTN conferencing service status of the tenant
is Disabled, no results will be displayed.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineDialInConferencingBridge | fl

This example shows how to return all of the audio conferencing bridges that are being used and returns the results
in a formatted list.
-------------------------- Example 2 --------------------------

Get-CsOnlineDialInConferencingBridge -Tenant 26efe125-c070-46f9-8ed0-fc02165a167c

This example shows how to return all of the audio conferencing bridges for the given tenant.

Parameters
-AsJob
{{Fill AsJob Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter include:
Fully qualified domain name (FQDN ):
-DomainController atl-cs-001.Contoso.com

Computer name:
-DomainController atl-cs-001

This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the globally-unique identifier (GUID ) for the audio conferencing bridge.

Type: Guid
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Specifies the name of the audio conferencing bridge.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantDomain
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
minutes to read • Edit Online

Get-CsOnlineDialInConferencingLanguagesSupported
In ths Article

Use the Get-CsOnlineDialInConferencingLanguagesSupported cmdlet to view the list of languages that are
supported when an organization uses Microsoft as the dial-in audio conferencing provider.

Syntax
Get-CsOnlineDialInConferencingLanguagesSupported [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
The Get-CsOnlineDialInConferencingLanguagesSupported cmdlet is used to view the primary and secondary
languages that are set for a dial-in conferencing service number. There is a primary language that is set along with
secondary languages (up to 4) that can also be set.
Primary and secondary languages are those languages that are used to play prompts when a caller calls into a dial-
in service number. When no languages are specified for a dial-in service number it will get the set of default
languages.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineDialInConferencingLanguagesSupported |fl

This example allows returns the list of supported languages when you are using Microsoft as your dial-in audio
conferencing provider and displays them in a formatted list.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter include:
Fully qualified domain name (FQDN ): -DomainController atl-cs-001.Contoso.com

Computer name: -DomainController atl-cs-001

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsOnlineDialinConferencingPolicy
In ths Article

Provide the topic introduction here.

Syntax
Get-CsOnlineDialinConferencingPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsOnlineDialinConferencingPolicy [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsIdentity

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsOnlineDialInConferencingServiceNumber
In ths Article

Use the Get-CsOnlineDialInConferencingServiceNumber cmdlet to return all of the default dial-in service numbers
that are assigned to an Office 365 audio conferencing bridge.

Syntax
Get-CsOnlineDialInConferencingServiceNumber [-BridgeName <String>] [-City <String>] [-ResultSize <Int32>]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineDialInConferencingServiceNumber [-Identity] <String> [-Tenant <Guid>]


[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineDialInConferencingServiceNumber -BridgeId <Guid> [-City <String>] [-ResultSize <Int32>]


[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineDialInConferencingServiceNumber [-BridgeName <String>] -Tenant <Guid> [-City <String>]


[-ResultSize <Int32>] [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineDialInConferencingServiceNumber [-BridgeName <String>] -TenantDomain <String> [-City <String>]


[-ResultSize <Int32>] [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
The Get-CsOnlineDialInConferencingServiceNumber cmdlet returns all of the dial-in service numbers for a given
tenant or Office 365 organization that are assigned to an audio conferencing bridge. If the cmdlet is run by a tenant
administrator for an organization, it will run within the tenant's scope. A tenant administrator can only retrieve and
view information that is associated with their organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineDialInConferencingServiceNumber | fl

This example returns all of the default service numbers for an organization in a formatted list.
-------------------------- Example 2 --------------------------

Get-CsOnlineDialInConferencingServiceNumber -BridgeId 72dfe128-d079-46f8-8tr0-gb12369p167c | fl


This example returns all of the default service numbers for a specified audio conferencing bridge in a formatted list.
-------------------------- Example 3 --------------------------

Get-CsOnlineDialInConferencingBridge -Name "Conference Bridge"

This example returns all of the default service numbers for the audio conferencing bridge named "Conference
Bridge".

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BridgeId
Specifies the globally-unique identifier (GUID ) for the audio conferencing bridge. When it's used it returns all of the
service numbers that are configured on the audio conferencing bridge.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BridgeName
Specifies the name of the audio conferencing bridge. When it is used it returns all of the service numbers that are
configured on the audio conferencing bridge.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-City
Specifies the city geocode to be used. When used it lists all of the service numbers for a specific city geocode.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter include:
Fully qualified domain name (FQDN ): -DomainController atl-cs-001.Contoso.com.

Computer name: -DomainController atl-cs-001

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the default dial-in service number string.

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Specifies the number of records returned by the cmdlet. For example, to return seven users (regardless of the
number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note
that there is no way to guarantee which seven users will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the
command will return those three users, and then complete without error.
Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantDomain
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsOnlineDialinConferencingTenantConfiguration
In ths Article

Use the Get-CsOnlineDialinConferencingTenantConfiguration cmdlet to retrieve the tenant level configuration for
dial-in conferencing. The dial-in conferencing configuration specifies if dial-in conferencing is enabled for the
tenant.

Syntax
Get-CsOnlineDialinConferencingTenantConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>]
[-LocalStore] [<CommonParameters>]

Get-CsOnlineDialinConferencingTenantConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore]


[<CommonParameters>]

Description
The dial-in conferencing configuration specifies only if dial-in conferencing is enabled for the tenant. By contrast,
the dial-in conferencing tenant settings specify what functions are available during a conference call. For example,
whether or not entries and exits from the call are announced. The settings also manage some of the administrative
functions, such as when users get notification of administrative actions, like a PIN change. For more information on
settings and their customization, see Set-CsOnlineDialInConferencingTenantSettings.
This cmdlet currently displays only the enabled or disabled status of your tenant configuration. There is one
configuration per tenant.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineDialinConferencingTenantConfiguration

This example returns the configuration for the tenant administrator's organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the configuration from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.OnLineDialInConferencing.OnLineDialInConferencingTena
ntConfiguration
minutes to read • Edit Online

Get-CsOnlineDialInConferencingTenantSettings
In ths Article

Use the Get-CsOnlineDialInConferencingTenantSettings cmdlet to retrieve tenant level settings for dial-in
conferencing.

Syntax
Get-CsOnlineDialInConferencingTenantSettings [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsOnlineDialInConferencingTenantSettings [-Tenant <Guid>] [-Filter <String>] [-LocalStore]


[<CommonParameters>]

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineDialInConferencingTenantSettings

This example returns the global setting for the tenant administrator's organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter is reserved for internal Microsoft use.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the settings from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.OnLineDialInConferencing.OnLineDialInConferencingTena
ntSettings
minutes to read • Edit Online

Get-CsOnlineDialInConferencingUser
In ths Article

Use the `Get-CsOnlineDialInConferencingUser` cmdlet to view the properties and settings of users that are
enabled for dial-in conferencing and are using Microsoft as their PSTN conferencing provider.

Syntax
Get-CsOnlineDialInConferencingUser [-BridgeName <String>] [-ServiceNumber <String>] [-TenantDomain <String>]
[-LdapFilter <String>] [[-Identity] <UserIdParameter>] [-Tenant <Guid>] [-BridgeId <Guid>] [-ResultSize
<Int32>]
[-DomainController <Fqdn>] [-Force] [-AsJob] [<CommonParameters>]

Description
This cmdlet will only return users that have been enabled for audio conferencing using Microsoft as the audio
conferencing provider. Users that are enabled for audio conferencing using a third-party audio conferencing
provider won't be returned. If there are no users in the organization that have been enabled for audio conferencing,
then the cmdlet will return no results.
The see a list of users with conferencing providers other than Microsoft use the Get-CsUserAcp cmdlet.

Examples
-------------------------- Example 1 --------------------------

PS C:> Get-CsOnlineDialInConferencingUser -LdapFilter "Department=Finance"

This example uses the LdapFilter parameter to limit the returned data to users who work in the Finance
department.
-------------------------- Example 2 --------------------------

PS C:> Get-CsOnlineDialInConferencingUser -ServiceNumber +14255034412 | Format-Table -Property DisplayName,


SipAddress

This example returns users who have been enabled for audio conferencing provided by Microsoft, and are assigned
to the specified service number.
By default, the Get-CsOnlineDialInConferencingUser cmdlet returns a large number of properties. Therefore, in
this example the retrieved data is piped to the Format-Table cmdlet. The Format-Table cmdlet then uses the
Property parameter to select the properties DisplayName and SipAddress.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BridgeId
Specifies the globally-unique identifier (GUID ) for the audio conferencing bridge.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BridgeName
Specifies the name for the audio conferencing bridge.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the user to retrieve. The user can be specified by using one of four formats: 1) the user's SIP address; 2)
the user's user principal name (UPN ); 3) the user's domain name and logon name, in the form domain\logon (for
example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can
also reference a user account by using the user's Active Directory distinguished name.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server 2015). For example, you can limit returned data to users who work in a
specific department, or users who have a specified manager or job title. The LdapFilter parameter uses the LDAP
query language when creating filters. For example, a filter that returns only users who work in the city of Redmond
would look like this: "l=Redmond", with "l" (a lowercase L ) representing the Active Directory attribute (locality); "="
representing the comparison operator (equal to); and "Redmond" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless
of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7.
Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole
number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you
set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and
then complete without error.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServiceNumber
Specifies a service number to serve as a filter for the returned user collection. Only users who have been assigned
the specified number will be returned. The service number can be specified in the following formats: E.164 number,
+<E.164 number> and tel:<E.164 number>.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
NOTE: This parameter is reserved for internal Microsoft use.
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example: -
Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantDomain
This parameter is reserved for internal Microsoft use.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Enable-CsOnlineDialInConferencingUser
Disable-CsOnlineDialInConferencingUser
Set-CsOnlineDialInConferencingUser
minutes to read • Edit Online

Get-CsOnlineDialInConferencingUserInfo
In ths Article

Use the `Get-CsOnlineDialInConferencingUserInfo` cmdlet to view the properties and settings of users that are
enabled for dial-in conferencing and are using Microsoft or third-party provider as their PSTN conferencing
provider.

Syntax
Get-CsOnlineDialInConferencingUserInfo [-Identity] <UserIdParameter> [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

Get-CsOnlineDialInConferencingUserInfo [-Tenant <Guid>] [-Skip <Int32>] [-First <Int32>]


[-SearchQuery <String>] [-Select <FilterSelection>] [-Filter <String>] [-SortDescending]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
This cmdlet will return users that have been enabled for audio conferencing using Microsoft or a third-party as the
audio conferencing provider. If there are no users in the organization that have been enabled for audio
conferencing, then the cmdlet will return no results.
You can use Get-CsOnlineDialInConferencingUser cmdlet to return only users that have been enabled for audio
conferencing using Microsoft as the audio conferencing provider.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineDialInConferencingUserInfo -Filter {Provider -eq "InterCall"} -First 10

This example returns users who have been enabled for audio conferencing provided by InterCall, but it will show
only the first 10 users.
-------------------------- Example 2 --------------------------

Get-CsOnlineDialInConferencingUserInfo -Select ConferencingProviderOther

This example returns users who have been enabled for audio conferencing provided by other than Microsoft.

Parameters
-DomainController
This parameter is reserved for internal Microsoft use.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on Skype for Business specific attributes. For example, you can
limit returned data to users who have been assigned a specific third-party provider.
The Filter parameter uses the same filtering syntax that is used by the Where-Object cmdlet. For example, a filter
that returns only users who have InterCall as Audio Conferencing Provider, with Provider representing the
attribute, and -eq representing the comparison operator (equal to):
{Provider -eq "InterCall"}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-First
When present, the cmdlet returns the first X number of users from the list of all the users enabled for dial-in
conferencing.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the user to retrieve. The user can be specified by using one of four formats: 1) the user's SIP address; 2)
the user's user principal name (UPN ); 3) the user's domain name and logon name, in the form domain\logon (for
example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can
also reference a user account by using the user's Active Directory distinguished name.
Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SearchQuery
The SearchQuery parameter specifies a search string or a query formatted using Keyword Query Language (KQL ).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Select
Use next values to filter the output:
DialInConferencingOn: Display all the users who are enabled for dial-in conferencing.
DialInConferencingOff: Display all the users who are not enabled for dial-in conferencing.
ConferencingProviderMS: Display all the users who are CPC enabled.
ConferencingProviderOther: Display all the users who have 3rd party ACP.
ReadyForMigrationToCPC: Display all the users who have 3rd party ACP and have been assigned a CPC license.
NoFilter: Display all the users.

Type: FilterSelection
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Skip
Skips (does not select) the specified number of items.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SortDescending
Indicates that the cmdlet sorts the objects in descending order. The default is ascending order.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Get-CsOnlineDialInConferencingUser
minutes to read • Edit Online

Get-CsOnlineDialInConferencingUserState
In ths Article

Provide the topic introduction here.

Syntax
Get-CsOnlineDialInConferencingUserState [[-Identity] <UserIdParameter>] [-Tenant <Guid>]
[-TenantDomain <String>] [-Provider <ProviderType>] [-LicenseState <String[]>]
[-ResultSize <Unlimited>] [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
Example 1

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-DomainController
PARAMVALUE: Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-Identity
PARAMVALUE: UserIdParameter

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LicenseState
PARAMVALUE: String[]

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Provider
PARAMVALUE: AllProviders | NoProviders | Microsoft | ThirdParty

Type: ProviderType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
PARAMVALUE: Unlimited

Type: Unlimited
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantDomain
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsOnlineDialOutPolicy
In ths Article

Syntax
Get-CsOnlineDialOutPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsOnlineDialOutPolicy [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
{{Fill in the Description}}

Examples
Example 1

PS C:\> {{ Add example code here }}

{{ Add example description here }}

Parameters
-Filter
{{Fill Filter Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
{{Fill Identity Description}}

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LocalStore
{{Fill LocalStore Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsOnlineDirectoryTenant
In ths Article

Use the Get-CsOnlineDirectoryTenant cmdlet to retrieve a tenant and associated parameters from the Business
Voice Directory.

Syntax
Get-CsOnlineDirectoryTenant [[-Tenant] <Guid>] [-DomainController <Fqdn>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
The following is an example of the Get-CsOnlineDirectoryTenant cmdlet's console output.
Get-CsOnlineDirectoryTenant
RunspaceId : 8fa40044-7bcf-465b-b7c8-76e54f124c8d
Id : 7a205197-8e59-487d-b9fa-3fc1b108f1e5
DefaultBridge : 00000000-0000-0000-0000-000000000000
Numbers : {13479167372, 13479167375, 13479167377, 13479167386...}
Bridges : {Id = [5bc815ae-d9e9-4fb6-af74-cf4fa73ceaa6], Name = [Conference Bridge], DefaultServiceNumber =
[],

IsDefaultBridge = [False]}

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineDirectoryTenant -Tenant 7a205197-8e59-487d-b9fa-3fc1b108f1e5

This example returns the tenant specified by GUID.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter are either the fully qualified domain name (FQDN ) or the computer name.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can find your tenant ID by running this command:


Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Deserialized.Microsoft.Rtc.Management.Hosted.Bvd.Types.LacTenant
minutes to read • Edit Online

Get-CsOnlineDirectoryTenantNumberCities
In ths Article

Use the Get-CsOnlineDirectoryTenantNumberCities cmdlet to retrieve the cities for which telephone numbers have
been acquired by your organization.

Syntax
Get-CsOnlineDirectoryTenantNumberCities [[-Tenant] <Guid>] [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

Description
This cmdlet can be used to fetch all the cities for which your organization has already acquired telephone numbers.
It is mainly used to filter cities for which telephone numbers are acquired.
The console output will be in the form:
Get-CsOnlineDirectoryTenantNumberCities
NOAM -US -CA-LA
NOAM -US -IL -CH
NOAM -US -NY -NY
NOAM -US -TX-DA
NOAM -US -MA-BO

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineDirectoryTenantNumberCities

This example returns all the cities for which telephone numbers have been acquired by your organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
IList<string> containing the geocodes of the relevant cities.
minutes to read • Edit Online

Get-CsOnlineEnhancedEmergencyServiceDisclaimer
In ths Article

Use the Get-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet to determine whether your organization has


accepted the terms and conditions of enhanced emergency service.

Syntax
Get-CsOnlineEnhancedEmergencyServiceDisclaimer [-CountryOrRegion <CountryInfo>] [-DomainController <Fqdn>] [-
Force] [-Tenant <Guid>] [-Version <String>] [-AsJob] [<CommonParameters>]

Description
You can use this cmdlet to determine whether your organization has accepted the terms and conditions of
enhanced emergency service. The United States is currently the only country supported.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineEnhancedEmergencyServiceDisclaimer -CountryOrRegion "US"

This example returns your organization's enhanced emergency service terms and conditions acceptance status.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the region or country whose terms and conditions you wish to verify. The United States is currently the
only country supported, but it must be specified as "US".

Type: CountryInfo
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Version
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None

Related Links
Set-CsOnlineEnhancedEmergencyServiceDisclaimer
minutes to read • Edit Online

Get-CsOnlineLisCivicAddress
In ths Article

Use the Get-CsOnlineLisCivicAddress cmdlet to retrieve information about existing emergency civic addresses
defined in the Location Information Service (LIS.)

Syntax
Get-CsOnlineLisCivicAddress [-CivicAddressId <Guid>] [-LocationId <Guid>]
[-PopulateNumberOfVoiceUsers] [-PopulateNumberOfTelephoneNumbers] [-AssignmentStatus <String>]
[-City <String>] [-CountryOrRegion <String>] [-Description <String>] [-ValidationStatus <String>]
[-ResultSize <Int32>] [-NumberOfResultsToSkip <Int32>] [-Tenant <Guid>] [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineLisCivicAddress -CivicAddressId 235678321ee38d9a5-33dc-4a32-9fb8-f234cedb91ac

This example returns the civic address with the specified identification.
-------------------------- Example 2 --------------------------

Get-CsOnlineLisCivicAddress -City Seattle

This example returns all the civic addresses in the city of Seattle.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AssignmentStatus
Specifies whether the retrieved addresses have been assigned to users or not. Valid inputs are "Assigned", or
"Unassigned".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-City
Specifies the city of the target civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CivicAddressId
Specifies the identification number of the civic address to return.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the country or region of the target civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Specifies the administrator defined description of the target civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationId
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberOfResultsToSkip
Specifies the number of results to skip. If there are a large number of civic addresses, you can limit the number of
returns by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at
the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25
you've reviewed. For example the command below will return civic addresses 26-50 for Seattle.
Get-CsOnlineLisCivicAddress -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PopulateNumberOfTelephoneNumbers
{{Fill PopulateNumberOfTelephoneNumbers Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PopulateNumberOfVoiceUsers
If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the
returned addresses.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Specifies the maximum number of results to return.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ValidationStatus
Specifies the validation status of the addresses to be returned. Valid inputs are: Valid, Invalid, and Notvalidated.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
One or more instances of civic address objects.
minutes to read • Edit Online

Get-CsOnlineLisLocation
In ths Article

Use the Get-CsOnlineLisLocation cmdlet to retrieve information on previously defined locations in the Location
Information Service (LIS.)

Syntax
Get-CsOnlineLisLocation [-PopulateNumberOfVoiceUsers] [-PopulateNumberOfTelephoneNumbers]
[-AssignmentStatus <String>] [-City <String>] [-CountryOrRegion <String>] [-Description <String>]
[-ValidationStatus <String>] [-ResultSize <Int32>] [-NumberOfResultsToSkip <Int32>] [-Tenant <Guid>]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineLisLocation -CivicAddressId <Guid> [-PopulateNumberOfVoiceUsers]


[-PopulateNumberOfTelephoneNumbers] [-AssignmentStatus <String>] [-City <String>] [-CountryOrRegion <String>]
[-Description <String>] [-ValidationStatus <String>] [-ResultSize <Int32>] [-NumberOfResultsToSkip <Int32>]
[-Tenant <Guid>] [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineLisLocation [-PopulateNumberOfVoiceUsers] [-PopulateNumberOfTelephoneNumbers]


[-LocationId <Guid>] [-AssignmentStatus <String>] [-City <String>] [-CountryOrRegion <String>]
[-Description <String>] [-ValidationStatus <String>] [-ResultSize <Int32>] [-NumberOfResultsToSkip <Int32>]
[-Tenant <Guid>] [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Get-CsOnlineLisLocation [-PopulateNumberOfVoiceUsers] [-PopulateNumberOfTelephoneNumbers] -Location <String>


[-AssignmentStatus <String>] [-City <String>] [-CountryOrRegion <String>] [-Description <String>]
[-ValidationStatus <String>] [-ResultSize <Int32>] [-NumberOfResultsToSkip <Int32>] [-Tenant <Guid>]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -ValidationStatus Validated

This example returns a maximum of 25 validated locations in Seattle.


-------------------------- Example 2 --------------------------

Get-CsOnlineLisLocation -CivicAddressId a363a9b8-1acd-41de-916a-296c7998a024

This example returns the locations associated with a civic address specified by its unique identifier.
-------------------------- Example 3 --------------------------
Get-CsOnlineLisLocation -Location "3rd Floor Cafe"

This example returns the location described as the "3rd Floor Cafe".
-------------------------- Example 4 --------------------------

Get-CsOnlineLisLocation -LocationId 5aa884e8-d548-4b8e-a289-52bfd5265a6e

This example returns the information on one location specified by its unique identifier.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AssignmentStatus
Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or
"Unassigned".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-City
Specifies the city of the target location.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CivicAddressId
Specifies the identification number of the civic address that is associated with the target locations.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the country or region of the target location.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Specifies the administrator defined description of the civic address that is associated with the target locations.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Location
Specifies an administrator defined description of the location to retrieve. For example, "2nd Floor Cafe", "Main
Lobby", or "Office 250".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationId
Specifies the unique identifier of the target location.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberOfResultsToSkip
Specifies the number of results to skip. If there are a large number of locations, you can limit the number of returns
by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the
next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've
reviewed. For example the command below will return locations 26-50 for Seattle.
Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PopulateNumberOfTelephoneNumbers
{{Fill PopulateNumberOfTelephoneNumbers Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PopulateNumberOfVoiceUsers
If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the
returned locations.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ResultSize
Specifies the maximum number of results to return.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ValidationStatus
Specifies the validation status of the addresses to be returned. Valid inputs are: Valid, Invalid, and Notvalidated.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Returns an instance, or instances of emergency location objects.
minutes to read • Edit Online

Get-CsOnlineNumberPortInOrder
In ths Article

This cmdlet is reserved for Microsoft internal use only. New third party provider ports should be provisioned
through the Skype for Business Online admin center.

Syntax
Get-CsOnlineNumberPortInOrder [-Tenant <Guid>] [-PortInOrderId <String>] [-DomainController <Fqdn>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Examples
-------------------------- Example 1 --------------------------

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PortInOrderId
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsOnlineNumberPortOutOrderPin
In ths Article

Syntax
Get-CsOnlineNumberPortOutOrderPin [-Tenant <Guid>] [-DomainController <Fqdn>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
{{Fill in the Description}}

Examples
-------------------------- Example 1 --------------------------

{{ Add example code here }}

{{ Add example description here }}

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
{{Fill DomainController Description}}
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
{{Fill Force Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsOnlinePSTNGateway
In ths Article

Shows the configuration of the previously defined Session Border Controller(s) (SBC (s)) that describes the settings
for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing.

Syntax
Get-CsOnlinePSTNGateway [-Tenant <System.Guid>] [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsOnlinePSTNGateway [-Tenant <System.Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Use this cmdlet to show the configuration of the previously created Session Border Controller(s) (SBC (s))
configuration. Each configuration contains specific settings for an SBC. These settings configure such entities as SIP
signaling port, whether media bypass is enabled on this SBC, will the SBC send SIP options, specify the limit of
maximum concurrent sessions, The cmdlet also let drain the SBC by setting parameter -Enabled to true or false
state. When the Enabled parameter set to $false, the SBC will continue existing calls, bit all new calls routed to
another SBC in a route (if exists).

Examples
Example 1

PS C:\> Get-CsOnlinePSTNGateway

This example shows all SBCs paired with the tenant.


Example 2

PS C:\> Get-CsOnlinePSTNGateway | ?{$_.Identity -like "*.contoso.com"}

This example selects all SBC with names matching the pattern *.contoso.com. For example: sbc1.contoso.com,
sbc2.contoso.com etc

Parameters
-Filter
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The parameter is optional for the cmdlet. If not set all SBCs paired to the tenant are listed.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Set-CsOnlinePSTNGateway
New -CsOnlinePSTNGateway
Remove-CsOnlinePSTNGateway
minutes to read • Edit Online

Get-CsOnlinePstnUsage
In ths Article

Returns information about online public switched telephone network (PSTN ) usage records used in your tenant.

Syntax
Get-CsOnlinePstnUsage [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsOnlinePstnUsage [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Online PSTN usages are string values that are used for call authorization. An online PSTN usage links an online
voice policy to a route. The Get-CsOnlinePstnUsage cmdlet retrieves the list of all online PSTN usages available
within a tenant.
This cmdlet is used when configuring Microsoft Phone System Direct Routing.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CSOnlinePSTNUsage

This command returns the list of global PSTN usages available within the tenant.

Parameters
-Filter
The Filter parameter allows you to retrieve only those PSTN usages with an Identity matching a particular wildcard
string. However, the only Identity available to PSTN usages is Global, so this parameter is not useful for this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The level at which these settings are applied. The only identity that can be applied to PSTN usages is Global.
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Set-CsOnlinePstnUsage
minutes to read • Edit Online

Get-CsOnlineSchedule
In ths Article

Use the Get-CsOnlineSchedule cmdlet to get information about schedules that belong to your organization.

Syntax
Get-CsOnlineSchedule -Id <String> [-Tenant <Guid>] [-CommonParameters]

Description
The Get-CsOnlineSchedule cmdlet returns information about the schedules in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineSchedule

This example retrieves all schedules that belong to your organization.


-------------------------- Example 2 --------------------------

Get-CsOnlineSchedule -Id "f7a821dc-2d69-5ae8-8525-bcb4a4556093"

This example gets the schedules that has the Id of f7a821dc-2d69-5ae8-8525-bcb4a4556093.

Parameters
-Id
The Id for the schedule to be retrieved. If this parameter is not specified, then all schedules in the organization are
returned.

Type: System.String
Required: False
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Get-CsOnlineSchedule cmdlet accepts a string as the Id parameter.

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.Schedule

Related Links
New -CsOnlineTimeRange
New -CsOnlineDateTimeRange
New -CsAutoAttendantCallFlow
minutes to read • Edit Online

Get-CsOnlineSipDomain
In ths Article

This cmdlet lists online sip domains and their enabled/disabled status. In a disabled domain, provisioning of users
is blocked. Once a domain is re-enabled, provisioning of users in that domain will happen.

Syntax
Get-CsOnlineSipDomain [-Domain <String>] [-DomainStatus <DomainStatus>] [<CommonParameters>]

Description
This cmdlet is useful for organizations consolidating multiple on-premises deployments of Skype for Business
Server into a single Office 365 tenant. During consolidation, sip domains for all forests hosting Skype for Business
Server - other than the forest currently in hybrid mode - must be disabled. Once a hybrid deployment is fully
migrated to the cloud and detached from Office 365, the next forest can start migration to the cloud. This cmdlet
allows administrators to view the status of sip domains in their Office 365 tenant. For full details on cloud
consolidation scenarios, see Cloud consolidation for Teams and Skype for Business.

Examples
Example 1

PS C:\> Get-CsOnlineSipDomain

List all online SIP domains in the tenant and show their enabled/disabled status.
Example 2

PS C:\> Get-CsOnlineSipDomain -DomainStatus Disabled

List all disabled online SIP domains in the tenant.

Parameters
-Domain
A specific domain to get the status of.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DomainStatus
This indicates the status of an online sip domain, which can be either enabled or disabled.

Type: DomainStatus
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Provision.OSD.OnlineSipDomainBase+DomainState

Related Links
Disable-CsOnlineSipDomain
Enable-CsOnlineSipDomain
Cloud consolidation for Teams and Skype for Business
minutes to read • Edit Online

Get-CsOnlineTelephoneNumber
In ths Article

Use the `Get-CsOnlineTelephoneNumber` to retrieve telephone numbers from the Business Voice Directory.

Syntax
Get-CsOnlineTelephoneNumber [-ActivationState <String>] [-Assigned <MultiValuedProperty>] [-CapitalOrMajorCity
<String>] [-DomainController <Fqdn>] [-ExpandLocation] [-Force] [-InventoryType <MultiValuedProperty>] [-
IsNotAssigned] [-ResultSize <UInt32>] [-TelephoneNumber <String>] [-TelephoneNumberGreaterThan <String>] [-
TelephoneNumberLessThan <String>] [-TelephoneNumberStartsWith <String>] [-Tenant <Guid>] [-AsJob]
[<CommonParameters>]

Description
Here is an example of the output of the Get-CsOnlineTelephoneNumber cmdlet.
RunspaceId : f90303a9-c6a8-483c-b3b3-a5b8cdbab19c
ActivationState : Activated
BridgeNumber :
CallingProfile : BandwidthUS
InventoryType : Service
CityCode : NOAM -US -NY -NY
Id : 19294450177
InventoryType : Service
Location :
O365Region : NOAM
SourceType : Tnm
TargetType : caa
Tenant :
TenantId :
UserId :
IsManagedByServiceDesk : True
PortInOrderStatus :
Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CsOnlineTelephoneNumber -TelephoneNumber 19294450177

This example gets the attributes of a specific phone number.


-------------------------- Example 2 --------------------------

PS C:\> Get-CsOnlineTelephoneNumber -CapitalOrMajorCity NOAM-US-NY-NY

This example gets the phone numbers with the city code designating New York, New York.

Parameters
-ActivationState
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Assigned
Specifies the function of the telephone number. The acceptable values are:
"caa" for numbers assigned to conferencing functions.
"user" for numbers assigned to public switched telephone network (PSTN ) functions.
The values for the Assigned parameter are case-sensitive.
Type: MultiValuedProperty
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CapitalOrMajorCity
Specifies the city by a concatenated string in the form: region-country-area-city. For example, "NOAM -US -OR -PO"
would specify Portland, Oregon.
The values for the CapitalOrMajorCity parameter are case-sensitive.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExpandLocation
Displays the location parameter with its value.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
Specifies the target telephone number type for the cmdlet. Acceptable values are:
"Service" for numbers assigned to conferencing support.
"Subscriber" for numbers supporting public switched telephone network (PSTN ) functions.

Type: MultiValuedProperty
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsNotAssigned
Specifying this switch parameter will return only telephone numbers which are not assigned.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0
and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumber
Specifies the target telephone number. For example:
-TelephoneNumber tel:+18005551234, or -TelephoneNumber +14251234567

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumberGreaterThan
Specifies a telephone number used by the cmdlet as the lower boundary of the telephone numbers returned. The
telephone numbers returned will all be greater than the number provided. The telephone number should be in
E.164 format.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumberLessThan
Specifies a telephone number used by the cmdlet as the upper boundary of the telephone numbers returned. The
telephone numbers returned will all be less than the number provided. The telephone number should be in E.164
format.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumberStartsWith
Specifies the digits that the returned telephone numbers must begin with. To return numbers in the North
American Numbering Plan 425 area code, use this syntax: -TelephoneNumberStartsWith 1425. To return numbers
that are in the 206 area code and that begin with 88, use this syntax: -TelephoneNumberStartsWith 120688. You
can use up to nine digits.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Deserialized.Microsoft.Skype.EnterpriseVoice.BVDClient.Number
An instance or array of the objects.
Related Links
Remove-CsOnlineTelephoneNumber
minutes to read • Edit Online

Get-CsOnlineTelephoneNumberAvailableCount
In ths Article

Use the Get-CsOnlineTelephoneNumberAvailableCount cmdlet to retrieve the total telephone numbers your
organization is licensed to acquire.

Syntax
Get-CsOnlineTelephoneNumberAvailableCount [[-Tenant] <Guid>] [-InventoryType <String>]
[-DomainController <Fqdn>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The console output of this cmdlet will be in the form:
Get-CsOnlineTelephoneNumberAvailableCount
RunspaceId Count

37c11bb0-3064-4e36-a0af-05efe9ee2bd3 11010

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineTelephoneNumberAvailableCount

This example returns the total telephone numbers your organization is licensed to acquire.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
LacAvailableNumberCount object
minutes to read • Edit Online

Get-CsOnlineTelephoneNumberInventoryAreas
In ths Article

Use the `Get-CsOnlineTelephoneNumberInventoryAreas` cmdlet to retrieve the geographical areas where specified
inventory types are supported.

Syntax
Get-CsOnlineTelephoneNumberInventoryAreas [-Tenant <Guid>] -RegionalGroup <String>
-CountryOrRegion <String> [-Area <String>] -InventoryType <String> [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

Description
Following is an example of the console output for the Get-CsOnlineTelephoneNumberInventoryAreas cmdlet.
Get-CsOnlineTelephoneNumberInventoryAreas -InventoryType Subscriber -RegionalGroup NOAM -
CountryOrRegion US
RunspaceId : 8fa40044-7bcf-465b-b7c8-76e54f124c8d
Id : IL
DefaultName : Illinois
Cities : {}
RunspaceId : 8fa40044-7bcf-465b-b7c8-76e54f124c8d
Id : MA
DefaultName : Massachusetts
Cities : {}
RunspaceId : 8fa40044-7bcf-465b-b7c8-76e54f124c8d
Id : NY
DefaultName : New York
Cities : {}
RunspaceId : 8fa40044-7bcf-465b-b7c8-76e54f124c8d
Id : OR
DefaultName : Oregon
Cities : {}
Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineTelephoneNumberInventoryAreas -InventoryType Subscriber -RegionalGroup NOAM -CountryOrRegion US

This example returns the areas with Subscriber inventory in the specified region and country.

Parameters
-Area
Specifies the target geographical area for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the target country for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
Specifies the target telephone number type for the cmdlet. Acceptable values are:
"Service" for numbers assigned to conferencing support.
"Subscriber" for numbers supporting public switched telephone network (PSTN ) functions.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegionalGroup
Specifies the target geographical region for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Deserialized.Microsoft.Rtc.Management.Hosted.Bvd.Types.InventoryArea
Instance or array of the objects.
minutes to read • Edit Online

Get-CsOnlineTelephoneNumberInventoryCities
In ths Article

Use the `Get-CsOnlineTelephoneNumberInventoryCities` to retrieve the cities that support a given inventory type
within a geographical area.

Syntax
Get-CsOnlineTelephoneNumberInventoryCities [-Tenant <Guid>] -RegionalGroup <String>
-CountryOrRegion <String> -Area <String> [-CapitalOrMajorCity <String>] -InventoryType <String>
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
Following is an example of the Get-CsOnlineTelephoneNumberInventoryCities cmdlet's console output.
Get-CsOnlineTelephoneNumberInventoryCities -InventoryType Service -RegionalGroup NOAM -
CountryOrRegion US -Area NY
RunspaceId : 1374aa93-75c4-4679-b765-6efc22f97563
Id : NY
DefaultName : New York City
GeoCode : NOAM -US -NY -NY

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineTelephoneNumberInventoryCities -InventoryType Service -RegionalGroup NOAM -CountryOrRegion US -Area


NY

The following example retrieves the cities defined as supporting "Service" inventory types in New York state.
-------------------------- Example 2 --------------------------

Get-CsOnlineTelephoneNumberInventoryCities -InventoryType Subscriber -RegionalGroup NOAM -CountryOrRegion US -


Area NY

The following example retrieves the cities defined as supporting "Subscriber" inventory types in New York state.

Parameters
-Area
Specifies the target geographical area for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CapitalOrMajorCity
Specifies the target geographical city for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the target country for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
Specifies the target telephone number type for the cmdlet. Acceptable values are:
"Service" for numbers assigned to conferencing support.
"Subscriber" for numbers supporting public switched telephone network (PSTN ) functions.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegionalGroup
Specifies the target geographical region for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Deserialized.Microsoft.Rtc.Management.Hosted.Bvd.Types.InventoryCity
Instance or array of the object.
minutes to read • Edit Online

Get-CsOnlineTelephoneNumberInventoryCountries
In ths Article

Use the `Get-CsOnlineTelephoneNumberInventoryCountries` cmdlet to retrieve a list of countries with telephone


number inventories by specified region and telephone number inventory types.

Syntax
Get-CsOnlineTelephoneNumberInventoryCountries [-Tenant <Guid>] -RegionalGroup <String>
[-CountryOrRegion <String>] -InventoryType <String> [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
Following is an example of the Get-CsOnlineTelephoneNumberInventoryCountries cmdlet's console output.
RunspaceId : af39ca40-06a7-473b-8963-668865d15e87
Id : US
DefaultName : United States
Areas : {}

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineTelephoneNumberInventoryCountries -InventoryType Service -RegionalGroup NOAM

This example returns the countries in the north American region that contain service type telephone numbers.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the target country for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
Specifies the target telephone number type for the cmdlet. Acceptable values are:
"Service" for numbers assigned to conferencing support.
"Subscriber" for numbers supporting public switched telephone network (PSTN ) functions.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-RegionalGroup
Specifies the target geographical region for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Deserialized.Microsoft.Skype.EnterpriseVoice.BVDClient.Country
Instance or array of the object.
minutes to read • Edit Online

Get-CsOnlineTelephoneNumberInventoryRegions
In ths Article

Use the `Get-CsOnlineTelephoneNumberInventoryRegions` cmdlet to retrieve the regions where specified


inventory types are supported.

Syntax
Get-CsOnlineTelephoneNumberInventoryRegions [-Tenant <Guid>] [-RegionalGroup <String>]
-InventoryType <String> [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
Following is an example of the Get-CsOnlineTelephoneNumberInventoryRegions cmdlet's console output.
RunspaceId : f90303a9-c6a8-483c-b3b3-a5b8cdbab19c
Id : NOAM
DefaultName : North America
Countries : {}

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineTelephoneNumberInventoryRegions -InventoryType Service

This example returns the region where the inventory type of "Service" is supported.
-------------------------- Example 2 --------------------------

Get-CsOnlineTelephoneNumberInventoryRegions -InventoryType Subscriber

This example returns the region where the inventory type of "Subscriber" is supported.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
Specifies the target telephone number type for the cmdlet. Acceptable values are:
"Service" for numbers assigned to conferencing support.
"Subscriber" for numbers supporting public switched telephone network (PSTN ) functions.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegionalGroup
Specifies the target geographical region for the cmdlet.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Deserialized.Microsoft.Skype.EnterpriseVoice.BVDClient.Region
Instance or array of the object.
minutes to read • Edit Online

Get-CsOnlineTelephoneNumberInventoryTypes
In ths Article

Use the Get-CsOnlineTelephoneNumberInventoryTypes cmdlet to retrieve the telephone number inventory types
that are defined.

Syntax
Get-CsOnlineTelephoneNumberInventoryTypes [-Tenant <Guid>] [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

Description
This is an example of Get-CsOnlineTelephoneNumberInventoryTypes cmdlet's console output.
RunspaceId : af39ca40-06a7-473b-8963-668865d15e87
Id : Service
Description : Inventory of service telephone numbers
Regions : {}
Reservations : {}
RunspaceId : af39ca40-06a7-473b-8963-668865d15e87
Id : Subscriber
Description : Inventory of subscriber telephone numbers
Regions : {}
Reservations : {}

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineTelephoneNumberInventoryTypes

This example retrieves all the telephone number types for your organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Deserialized.Microsoft.Skype.EnterpriseVoice.BVDClient.Inventory
Instance or array of the object.
minutes to read • Edit Online

Get-CsOnlineTelephoneNumberReservationsInformation
In ths Article

Use the Get-CsOnlineTelephoneNumberReservationsInformation to retrieve information about the total number of


telephone numbers which can reserved per session, and the maximum active reservations per session.

Syntax
Get-CsOnlineTelephoneNumberReservationsInformation [-Tenant <Guid>] [-DomainController <Fqdn>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet is used to see the number of active reservations, reserved telephone numbers, maximum reservations
supported per session, and maximum telephone numbers that can be reserved per session.
The console output of this cmdlet will be in the following form:
Get-CsOnlineTelephoneNumberReservationsInformation
RunspaceId : 37c11bb0-3064-4e36-a0af-05efe9ee2bd3
ActiveReservationsCount : 0
ActiveReservedNumbersCount : 0
MaximumActiveReservationsCount : 10
MaximumActiveReservedNumbersCount : 200

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineTelephoneNumberReservationsInformation

This example returns the number of active reservations, reserved telephone numbers, maximum reservations
supported per session, and maximum telephone numbers that can be reserved per session.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
LacReservationInformation object
minutes to read • Edit Online

Get-CsOnlineUser
In ths Article

Returns information about users who have accounts homed on Skype for Business Online. This cmdlet can only be
used with Skype for Business Online.

Syntax
Get-CsOnlineUser [-Filter <String>] [-LdapFilter <String>] [-OnOfficeCommunicationServer] [-OnModernServer]
[-UnassignedUser] [-SkipUserPolicies] [-OU <OUIdParameter>] [-DomainController <Fqdn>]
[-Credential <PSCredential>] [[-Identity] <UserIdParameter>] [-ResultSize <>] [<CommonParameters>]

Description
The Get-CsOnlineUser cmdlet returns information about users who have accounts homed on Skype for Business
Online. The returned information includes standard Active Directory account information (such as the department
the user works in, his or her address and phone number, etc.) as well as Skype for Business Server 2015 specific
information: the Get-CsOnlineUser cmdlet returns information about such things as whether or not the user has
been enabled for Enterprise Voice and which per-user policies (if any) have been assigned to the user.
Note that the Get-CsOnlineUser cmdlet does not have a TenantId parameter; that means you cannot use a
command similar to this in order to limit the returned data to users who have accounts with a specific Skype for
Business Online tenant:
Get-CsOnlineUser -TenantId "bf19b7db-6960-41e5-a139-2aa373474354"

However, if you have multiple you can return users from a specified tenant by using the Filter parameter and a
command similar to this:
Get-CsOnlineUser -Filter {TenantId -eq "bf19b7db-6960-41e5-a139-2aa373474354"}

That command will limit the returned data to user accounts belong to the tenant with the TenantId "bf19b7db-
6960-41e5-a139-2aa373474354". If you do not know your tenant IDs you can return that information by using
this command:
Get-CsTenant

If you have a hybrid or "split domain" deployment (that is, a deployment in which some users have accounts homed
on Skype for Business Online while other users have accounts homed on an on-premises version of Skype for
Business Server 2015) keep in mind that the Get-CsOnlineUser cmdlet only returns information for Skype for
Business Online users. However, the cmdlet will return information for both online users and on-premises users. If
you want to exclude Skype for Business Online users from the data returned by the Get-CsUser cmdlet, use the
following command:
Get-CsUser -Filter {TenantId -eq "00000000-0000-0000-0000-000000000000"}

By definition, users homed on the on-premises version will always have a TenantId equal to 00000000-0000-0000-
0000-000000000000. Users homed on Skype for Business Online will a TenantId that is equal to some value other
than 00000000-0000-0000-0000-000000000000.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineUser

The command shown in Example 1 returns information for all the users configured as online users.
-------------------------- Example 2 --------------------------

Get-CsOnlineUser -Identity "sip:kenmyer@litwareinc.com"

In Example 2 information is returned for a single online user: the user with the SIP address
"sip:kenmyer@litwareinc.com".
-------------------------- Example 3 --------------------------

Get-CsOnlineUser -Filter {ArchivingPolicy -eq "RedmondArchiving"}

Example 3 uses the Filter parameter to limit the returned data to online users who have been assigned the per-user
archiving policy RedmondArchiving. To do this, the filter value {ArchivingPolicy -eq "RedmondArchiving"} is
employed; that syntax limits returned data to users where the ArchivingPolicy property is equal to (-eq)
"RedmondArchiving".
-------------------------- Example 4 --------------------------

Get-CsOnlineUser -Filter {HideFromAddressLists -eq $True}

Example 4 returns information only for user accounts that have been configured so that the account does not
appear in Microsoft Exchange address lists. (That is, the Active Directory attribute msExchHideFromAddressLists is
True.) To carry out this task, the Filter parameter is included along with the filter value {HideFromAddressLists -eq
$True}.
-------------------------- Example 5 --------------------------

Get-CsOnlineUser -Filter {TenantId -eq "bf19b7db-6960-41e5-a139-2aa373474354"}

The command shown in Example 5 returns information for all the online users assigned to the tenant with the
TenantID "bf19b7db-6960-41e5-a139-2aa373474354". To accomplish the task, the command includes the Filter
parameter along with the filter value {TenantId -eq "bf19b7db-6960-41e5-a139-2aa373474354"}. This filter limits
the returned data to online users assigned to the tenant "bf19b7db-6960-41e5-a139-2aa373474354".

Parameters
-AsJob
{{Fill AsJob Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
This parameter is not used with Skype for Business Online.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is not used with Skype for Business Online.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on Skype for Business specific attributes. For example, you can
limit returned data to users who have been assigned a specific voice policy, or users who have not been assigned a
specific voice policy.
The Filter parameter uses the same filtering syntax that is used by the Where-Object cmdlet. For example, a filter
that returns only users who have been enabled for Enterprise Voice would look like this, with
EnterpriseVoiceEnabled representing the Active Directory attribute, -eq representing the comparison operator
(equal to), and $True (a built-in Windows PowerShell variable) representing the filter value:

{EnterpriseVoiceEnabled -eq $True}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be retrieved. User Identities can be specified using one of the following
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); or, 3) the user's Active Directory display
name (for example, Ken Myer).
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users who have a display name that ends with the string value " Smith".
Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business). For example, you can limit returned data to users who work in a specific
department, or users who have a specified manager or job title.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only users who work in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L )
representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and
"Redmond" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnModernServer
When present, the cmdlet returns a collection of users homed on Skype for Business. Users with accounts on
previous versions of the software will not be returned when you use this parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnOfficeCommunicationServer
This parameter is not used with Skype for Business Online.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
This parameter is not used with Skype for Business Online.
Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless
of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7.
Note that there is no way to guarantee which seven users will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the
command will return those three users, and then complete without error.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipUserPolicies
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UnassignedUser
Enables you to return a collection of all the users who have been enabled for Skype for Business but are not
currently assigned to a Registrar pool. Users are not allowed to log on to unless they are assigned to a Registrar
pool.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADUser or String
A String must represent a valid user account Identity (for example, "sip:kenmyer@litwareinc.com").

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.ADOCOnlineUser

Related Links
Set-CsUser
minutes to read • Edit Online

Get-CsOnlineVoicemailPolicy
In ths Article

Use the `Get-CsOnlineVoicemailPolicy` cmdlet to get a list of all pre-configured policy instances for Voicemail
service.

Syntax
Get-CsOnlineVoicemailPolicy [-LocalStore] [[-Identity] <XdsIdentity>] [-Tenant <Guid>] [-Filter <String>] [-
AsJob]
[<CommonParameters>]

Description
This cmdlet retrieves information about all the voicemail policies that have been configured for use in your
organization. Voicemail policies are used by the organization to manage Voicemail-related features such as
transcription.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineVoicemailPolicy

In Example 1, the Get-CsOnlineVoicemailPolicy cmdlet is called without any additional parameters; this returns a
collection of all the voicemail policies configured for use in your organization.
-------------------------- Example 2 --------------------------

Get-CsOnlineVoicemailPolicy -Identity TranscriptionDisabled

In Example 2, the Get-CsOnlineVoicemailPolicy cmdlet is used to return the per-user voicemail policy that has an
Identity TranscriptionDisabled. Because identities are unique, this command will never return more than one item.
-------------------------- Example 3 --------------------------

Get-CsOnlineVoicemailPolicy -Filter "tag:*"

Example 3 uses the Filter parameter to return all the voicemail policies that have been configured at the per-user
scope. The filter value "tag:*" tells the Get-CsOnlineVoicemailPolicy cmdlet to return only those policies that have
an Identity that begins with the string value "tag:".

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter accepts a wildcard string and returns all voicemail policies with identities matching that string. For
example, a Filter value of Tag:* will return all preconfigured voicemail policy instances (excluding forest default
“Global”) available to use by the tenant admins.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all
voicemail policies available for use are returned.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose voicemail policy is to be
retrieved. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return the tenant ID for each
of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.OnlineVoicemail.OnlineVoicemailPolicy

Related Links
Set-CsOnlineVoicemailPolicy
Grant-CsOnlineVoicemailPolicy
minutes to read • Edit Online

Get-CsOnlineVoicemailUserSettings
In ths Article

Use the Get-CsOnlineVoicemailUserSettings cmdlet to get information about online voicemail user settings of a
specific user.

Syntax
Get-CsOnlineVoicemailUserSettings -Identity <String> [-Tenant <Guid>] [<CommonParameters>]

Description
The Get-CsOnlineVoicemailUserSettings cmdlet returns information about online voicemail user settings of a
specific user in your organization.
NOTE
This cmdlet is currently available to PREVIEW customers only.

Examples
-------------------------- Example 1 --------------------------

Get-CsOnlineVoicemailUserSettings -Identity sip:user@contoso.com

This example gets the online voicemail user settings of user with SIP URI sip:user@contoso.com.
-------------------------- Example 2 --------------------------

Get-CsOnlineVoicemailUserSettings -Identity "00000000-0000-0000-0000-000000000000"

This example gets the online voicemail user settings of user with Object ID "00000000-0000-0000-0000-
000000000000".

Parameters
-Identity
The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an
Object ID.
Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Voicemail.Models.VoicemailUserSettings

Related Links
Set-CsOnlineVoicemailUserSettings
minutes to read • Edit Online

Get-CsOnlineVoiceRoute
In ths Article

Returns information about the online voice routes configured for use in your tenant. Online voice routes contain
instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the
public switched telephone network (PSTN ) or a private branch exchange (PBX).

Syntax
Get-CsOnlineVoiceRoute [-Tenant <Guid>] [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsOnlineVoiceRoute [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Use this cmdlet to retrieve one or more existing online voice routes in your tenant. Online voice routes contain
instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the
public switched telephone network (PSTN ) or a private branch exchange (PBX).
This cmdlet can be used to retrieve voice route information such as which online PSTN gateways the route is
associated with (if any), which online PSTN usages are associated with the route, the pattern (in the form of a
regular expression) that identifies the phone numbers to which the route applies, and caller ID settings. The PSTN
usage associates the voice route to a online voice policy.
This cmdlet is used when configuring Microsoft Phone System Direct Routing.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CsOnlineVoiceRoute

Retrieves the properties for all voice routes defined within the tenant.
-------------------------- Example 2 --------------------------

PS C:\> Get-CsOnlineVoiceRoute -Identity Route1

Retrieves the properties for the Route1 voice route.


-------------------------- Example 3 --------------------------

PS C:\> Get-CsOnlineVoiceRoute -Filter *test*


This command displays voice route settings where the Identity contains the string "test" anywhere within the value.
To find the string test only at the end of the Identity, use the value *test. Similarly, to find the string test only if it
occurs at the beginning of the Identity, specify the value test*.
-------------------------- Example 4 --------------------------

PS C:\> Get-CsOnlineVoiceRoute | Where-Object {$_.OnlinePstnGatewayList.Count -eq 0}

This command retrieves all voice routes that have not had any PSTN gateways assigned. First all voice routes are
retrieved using the Get-CsOnlineVoiceRoute cmdlet. These voice routes are then piped to the Where-Object
cmdlet. The Where-Object cmdlet narrows down the results of the Get operation. In this case we look at each voice
route (that's what the $_ represents) and check the Count property of the PstnGatewayList property. If the count of
PSTN gateways is 0, the list is empty and no gateways have been defined for the route.

Parameters
-Filter
This parameter filters the results of the Get operation based on the wildcard value passed to this parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string that uniquely identifies the voice route. If no identity is provided, all voice routes for the organization are
returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
New -CsOnlineVoiceRoute
Set-CsOnlineVoiceRoute
Remove-CsOnlineVoiceRoute
minutes to read • Edit Online

Get-CsOnlineVoiceRoutingPolicy
In ths Article

Returns information about the online voice routing policies configured for use in your tenant. Online voice routing
policies manage online PSTN usages for users of Phone System.

Syntax
Get-CsOnlineVoiceRoutingPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsOnlineVoiceRoutingPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Skype
for Business Online users an online voice routing policy enables those users to receive and to place phones calls to
the public switched telephone network by using your on-premises SIP trunks.
Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Skype
for Business Online or Teams. Among other things, you will also need to enable those users for Phone System and
will need to assign them an appropriate online voice policy.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CsOnlineVoiceRoutingPolicy

The command shown in Example 1 returns information for all the online voice routing policies configured for use in
the tenant.
-------------------------- Example 2 --------------------------

PS C:\> Get-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy"

In Example 2, information is returned for a single online voice routing policy: the policy with the Identity
RedmondOnlineVoiceRoutingPolicy.
-------------------------- Example 3 --------------------------

PS C:\> Get-CsOnlineVoiceRoutingPolicy -Filter "tag:*"

The command shown in Example 3 returns information about all the online voice routing policies configured at the
per-user scope. To do this, the command uses the Filter parameter and the filter value "tag:*"; that filter value limits
the returned data to policies that have an Identity that begins with the string value "tag:".
-------------------------- Example 4 --------------------------

PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Long Distance"}

In Example 4, information is returned only for those online voice routing policies that include the PSTN usage
"Long Distance". To carry out this task, the command first calls Get-CsVoiceRoutingPolicy without any parameters;
that returns a collection of all the voice routing policies configured for use in the organization. This collection is then
piped to the Where-Object cmdlet, which picks out only those policies where the OnlinePstnUsages property
includes (-contains) the usage "Long Distance".
-------------------------- Example 5 --------------------------

PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -notcontains "Long Distance"}

Example 5 is a variation on the command shown in Example 4; in this case, however, information is returned only
for those online voice routing policies that do not include the PSTN usage "Long Distance". In order to do that, the
Where-Object cmdlet uses the -notcontains operator, which limits returned data to policies that do not include the
usage "Long Distance".

Parameters
-Filter
Enables you to use wildcards when retrieving one or more online voice routing policies. For example, to return all
the policies configured at the per-user scope, use this syntax:
-Filter "tag:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the online voice routing policy to be retrieved. To return the global policy, use this syntax:
-Identity global
To return a policy configured at the per-user scope, use syntax like this:
-Identity "RedmondOnlineVoiceRoutingPolicy"
You cannot use wildcard characters when specifying the Identity.
If neither the Identity nor the Filter parameters are specified, then Get-CsOnlineVoiceRoutingPolicy returns all the
voice routing policies configured for use in the tenant.
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
New -CsOnlineVoiceRoutingPolicy
Set-CsOnlineVoiceRoutingPolicy
Grant-CsOnlineVoiceRoutingPolicy
Remove-CsOnlineVoiceRoutingPolicy
minutes to read • Edit Online

Get-CsOnlineVoiceUser
In ths Article

Use the `Get-CsOnlineVoiceUser` cmdlet to retrieve a voice user's telephone number and location.

Syntax
Get-CsOnlineVoiceUser [-CivicAddressId <XdsCivicAddressId>] [-DomainController <Fqdn>] [-EnterpriseVoiceStatus
<MultiValuedProperty>] [-ExpandLocation] [-First <Unlimited>] [-Force] [-GetFromAAD] [-GetPendingUsers] [-
Identity <UserIdParameter>] [-LocationId <LocationID>] [-NumberAssigned] [-NumberNotAssigned] [-
PSTNConnectivity <MultiValuedProperty>] [-SearchQuery <String>] [-Skip <Unlimited>] [-Tenant <Guid>] [-AsJob]
[<CommonParameters>]

Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CsOnlineVoiceUser -Identity Ken.Myer@contoso.com

This example uses the User Principal Name (UPN ) to retrieve the location and phone number information.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CivicAddressId
Specifies the identity of the civic address that is assigned to the target users.
Type: XdsCivicAddressId
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnterpriseVoiceStatus
Possible values are:
All
Enabled
Disabled

Type: MultiValuedProperty
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExpandLocation
Displays the location parameter with its value.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-First
Specifies the number of users to return. The default is 100.

Type: Unlimited
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GetFromAAD
Use this switch to get the users from Azure Active Directory.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GetPendingUsers
Use this switch to get only the users in pending state.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the target user. Acceptable values include:
Example: jphillips@contoso.com
Example: sip:jphillips@contoso.com
Example: 98403f08-577c-46dd-851a-f0460a13b03d

Type: UserIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationId
Specifies the location identity of the location whose users will be returned. You can find location identifiers by using
the Get-CsOnlineLisLocation cmdlet.
Type: LocationID
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberAssigned
If specified, the query will return users who have a phone number assigned.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberNotAssigned
If specified, the query will return users who do not have a phone number assigned.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PSTNConnectivity
Possible values are:
All
Online
OnPremises

Type: MultiValuedProperty
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SearchQuery
The SearchQuery parameter specifies a search string or a query formatted using Keyword Query Language (KQL ).
For more details about KQL, see Keyword Query Language syntax reference (https://go.microsoft.com/fwlink/p/?
linkid=269603).
If this parameter is empty, all users are returned.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Skip
Specifies the number of users to skip. If you used the First parameter to return the first 50 users and wanted to get
another 50, you could use -Skip 50 to avoid returning the first 50 you've already reviewed. The default is 0.

Type: Unlimited
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Deserialized.Microsoft.Rtc.Management.Hosted.Bvd.Types.LacUser

Related Links
Set-CsOnlineVoiceUser
Set-CsOnlineVoiceUserBulk
minutes to read • Edit Online

Get-CsOrganizationalAutoAttendant
In ths Article

Use the Get-CsOrganizationalAutoAttendant cmdlet to get information about Auto Attendants (AAs).

Syntax
Get-CsOrganizationalAutoAttendant [-PrimaryUri] <Uri> [-First <UInt64>] [-Skip <UInt64>] [-IncludeStatus] [-
ApplicationId <Guid>] [-Tenant <Guid>] [<CommonParameters>]

Description
The Get-CsOrganizationalAutoAttendant cmdlet returns information about the OAAs in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsOrganizationalAutoAttendant

This example gets all OAAs in the organization.


-------------------------- Example 2 --------------------------

Get-CsOrganizationalAutoAttendant -PrimaryUri sip:mainoaa@contoso.com

This example gets the OAAs that has the Primary URI of sip:mainoaa@contoso.com.
-------------------------- Example 3 --------------------------

Get-CsOrganizationalAutoAttendant -First 10

This example gets the first ten auto attendants configured for use in the organization.
-------------------------- Example 4 --------------------------

Get-CsOrganizationalAutoAttendant -Skip 5 -First 10

This example skips initial 5 auto attendants and gets the next 10 OAAs configured for use in the organization.

Parameters
-ApplicationId
Specifies a custom application ID to use for auto attendants. This parameter is reserved for Microsoft internal use
only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-First
The First parameter indicates the maximum number of auto attendants to retrieve as the result. It is intended to be
used for pagination purposes.

Type: System.UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IncludeStatus
If specified, the status records for each auto attendant in the result set are also retrieved.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
The PrimaryUri parameter represents the SIP address for the OAA to be retrieved. If this parameter is not specified,
then all created OAAs in the organization are returned.

Type: System.Uri
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Skip
The Skip parameter indicates the number of initial auto attendants to skip in the result. It is intended to be used for
pagination purposes.

Type: System.UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The String is used as the PrimaryUri input.

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.OrgAutoAttendant

Related Links
New -CsOrganizationalAutoAttendant
Set-CsOrganizationalAutoAttendant
Remove-CsOrganizationalAutoAttendant
minutes to read • Edit Online

Get-CsOrganizationalAutoAttendantHolidays
In ths Article

Use Get-CsOrganizationalAutoAttendantHolidays cmdlet to get the holiday information for an existing Auto
Attendant (AA).

Syntax
Get-CsOrganizationalAutoAttendantHolidays [-PrimaryUri] <Uri> [-Years <List>] [-Names <List>] [-Tenant <Guid>]
[<CommonParameters>]

Description
The Get-CsOrganizationalAutoAttendantHolidays provides a convenient way to visualize the information of all the
holidays contained within an auto attendant.

Examples
-------------------------- Example 1 --------------------------

Get-CsOrganizationalAutoAttendantHolidays -PrimaryUri "sip:mainoaa@contoso.com"

In this example, the Get-CsOrganizationalAutoAttendantHolidays cmdlet is used to get all holidays in an auto
attendant with Primary URI of sip:mainoaa@contoso.com.
-------------------------- Example 2 --------------------------

Get-CsOrganizationalAutoAttendantHolidays -PrimaryUri "sip:mainoaa@contoso.com" -Years @(2017)

In this example, the Get-CsOrganizationalAutoAttendantHolidays cmdlet is used to get all holidays in year 2017 in
an auto attendant with Primary URI of sip:mainoaa@contoso.com.
-------------------------- Example 3 --------------------------

Get-CsOrganizationalAutoAttendantHolidays -PrimaryUri "sip:mainoaa@contoso.com" -Years @(2017) -Name


@("Christmas")

In this example, the Get-CsOrganizationalAutoAttendantHolidays cmdlet is used to get holiday named Christmas
in the year 2017 in an auto attendant with Primary URI of sip:mainoaa@contoso.com.
-------------------------- Example 4 --------------------------

Get-CsOrganizationalAutoAttendantHolidays -PrimaryUri "sip:mainoaa@contoso.com" | Format-Table -Wrap -AutoSize

In this example, the Get-CsOrganizationalAutoAttendantHolidays cmdlet is used to retrieve all holidays in an auto
attendant with Primary URI of sip:mainoaa@contoso.com and the result is formatted as a table.

Parameters
-Names
The Names parameter represents the names for the holidays to be retrieved. If this parameter is not specified, then
all holidays in the OAA are returned.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
The PrimaryUri parameter represents the SIP address of the auto attendant whose holidays are to be retrieved.

Type: System.Uri
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Years
The Years parameter represents the years for the holidays to be retrieved. If this parameter is not specified, then
holidays for all years in the OAA are returned.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The String is used as the PrimaryUri input.

Outputs
Microsoft.Rtc.Management.OAA.Models.HolidayVisRecord
Related Links
Import-CsOrganizationalAutoAttendantHolidays
Export-CsOrganizationalAutoAttendantHolidays
minutes to read • Edit Online

Get-CsOrganizationalAutoAttendantStatus
In ths Article

Use Get-CsOrganizationalAutoAttendantStatus cmdlet to get the status of an Auto Attendant (AA) provisioning.

Syntax
Get-CsOrganizationalAutoAttendantStatus [-PrimaryUri] <Uri> [-IncludeResources <List>] [-ApplicationId <Guid>]
[-Tenant <Guid>] [<CommonParameters>]

Description
This cmdlet provides a way to return the provisioning status of an auto attendant configured for use in your
organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsOrganizationalAutoAttendantStatus -PrimaryUri "sip:mainoaa@contoso.com"

In Example 1, the Get-CsOrganizationalAutoAttendantStatus cmdlet is used to get status records for all resources
of an auto attendant with Primary URI of sip:mainoaa@contoso.com.
-------------------------- Example 2 --------------------------

Get-CsOrganizationalAutoAttendantStatus -PrimaryUri sip:mainoaa@contoso.com -IncludeResources @("AudioFile")

In Example 2, the Get-CsOrganizationalAutoAttendantStatus cmdlet is used to get status records pertaining to


audio files only of an auto attendant with Primary URI of sip:mainoaa@contoso.com.

Parameters
-ApplicationId
Specifies a custom application ID to use for auto attendants. This parameter is reserved for Microsoft internal use
only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-IncludeResources
The IncludeResources parameter identities the auto attendant resources whose status is to be retrieved. Available
resources are:
AudioFile: Indicates status for audio files used by OAA.
DialByNameVoiceResponses: Indicates status for speech recognition when using dial-by-name (directory lookup)
feature with OAA.
SipProvisioning: Indicates status for calling OAA through its SIP (Primary) URI.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
The Primary URI represents the SIP address of the auto attendant whose provisioning status is to be retrieved.

Type: System.Uri
Required: True
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Get-CsOrganizationalAutoAttendantStatus cmdlet accepts a string as the PrimaryUri parameter.

Outputs
Microsoft.Rtc.Management.OAA.Models.StatusRecord

Related Links
Get-CsOrganizationalAutoAttendant
minutes to read • Edit Online

Get-CsOrganizationalAutoAttendantSupportedLanguage
In ths Article

The Get-CsOrganizationalAutoAttendantSupportedLanguage cmdlet gets languages that are supported by the


Auto Attendant (AA) service.

Syntax
Get-CsOrganizationalAutoAttendantSupportedLanguage [-Identity] <System.String> [-Tenant <Guid>]
[<CommonParameters>]

Description
The Get-CsOrganizationalAutoAttendantSupportedLanguage cmdlet gets all languages (and their corresponding
voices/speakers) that are supported by the OAA service.

Examples
-------------------------- Example 1 --------------------------

Get-CsOrganizationalAutoAttendantSupportedLanguage

This example gets all supported languages.


-------------------------- Example 2 --------------------------

Get-CsOrganizationalAutoAttendantSupportedLanguage -Identity "en-US"

This example gets the language that the Identity parameter specifies (en-US ).

Parameters
-Identity
The Identity parameter designates a specific language to be retrieved. If this parameter is not specified, then all
supported languages are returned.

Type: System.String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.Language
minutes to read • Edit Online

Get-CsOrganizationalAutoAttendantSupportedTimeZone
In ths Article

The Get-CsOrganizationalAutoAttendantSupportedTimeZone cmdlet gets supported time zones for the Auto
Attendant (AA) service.

Syntax
Get-CsOrganizationalAutoAttendantSupportedTimeZone [-Identity] <String> [-Tenant <Guid>] [<CommonParameters>]

Description
The Get-CsOrganizationalAutoAttendantSupportedTimeZone cmdlet gets all the time zones that the OAA service
supports, or a specific time zone if its Identity is provided.

Examples
-------------------------- Example 1 --------------------------

Get-CsOrganizationalAutoAttendantSupportedTimeZone

This example gets all supported time zones.


-------------------------- Example 2 --------------------------

Get-CsOrganizationalAutoAttendantSupportedTimeZone -Identity "Pacific Standard Time"

This example gets the timezone that the Identity parameter specifies (Pacific Standard Time).

Parameters
-Identity
The Identity parameter specifies a time zone to be retrieved. If this parameter is not used, then all supported time
zones are returned.

Type: System.String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone
minutes to read • Edit Online

Get-CsOrganizationalAutoAttendantTenantInformation
In ths Article

Gets the default tenant information for Auto Attendant (AA) feature.

Syntax
Get-CsOrganizationalAutoAttendantTenantInformation [-Tenant <Guid>] [<CommonParameters>]

Description
The Get-CsOrganizationalAutoAttendantTenantInformation cmdlet gets the default tenant information for Auto
Attendant (AA) feature.

Examples
-------------------------- Example 1 --------------------------

Get-CsOrganizationalAutoAttendantTenantInformation

Gets the default auto attendant information for the logged in tenant.

Parameters
-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.TenantInformation
minutes to read • Edit Online

Get-CsOutboundCallingNumberTranslationRule
In ths Article

Returns information about the outbound calling number translation rules created for use in your organization. An
outbound calling number translation rule converts the E.164 phone numbers used by Skype for Business Server to
a format that can be used by trunking peers that do not support E.164 numbers. This cmdlet was introduced in
Lync Server 2013.

Syntax
Get-CsOutboundCallingNumberTranslationRule [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsOutboundCallingNumberTranslationRule [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
Outbound calling number translation rules convert the E.164 phone numbers used by Skype for Business to a
format that can be used by trunking peers that do not support E.164 numbers; when you create a translation rule
you supply a regular expression representing the outbound E.164 number (the Pattern) as well as a regular
expression representing the converted number (the Translation).
Outbound calling number translation rules must be bound to a collection of trunk configuration settings; when you
create a new translation rule you must specify both the Identity of the trunking configuration settings and a name
for the new rule (for example, site:Redmond/RedmondTranslationRule). Note that the trunking configuration
settings do not necessarily have to exist at the time you create a new rule. For example, suppose you create the rule
site:Redmond/RedmondTranslationRule but no trunk configuration settings have been created for the Redmond
site. If the Redmond site is a valid site, trunk configuration settings will automatically be created for the site and the
new translation rule will be assigned to that collection of settings. However, your command will fail if the Redmond
site does not exist.
Skype for Business Server Control Panel: To view outbound calling number translation roles in the Skype for
Business Server Control Panel, click Voice Routing and then click Trunk Configuration. Double-click appropriate
entry in the Name column and then, in the Edit Trunk Configuration dialog box, scroll down to the section labeled
Calling number translation rules.

Examples
-------------------------- Example 1 --------------------------

Get-CsOutboundCallingNumberTranslationRule

The command shown in Example 1 returns information about all the outbound calling number translation rules
currently configured for use in the organization.
-------------------------- Example 2 --------------------------

Get-CsOutboundCallingNumberTranslationRule -Identity "site:Redmond/SevenDigit"

In Example 2, information is returned only for the outbound calling number translation rule that has the Identity
"site:Redmond/SevenDigit."
-------------------------- Example 3 --------------------------

Get-CsOutboundCallingNumberTranslationRule -Identity "site:Redmond"

Example 3 returns information for all the outbound calling number translation rules configured for the Redmond
site. This is done by setting the value of the Identity parameter to the Identity of the Redmond site (site:Redmond).
-------------------------- Example 4 --------------------------

Get-CsOutboundCallingNumberTranslationRule -Identity "site:Redmond" | Where-Object {$_.Priority -eq 0}

The command shown in Example 4 returns information only for outbound calling number translation rules that are
on the Redmond site and have a Priority equal to 0. To do this, the command first uses the Get-
CsOutboundCallingNumberTranslationRule cmdlet and the Identity parameter to return a collection of all the
translation rules assigned to the Redmond site. This collection is then piped to the Where-Object cmdlet, which
picks out only those rules that have a Priority equal to 0.

Parameters
-Filter
Performs a wildcard search that allows you to return only those outbound translation rules that have Identities that
match the wildcard string. For example, this syntax returns all the translation rules that include the string value
"Redmond":
-Filter "*Redmond*"

To return all the translation rules configured at the site scope use this syntax:
-Filter "site:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the outbound calling number translation rule you want to retrieve. The Identity consists of the
scope followed by a unique name within each scope; for example:
-Identity "site:Redmond/OutboundRule1"

To return all the translation rules configured for a specific scope (such as the Redmond site) simply set the Identity
to the scope itself:
-Identity "site:Redmond"

If neither the Identity parameter nor the Filter parameter is specified the Get-
CsOutboundCallingNumberTranslationRule cmdlet returns information about all your outbound calling number
translation rules.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the outbound calling number translation rule data from the local replica of the Central Management store
rather than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule#Decora
ted

Related Links
New -CsOutboundCallingNumberTranslationRule
Remove-CsOutboundCallingNumberTranslationRule
Set-CsOutboundCallingNumberTranslationRule
minutes to read • Edit Online

Get-CsOutboundTranslationRule
In ths Article

Retrieves one or more outbound translation rules. An outbound translation rule converts phone numbers to the
local dialing format for interaction with private branch exchange (PBX) systems and public switched telephone
network (PSTN ) gateways. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsOutboundTranslationRule [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsOutboundTranslationRule [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Call this cmdlet to retrieve an existing outbound translation rule. Skype for Business Server normalizes phone
numbers to E.164 format. However, many private branch exchange (PBX) systems aren't able to work with this
format. Outbound translations rules translate the number to the local dialing format prior to sending the number to
the Mediation Server or gateway.
Each outbound translation rule is associated with a trunk configuration. More than one outbound translation rule
can be associated with each trunk configuration. Therefore, the Identity for each rule consists of a scope along with
a name that is unique within the scope (in the format scope/name, for example site:Redmond/OBR1). The rule is
automatically associated with the trunk configuration with the same scope.

Examples
-------------------------- Example 1 --------------------------

Get-CsOutboundTranslationRule

This example retrieves all outbound translation rules for the Skype for Business Server deployment.
-------------------------- Example 2 --------------------------

Get-CsOutboundTranslationRule -Identity "site:Redmond/Prefix Redmond"

This example retrieves a single outbound translation rule: the rule with Identity site:Redmond/Prefix Redmond.
-------------------------- Example 3 --------------------------

Get-CsOutboundTranslationRule -Filter site:*

This example retrieves all site-level outbound translation rules. The command calls the Get-
CsOutboundTranslationRule cmdlet with a Filter of site:*, which will return a collection of all rules with Identity
values beginning with the string site:.

Parameters
-Filter
Performs a wildcard search on Identity that allows you to narrow down your results to only those outbound
translation rules whose identities match the given wildcard string.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier for the outbound translation rule you want to retrieve. The Identity consists of the scope
followed by a unique name within each scope (for example, site:Redmond/OutboundRule1). Specifying a value for
Identity will return at most one outbound translation rule.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the outbound translation rule from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule

Related Links
New -CsOutboundTranslationRule
Remove-CsOutboundTranslationRule
Set-CsOutboundTranslationRule
minutes to read • Edit Online

Get-CsPartnerApplication
In ths Article

Returns information about all the partner applications configured for use in the organization. A partner application
is any application that Skype for Business Server can directly exchange security tokens with, without having to
exchange those tokens by using a third-party security token server. This cmdlet was introduced in Lync Server
2013.

Syntax
Get-CsPartnerApplication [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsPartnerApplication [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [-Tenant <Guid>]


[<CommonParameters>]

Description
In Skype for Business Server, server-to-server authentication (for example, the authentication that enables Skype
for Business Server and Exchange to share information) is carried out using the OAuth security protocol. This type
of authentication typically requires three servers: the two servers that need to communicate with one another
(Server A and B ) and a third-party security token server. If Servers A and B need to communicate with one another,
the two servers contact the token server (also known as an OAuth server) and obtain mutually-trusted security
tokens that the two servers can exchange in order to prove their identities.
If you are using an on-premises version of Skype for Business Server and you need to communicate with another
server product that fully supports the OAuth protocol (for example, Exchange or SharePoint) then you typically do
not need to use a token server; that's because these server products are able to issue their own security tokens.
However, you will need to configure the other server product (e.g., Exchange) as a partner application. (You will also
need to configure Skype for Business Server as a partner application for the other server product.) In Skype for
Business Server, partner applications are managed by using the CsPartnerApplication cmdlets.
Skype for Business Server Control Panel: The functions carried out by the Get-CsPartnerApplication cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsPartnerApplication

The command shown in Example 1 returns information about all the partner applications configured for use in the
organization
-------------------------- Example 2 --------------------------
Get-CsPartnerApplication -Identity "MicrosoftExchange"

Example 2 returns information for the partner application that has the Identity MicrosoftExchange.
-------------------------- Example 3 --------------------------

Get-CsPartnerApplication | Where-Object {$_.ApplicationIdentifier -eq "microsoft.exchange"}

In Example 3, information is returned for all the partner applications that have an application identifier equal to
"microsoft.exchange." In order to do this, the command first calls the Get-CsPartnerApplication cmdlet without any
parameters; that returns a collection of all the configured partner applications. That collection is then piped to the
Where-Object cmdlet, which picks out only those partner applications where the ApplicationIdentifier property is
equal to "microsoft.exchange."
-------------------------- Example 4 --------------------------

Get-CsPartnerApplication | Where-Object {$_.Enabled -eq $False}

In Example 4, information is returned for all the partner applications that are currently disabled. To do this, the
command first calls the Get-CsPartnerApplication cmdlet in order to return a collection of all the partner
applications, both enabled and disabled. That collection is then piped to the Where-Object cmdlet, which selects
only those applications where the Enabled property is equal to False.

Parameters
-Filter
Enables you to use wildcard values to return one or more partner applications. For example, to return all the
partner applications that have an Identity that includes the string value "Microsoft" use this syntax:
-Filter "*Microsoft*"

You cannot use both the Filter parameter and the Identity parameter in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the partner application. For example:
-Identity "MicrosoftExchange"

If neither the identity parameter nor the Filter parameter are included in the command then the Get-
CsPartnerApplication cmdlet will return information for all your partner applications.
Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the partner application data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account where whose partner
application settings are to be retrieved.
For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication#Decorated

Related Links
New -CsPartnerApplication
Remove-CsPartnerApplication
Set-CsPartnerApplication
minutes to read • Edit Online

Get-CsPersistentChatAddin
In ths Article

Returns information about all the Persistent Chat add-ins configured for use in the organization. A Persistent Chat
add-in is a customized web page that can be embedded within a Persistent Chat client. This cmdlet was introduced
in Lync Server 2013.

Syntax
Get-CsPersistentChatAddin [-Identity] <String> [<CommonParameters>]

Get-CsPersistentChatAddin [-PersistentChatPoolFqdn <String>] [<CommonParameters>]

Description
The Persistent Chat service provides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
Add-ins serve as extensions to a Persistent Chat chat room. Add-ins are external applications (that is, items not built
into Persistent Chat itself) that are associated with a particular chat room. For example, a help desk chat room
might include a URL that links to a Web page or to an application that shows the status of the day's help requests.
The Skype for Business Server Windows PowerShell command-line interface cmdlets do not provide the ability to
create these add-ins. Instead, the CsPersistentChatAddin cmdlets are used to associate (or disassociate) an add-in
from a chat room.
To view Persistent Chat add-in information in Skype for Business Server Control Panel, click Persistent Chat and
then click Add-in.

Examples
-------------------------- Example 1 --------------------------

Get-CsPersistentChatAddin

Example 1 returns information about all the Persistent Chat add-ins configured for use in the organization.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatAddin -Identity "atl-cs-001.litwareinc.com\ITPersistentChatAddin"

In Example 2, information is returned for a specific Persistent Chat add-in: the add-in with the Identity atl-cs-
001.litwareinc.com\ITPersistentChatAddin.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatAddin -PersistentChatPoolFqdn "atl-cs-001.litwareinc.com"

Example 3 returns information for all the Persistent Chat add-ins configured for use on the pool atl-cs-
001.litwareinc.com.

Parameters
-Identity
Unique identifier for the Persistent Chat add-in to be returned. The Identity is composed of the fully qualified
domain name of the Persistent Chat pool where the add-in is located, a "" character, and the add-in name. For
example:
-Identity "atl-gc-001.litwareincom\ITPersistentChatAddin"

If this parameter is not specified then the Get-CsPersistentChatAddin cmdlet returns information about all your
Persistent Chat add-ins.

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Fully qualified domain name for the Persistent Chat pool. If this parameter is used then only Persistent Chat add-
ins found on the specified pool will be returned. If this parameter is not used then the Get-CsPersistentChatAddin
cmdlet will return add-ins from all your Persistent Chat pools. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.PersistentChat.Cmdlets.AddinObject

Related Links
New -CsPersistentChatAddin
Remove-CsPersistentChatAddin
Set-CsPersistentChatAddin
minutes to read • Edit Online

Get-CsPersistentChatCategory
In ths Article

Returns information about the Persistent Chat categories in use in your organization. A Persistent Chat category
represents a collection of Persistent Chat chat rooms. Each chat room must be associated with a category. This
cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsPersistentChatCategory [-Identity] <String> [-AsObject] [<CommonParameters>]

Get-CsPersistentChatCategory [-AsObject] [-PersistentChatPoolFqdn <String>] [<CommonParameters>]

Description
The Persistent Chat serviceprovides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
Persistent Chat categories provide a way for administrators to organize, and manage, Persistent Chat chat rooms.
Categories provide a way for administrators to group related chat rooms; for example, all chat rooms used by the
finance department can be grouped in the same category. Likewise, categories provide a way for administrators to
manage permissions to these rooms, dictating which users are allowed access to the rooms, which users are denied
access to the rooms, and which users are allowed to create new chat rooms within the category.
Note that all chat rooms must belong to a category; you cannot create a chat room without assigning that room to
a category. That means that you must create at least one category before you can add any chat rooms to your
Persistent Chat implementation.
To view Persistent Chat categories in Skype for Business Server Control Panel, click Persistent Chat and then click
Category.

Examples
-------------------------- Example 1 --------------------------

Get-CsPersistentChatCategory

The command shown in Example 1 returns information for all the Persistent Chat categories configured for use in
the organization.
-------------------------- Example 2 --------------------------
Get-CsPersistentChatCategory -PersistentChatPoolFqdn "atl-cs-001.litwareinc.com"

In Example 2, information is returned for all the Persistent Chat categories configured for use on the pool atl-cs-
001.litwareinc.com.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatCategory | Where-Object {$_.Invites -eq $False}

Example 3 returns information for all the Persistent Chat categories where the Invites property has been set to
False. To do this, the command first uses the Get-CsPersistentChatCategory cmdlet to return a collection of all the
Persistent Chat categories. This collection is then piped to the Where-Object cmdlet, which picks out only those
categories where the Invites property is set to False ($False).
-------------------------- Example 4 --------------------------

Get-CsPersistentChatCategory | Where-Object {$_.Creators -contains "Ken Myer"}

In Example 4, information is returned for all the Persistent Chat categories where Ken Myer is listed as one of the
creators. To do this, the Get-CsPersistentChatCategory cmdlet is first used to return a collection of all the Persistent
Chat categories. This collection is then piped to the Where-Object cmdlet, which picks out any category where the
Creators property includes (-contains) the name "Ken Myer".

Parameters
-AsObject
When specified, Active Directory display names are used when showing users who are on the AllowedMembers,
DeniedMembers, or Creators lists. When not specified, SIP addresses are used when showing these users.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the chat room category. The Identity consists of the Persistent Chat pool were the category is
located followed by the category Name; for example:
-Identity "atl-gc-001.litwareinc.com\ITChat"

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Fully qualified domain name of the Persistent Chat pool that hosts Persistent Chat categories. If you use the
PoolFqdn parameter without including the Name parameter, information will be returned for all the Persistent Chat
categories on the specified pool. If you leave off both the Name and PoolFqdn parameters, then information will be
returned for all your Persistent Chat categories.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.PersistentChat.Cmdlets.CategoryObject

Related Links
New -CsPersistentChatCategory
Remove-CsPersistentChatCategory
Set-CsPersistentChatCategory
minutes to read • Edit Online

Get-CsPersistentChatComplianceConfiguration
In ths Article

Returns information about the Persistent Chat compliance configuration settings currently in use in the
organization. Persistent Chat compliance enables administrators to maintain an archive of Persistent Chat items
and activities including: new messages; new events (for example, a user entering or existing a chat room); file
uploads and downloads; and any searches run against the chat history. This cmdlet was introduced in Lync Server
2013.

Syntax
Get-CsPersistentChatComplianceConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsPersistentChatComplianceConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The Persistent Chat service provides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
Many organizations (including organizations involved in health care and organizations involved in the financial
industry) are required to maintain archives of all their electronic communications; this includes conversations that
might take place using the Persistent Chat service. Lync Server allows you to create a separate compliance database
that keeps a detailed of archive of everything that happens in your Persistent Chat chat rooms. Persistent Chat
compliance can be enabled or disabled at the site scope or at the service scope (that is, compliance can be enabled
or disabled for a given Persistent Chat pool). In addition, Persistent Chat compliance can only be managed using
the Windows PowerShell command-line interface; there are no options available in the Skype for Business Server
Control Panel for managing Persistent Chat compliance.
The functions carried out by the Get-CsPersistentChatComplianceConfiguration cmdlet are not available in the
Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsPersistentChatComplianceConfiguration

The command shown in Example 1 returns information about all the Persistent Chat compliance configuration
settings currently in use in your organization.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatComplianceConfiguration -Identity "site:Redmond"

In Example 2, information is returned for the Persistent Chat compliance configuration settings applied to the
Redmond site.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatComplianceConfiguration -Filter "service:*"

Example 3 returns information about all the Persistent Chat compliance configuration settings applied to the
service scope. This is done by including the Filter parameter and the filter value "service:*".
-------------------------- Example 4 --------------------------

Get-CsPersistentChatComplianceConfiguration | Where-Object {$_.OneChatRoomPerOutputFile -eq $True}

In Example 4, information is returned for all the Persistent Chat compliance configuration settings where the
OneChatRoomPerOutputFile property is equal to True. To do this, the command first uses the Get-
CsPersistentChatComplianceConfiguration to return a collection consisting of all the Persistent Chat compliance
configuration settings. That collection is then piped to the Where-Object cmdlet, which picks out only those settings
where the OneChatRoomPerOutputFile property is equal to True ($True).
-------------------------- Example 5 --------------------------

Get-CsPersistentChatComplianceConfiguration | Where-Object {$_.CustomConfiguration -ne $Null}

In Example 5, returned information is limited to Persistent Chat compliance configuration settings where the
CustomConfiguration property is set to a null value. To carry out this task, the command first uses the Get-
CsPersistentChatComplianceConfiguration cmdlet to return a collection of all the Persistent Chat compliance
configuration settings currently in use. That collection is then piped to the Where-Object cmdlet, which selects only
those settings where CustomConfiguration is equal to a null value ($Null)

Parameters
-Filter
Enables you to use wildcards when specifying the collection (or collections) of Persistent Chat compliance settings
to be returned. For example, this syntax returns all the settings policies configured at the service scope:
-Filter "service:*"

The Filter and Identity parameters cannot be used in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat compliance settings to be returned. To return the global collection, use this
syntax:
-Identity "global"

To return a collection of settings configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To return a collection configured at the service scope, use syntax like this:
-Identity "service:PersistentChatServer:atl-gc-001.litwareinc.com"

Note that you cannot use wildcards with the Identity parameter.
If neither the Identity parameter nor the Filter parameter are included in a command then the Get-
CsPersistentChatComplianceConfiguration cmdlet will return information about all the Persistent Chat compliance
settings in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Persistent Chat compliance data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatComplianceConfiguration

Related Links
New -CsPersistentChatComplianceConfiguration
Remove-CsPersistentChatComplianceConfiguration
Set-CsPersistentChatComplianceConfiguration
minutes to read • Edit Online

Get-CsPersistentChatConfiguration
In ths Article

Returns information about the Persistent Chat configuration settings currently in use in your organization.
Persistent Chat configuration settings are used to manage the Persistent Chat service. For example, these settings
allow you to specify the maximum number of users who can participate in a chat room. This cmdlet was introduced
in Lync Server 2013.

Syntax
Get-CsPersistentChatConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsPersistentChatConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The Persistent Chat service provides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
The Persistent Chat service is managed, in part, by Persistent Chat configuration settings, which dictate such things
as the number of previously-posted chat messages immediately available when you log on to a chat room (the chat
history) or the maximum size of a file that can be uploaded to (or downloaded from) the service. These settings can
be configured at the global or the site scope, or at the service scope (that is, you can have a custom collection of
settings assigned to an individual Persistent Chat pool).
To view Persistent Chat configuration information in the Skype for Business Server Control Panel, click Persistent
Chat and then click Persistent Chat Configuration.

Examples
-------------------------- Example 1 --------------------------

Get-CsPersistentChatConfiguration

The command shown in Example 1 returns information for all the Persistent Chat configuration settings in use in
the organization.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatConfiguration -Identity "site:Redmond"


In Example 2, information is returned for a specified set of Persistent Chat configuration settings: the settings
applied to the Redmond site.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatConfiguration -Filter "service:*"

Example 3 returns information for all the Persistent Chat configuration settings applied to the site scope. This is
done by including the Filter parameter and the filter value "service:*".
-------------------------- Example 4 --------------------------

Get-CsPersistentChatConfiguration | Where-Object {$_.DefaultChatHistory -gt 30}

In Example 4, information is returned for all the Persistent Chat configuration settings where the default chat
history is set to a value greater than 30. To carry out this task the command first uses the Get-
CsPersistentChatConfiguration cmdlet to return a collection of all the Persistent Chat configuration settings. This
collection is then piped to the Where-Object cmdlet, which picks out only those settings where the
DefaultChatHistory property is greater than (-gt) 30.
-------------------------- Example 5 --------------------------

Get-CsPersistentChatConfiguration | Where-Object {$_.RoomManagementUrl -eq $Null}

Example 5 shows how you can return information for all the Persistent Chat configuration settings where the room
management URL has not been defined. To do this, the command first uses the Get-CsPersistentChatConfiguration
cmdlet to return a collection of all the Persistent Chat configuration settings. In turn, this collection is piped to the
Where-Object cmdlet, which selects any settings where the RoomManagementUrl property is equal to a null value
($Null).

Parameters
-Filter
Enables you to use wildcards when specifying the collection (or collections) of Persistent Chat configuration
settings to be returned. For example, this syntax returns all the settings configured at the service scope:
-Filter "service:*"

The Filter and Identity parameters cannot be used in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat configuration settings to be returned. To return the global collection, use
this syntax:
-Identity "global"
To return a collection of settings configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To return a collection configured at the service scope, use syntax like this:
-Identity "service:PersistentChatServer:atl-gc-001.litwareinc.com"

Note that you cannot use wildcards with the Identity parameter.
If neither the Identity parameter nor the Filter parameter are included in a command then the Get-
CsPersistentChatConfiguration cmdlet will return information about all the Persistent Chat configuration settings in
use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Persistent Chat configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatConfiguration

Related Links
New -CsPersistentChatConfiguration
Remove-CsPersistentChatConfiguration
Set-CsPersistentChatConfiguration
minutes to read • Edit Online

Get-CsPersistentChatEligiblePrincipal
In ths Article

Returns the eligible principals for a Persistent Chat category or chat room. Eligible principals include allowed
members or managers (for a category of chat room) as well as allowed presenters (chat room only). This cmdlet
was introduced in Lync Server 2013.

Syntax
Get-CsPersistentChatEligiblePrincipal -Category <String> [-Filter <String>] [-PersistentChatPoolFqdn <String>]
[-ResultSize <Int32>] [<CommonParameters>]

Get-CsPersistentChatEligiblePrincipal -Room <String> [-Filter <String>] [-PersistentChatPoolFqdn <String>]


[-Presenters] [-ResultSize <Int32>] [<CommonParameters>]

Description
The Persistent Chat service provides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
Chat categories provide the option of specifying certain users as Creators; that is, users who are allowed to create
chat rooms within the category. Likewise, chat rooms provide the option of specifying users as Managers and/or
Presenters. In order to be assigned any of these roles, however, the users in question must appear on the
AllowedMembers list for the specified category/room. You can retrieve the list of allowed members for a room or
category by using the Get-CsPersistentChatRoom cmdlet and the Get-CsPersistentChatCategory cmdlets However,
if a security group, OU, or domain has been added to the allowed members list you will not see the names of the
users in that security group, OU, or domain. For example, if the security group FinanceManagers is on the allowed
list you will not see the names of the users who belong to FinanceManagers; instead, you will only see the name of
the group.
To view the names of all the users in that group (as well as the names of all the users on the allowed members list
for a category or room) use the Get-CsPersistentChatEligiblePrincipal room instead.
The functions carried out by the Get-CsPersistentChatEligiblePrincipal cmdlet are not available in the Skype for
Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------
Get-CsPersistentChatEligiblePrincipal -PersistentChatPoolFqdn "atl-persistentchat-001.litwareinc.com" -Category
"ITChat"

The command shown in Example 1 returns information about the eligible principals for the Persistent Chat
category ITChat.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatEligiblePrincipal -PersistentChatPoolFqdn "atl-persistentchat-001.litwareinc.com" -Room


"HelpDeskChatRoom" -Presenters

In Example 2, information is returned for all the eligible presenters for the chat room HelpDeskChatRoom.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatEligiblePrincipal -PersistentChatPoolFqdn "atl-persistentchat-001.litwareinc.com" -Room


"HelpDeskChatRoom" -Presenters | Where-Object {$_.PersistentChatPrincipalType -ne "user"}

Example 3 is a variation on the command shown in Example 2; in this example, however, information is returned
only for Persistent Chat presenters which do not represent user accounts. To do this, the Get-
CsPersistentChatEligiblePrincipal cmdlet is first used to return all the presenters for the chat room
HelpDeskChatRoom. That collection is then piped to the Where-Object cmdlet, which selects only those presenters
where the PersistentChatPrincipalType property is not equal to (-ne) "user".

Parameters
-Category
Name of the Group Chat category for which eligible principals are to be returned. You must use either the Category
or the Room parameter when calling the Get-CsPersistentChatEligiblePrincipal cmdlet; however, you cannot use
both of those parameters in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Provides a way to filter for eligible principals by using a wildcard search. For example:
-Filter "*smith*"

Note that the Filter parameter can only filter on user SIP addresses.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Fully qualified domain name of the persistent Chat pool. For example:
-PersistentChatPoolFqdn "atl-persistentchat-001.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Presenters
When included in the command, returns the eligible presenters for a Persistent Chat chat room. When not included
in the command, the Get-CsPersistentChatEligiblePrincipal cmdlet returns eligible members and managers instead.
This parameter can only be used along with the Room parameter, and can only return information for rooms
configured as auditoriums.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven Persistent Chat
principals (regardless of the number of users that are in your forest) include the ResultSize parameter and set the
parameter value to 7. Note that there is no way to guarantee which seven principals will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three principals in your forest, the
command will return those three principals, and then complete without error.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Room
Name of the Group Chat room for which eligible principals are to be returned. You must use either the Category or
the Room parameter when calling the Get-CsPersistentChatEligiblePrincipal cmdlet; however, you cannot use both
of those parameters in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.GroupChat.Cmdlets.ADPersistentChatPrincipal

Related Links
Set-CsPersistentChatCategory
New -CsPersistentChatRoom
minutes to read • Edit Online

Get-CsPersistentChatEndpoint
In ths Article

Returns information about the Persistent Chat endpoints configured for use in the organization. A Persistent Chat
endpoint is an Active Directory contact object provides a friendly URL for a Skype for Business Server Persistent
Chat pool. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsPersistentChatEndpoint [[-Identity] <UserIdParameter>] [-Credential <PSCredential>]
[-DomainController <Fqdn>] [-Filter <String>] [-LdapFilter <String>] [-OU <OUIdParameter>]
[-PersistentChatPoolFqdn <Fqdn>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [<CommonParameters>]

Description
The Persistent Chat service provides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
When you install the Persistent Chat service, an endpoint is automatically created for each Persistent Chat pool; this
endpoint is an Active Directory contact object that maintains the pool URI. If all your users are running Skype for
Business this should be sufficient.
However, if you have users running legacy clients (such as Microsoft Lync 2010 these users might find the default
Persistent Chat URIs difficult to work with and difficult to use when pointing their legacy client towards the pool.
Because of this, administrators can use the New -CsPersistentChatEndpoint cmdlet to create an additional contact
object for the pool, a contact object that provides a friendlier, easier-to-use URI. The Get-CsPersistentChatEndpoint
cmdlet provides a way for you to return information about all the Persistent Chat endpoints configured for use in
your organization.
The functions carried out by the Get-CsPersistentChatEndpoint cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsPersistentChatEndpoint

The command shown in Example 1 returns information about all the Persistent Chat endpoints configured for use
in the organization.
-------------------------- Example 2 --------------------------
Get-CsPersistentChatEndpoint -Identity "sip:pce@litwareinc.com"

Example 2 uses the Filter parameter to return information for the Persistent Chat endpoint that has the Identity
"sip:pce@litwareinc.com". In this case, the SIP address is used as the Identity.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatEndpoint -PersistentChatPoolFqdn atl-pcpool-001.litwareinc.com

Example 3 returns information about all the Persistent Chat endpoints configured for use on the Persistent Chat
pool atl-pcpool-001.litwareinc.com. This is done by including the PoolFqdn parameter followed by the fully
qualified domain name of the Persistent Chat pool.

Parameters
-Credential
Enables you to run the Get-CsPersistentChatEndpoint cmdlet under alternate credentials. This might be required if
the account you used to log on to Windows does not have the necessary privileges required to work with user
objects.
To use the Credential parameter you must first create a PSCredential object by using the Get-Credential cmdlet.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve user information. To connect to a
particular domain controller, include the DomainController parameter followed by the fully qualified domain name
(FQDN ). For example:

-DomainController "atl-dc-001.litwareinc.com"

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on Skype for Business Server-specific attributes. For example,
you can limit returned data to Persistent Chat endpoints that have been assigned a specific voice policy, or
endpoints have not been assigned a specific voice policy.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only endpoints that have been assigned a per-user conferencing policy would look
like this, with ConferencingPolicy representing the Active Directory attribute, -ne representing the comparison
operator (not equal to), and $Null (a built-in Windows PowerShell variable) representing the filter value:
-Filter {ConferencingPolicy -ne $Null}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat endpoint to be returned. Endpoint Identities are typically specified using
the endpoint's SIP address or display name; for example:
-Identity "sip:pcEndpoint1@litwareinc.com"

However, you can also use the full Identity of the endpoint; for example:
-Identity "CN={33e5014b-dcba-46b5-9bf7-48f4d5fca69d}, CN=Application Contacts,CN=RTC
Service,CN=Services,CN=Configuration,DC=litwareinc,DC=com"

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server). Because Persistent Chat endpoints have very few non-Skype for
Business Server attributes this parameter is of minimal value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return information about user accounts in a specific organizational unit (OU ) or container. Because
new Persistent Chat endpoints are all created in the same Active Directory container (ApplicationContacts/RTC
Service/Services/Configuration) this parameter is of minimal value.

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Fully qualified domain name of the Persistent Chat pool associated with the Persistent Chat endpoint.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven contacts
(regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter
value to 7. Note that there is no way to guarantee which seven users will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three contacts in your forest, the
command will return those three contacts, and then complete without error.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
String value representing the Identity or the SIP address of a Persistent Chat endpoint.

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSPersistentChatContact

Related Links
New -CsPersistentChatEndpoint
Remove-CsPersistentChatEndpoint
minutes to read • Edit Online

Get-CsPersistentChatPolicy
In ths Article

Returns information about the Persistent Chat policies configured for use in your organization. Persistent Chat
policies determine whether or not users are allowed access to Persistent Chat chat rooms. This cmdlet was
introduced in Lync Server 2013.

Syntax
Get-CsPersistentChatPolicy [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsPersistentChatPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
The Persistent Chat service provides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
By default, users are not granted access to the Persistent Chat service; that access can only be granted if the user is
managed by a Persistent Chat policy that allows for the user of the service. When you install Skype for Business
Server, all your users are managed by a global Persistent Chat policy in which the use of Persistent Chat is disabled.
If you want to give all your users access to the service you can simply set the EnablePersistentChat property in this
global policy to True. Alternatively, you can create additional policies at the site or at the per-user scope, and thus
provide Persistent Chat access to some users while denying this access to other users.
To view Persistent Chat policy information in the Skype for Business Server Control Panel, click Persistent Chat and
then click Persistent Chat Policy.

Examples
-------------------------- Example 1 --------------------------

Get-CsPersistentChatPolicy

The command shown in Example 1 returns information about all the Persistent Chat policies configured for use in
the organization.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatPolicy -Identity "RedmondPersistentChatPolicy"


In Example 2, information is returned only for the per-user Persistent Chat policy with the Identity
RedmondPersistentChatPolicy.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatPolicy -Filter "site:*"

In Example 3, information is returned for all the Persistent Chat policies configured at the site scope. This is done by
including the Filter parameter and the parameter value "site:*".
-------------------------- Example 4 --------------------------

Get-CsPersistentChatPolicy | Where-Object {$_.EnablePersistentChat -eq $True}

In Example 4, information is returned only for those Persistent Chat policies in which Persistent Chat is enabled. To
do this, the Get-CsPersistentChatPolicy cmdlet is first called without any parameters in order to return a collection
of all the Persistent Chat policies configured for use in the organization. This collection is then piped to the Where-
Object cmdlet, which picks out only those policies where the EnablePersistentChat property is equal to True ($True).

Parameters
-Filter
Enables you to do a wildcard search for Persistent Chat policies. For example, to find all the policies configured at
the site scope, use this syntax:
-Filter "site:*"

You cannot use both the Filter parameter and the Identity parameter in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identity assigned to the policy when it was created. Persistent Chat policies can be assigned at the global,
site, or per-user scope. To refer to the global instance, use this syntax:
-Identity global

To refer to a policy at the site scope, use this syntax:


-Identity site:Redmond

To refer to a policy at the per-user scope, use syntax similar to this:


-Identity RedmondPersistentChatPolicy

Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for
policies, use the Filter parameter instead.
If neither the Identity nor the Filter parameter is specified the Get-CsPersistentChatPolicy cmdlet returns
information about all the Persistent Chat policies configured for use in your organization.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Persistent Chat policy data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose Persistent Chat policies
are being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.PersistentChat.PersistentChatPolicy

Related Links
Grant-CsPersistentChatPolicy
New -CsPersistentChatPolicy
Remove-CsPersistentChatPolicy
Set-CsPersistentChatPolicy
minutes to read • Edit Online

Get-CsPersistentChatRoom
In ths Article

Returns information about the Persistent Chat chat rooms configured for use in your organization. A chat room is a
discussion forum that typically revolves around a specific topic. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsPersistentChatRoom [-Addin <String>] [-AsObject] [-Category <String>] [-ChatContentExceedsMB <Int32>]
[-Disabled <Boolean>] [-Filter <String>] [-Invitations <ChatRoomInvitations>] [-Manager <String>]
[-Member <String>] [-PersistentChatPoolFqdn <String>] [-Privacy <ChatRoomPrivacy>] [-ResultSize <Int32>]
[-SearchDescription] [-Type <ChatRoomType>] [<CommonParameters>]

Get-CsPersistentChatRoom [[-Identity] <String>] [-AsObject] [<CommonParameters>]

Description
The Persistent Chat service provides organizations with messaging and collaboration capabilities similar to those
found in Internet discussion forums: users can exchange messages in real-time, yet can also revisit and restart
those conversations at any time. Conversations can be based around specific topics, and these conversations can be
made available to everyone or to only a selected set of users. Likewise, individual chat rooms can be configured so
that anyone can post a message or configured so that only designated presenters can post messages.
Persistent Chat discussions take the form of messages posted in individual chat rooms; chat rooms are discussion
forums based on specific topics. By design, messages posted in a chat room remain there forever; at any time, users
can return to the room and review all the messages that have been previously posted.
The Get-CsPersistentChatRoom cmdlet provides a way to return information about all the chat rooms configured
for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsPersistentChatRoom

The command shown in Example 1 returns information about the Persistent Chat chat rooms configured for use in
the organization.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatRoom -Identity "atl-cs-001.litwareinc.com\ITChatRoom"

Example 2 returns information for a single Persistent Chat chat room: the room with the Identity atl-cs-
001.litwareinc.com\ITChatRoom.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatRoom -PersistentChatPoolFqdn "atl-cs-001.litwareinc.com"

In Example 3, information is returned for all the Persistent Chat chat rooms configured for the pool atl-cs-
001.litwareinc.com.

Parameters
-Addin
Returns chat rooms associated with the specified chat room add-in.
Note that you can only specify one add-in per command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsObject
When specified, Active Directory display names are used when showing users who are on the Managers or
Presenters lists. When not specified, SIP addresses are used when showing these users.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Category
Returns information for all the Persistent Chat chat rooms in the specified category. For example:
-Category "ITChat"

You can only specify a single category when using the Category parameter. In addition, you cannot use the
PersistentChatPoolFqdn, Filter, or Identity parameters in any command that uses the Category parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ChatContentExceedsMB
Returns chat rooms whose cumulative chat content exceeds the specified value (in megabytes).
Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Disabled
Enables you to search for active chat rooms (by using the parameter value $False) or disabled chat rooms (by using
the parameter value $True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to return information for Persistent Chat chat rooms based on the Name and/or the Description of the
room. To return information for a chat room with a specific name, use syntax similar to this:
-Filter {Name -like "ITChat"}

That syntax returns information only for chat rooms that have the name ITChat.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identifier for the Persistent Chat chat room being returned. The Identity for a chat room consists of the
Persistent Chat pool where the room has been configured plus the name of the room; for example:
-Identity "atl-gc-001.litwareinc.com\RedmondChatRoom"

You cannot use the Category, Filter, or PersistentChatPoolFqdn parameters in any command that uses the Identity
parameter. If you call the Get-CsPersistentChatRoom cmdlet without any parameters the cmdlet will return
information about all the chat rooms configured for use in your organization.

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Invitations
Returns chat rooms that use invitations (by using the parameter value Inherit) or chat rooms that do not use
invitations (by using the parameter value False).
Type: ChatRoomInvitations
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Manager
Returns chat rooms managed by the specified user. For example:
-Manager "sip:kenmyer@litwareinc.com"

Note that you can only specify a single manager per command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Member
Returns chat rooms that the specified user is a member of. For example:
-Member "sip:kenmyer@litwareinc.com"

Note that you can only specify a single member per command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Returns information about all the Persistent Chat chat rooms configured on the specified Persistent Chat pool. For
example:
-PersistentChatPoolFqdn "atl-gc-001.litwareinc.com"

You cannot use the Category, Filter, or Identity parameters in any command that uses the PersistentChatPoolFqdn
parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Privacy
Enables you to return chat rooms that meet the specified privacy setting. Allowed values are:
Open (any user can locate the chat room by doing a directory search, and anyone can participate in chat room
activities)
Secret (only chat room members can locate the room by doing a directory search, and only members can
participate in chat room activities)
Closed (any user can locate the chat room by doing a directory search, but only members can participate in chat
room activities)

Type: ChatRoomPrivacy
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven chat rooms
(regardless of the number of rooms in your forest) include the ResultSize parameter and set the parameter value to
7. Note that there is no way to guarantee which seven rooms will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three rooms in your forest, the
command will return those three rooms, and then complete without error.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SearchDescription
Enables you to search for the specified text value in either the chat room Name or the chat room Description. To
search both the Name and the Description, include the SearchDescription parameter along with the Filter
parameter. For example:
-SearchDescription -Filter "IT chat room"

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Returns chat rooms by room type. Allowed values are:
Normal (chat rooms where all members can post messages)
Auditorium (chat rooms where only presenters can post messages)
Type: ChatRoomType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.PersistentChat.Cmdlets.ChatRoomObject

Related Links
Clear-CsPersistentChatRoom
New -CsPersistentChatRoom
Remove-CsPersistentChatRoom
Set-CsPersistentChatRoom
minutes to read • Edit Online

Get-CsPersistentChatState
In ths Article

Returns the state of one or more Persistent Chat service pools. Persistent Chat pools can be in one of two states:
Normal, in which the pool uses its primary databases; or FailedOver, in which the pool uses the backup databases
defined in the topology. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsPersistentChatState [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsPersistentChatState [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The Get-CsPersistentChatState cmdlet returns the state of one or more Persistent Chat pools. Persistent Chat pools
can be in either the Normal state (in which the pool uses its primary databases) or in a FailedOver state, in which
the pool uses its backup databases. You can use the Set-CsPersistentChatState cmdlet to change the state of a
Persistent Chat pool; when you change the state of the pool, Skype for Business Server 2015 will automatically
change the state of each individual server in the pool.
The functions carried out by the Get-CsPersistentChatState cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsPersistentChatState

The command shown in Example 1 returns the state of all the Persistent Chat servers configured for use in the
organization.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatState -Identity "PersistentChatServer:atl-gc-001.litwareinc.com"

{Enter description for Example 2}


-------------------------- Example 3 --------------------------

Get-CsPersistentChatState -Filter "*.litwareinc.com"

Example 3 returns state information for all Persistent Chat servers in the domain litwareinc.com. To do this, the
Filter parameter is included along with the filter value "*.litwareinc.com". That filter value causes the Get-
CsPersistentChatState cmdlet to return information for all the Persistent Chat servers that have an Identity that
ends with the string value ".litwareinc.com".
-------------------------- Example 4 --------------------------

Get-CsPersistentChatState | Where-Object {$_.PoolState -eq "FailedOver"}

The command shown in Example 4 returns state information for all the Persistent Chat servers that are currently
failed over. To carry out this task, the command first calls the Get-CsPersistentChatState cmdlet without any
parameters; that returns a collection of all the Persistent Chat servers in the organization. That collection is then
piped to the Where-Object cmdlet, which picks out only those servers where the PoolState property is equal to (-
eq) "FailedOver".

Parameters
-Filter
Enables you to use wildcards when retrieving one or more Persistent Chat states. For example, to return all the
Persistent Chat states for the domain litwareinc.com, use this syntax:
-Filter "*.litwareinc.com"

You cannot use both the Filter parameter and the Identity parameter in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat pool. For example:
-Identity "PersistentChatServer:atl-gc-001.litwareinc.com"

If this parameter is omitted then the Get-CsPersistentChatState cmdlet returns information for all your Persistent
Chat states.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Persistent Chat state data from the local replica of the Central Management store rather than from
the Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatState

Related Links
Set-CsPersistentChatState
minutes to read • Edit Online

Get-CsPinPolicy
In ths Article

Returns information about the client personal identification number (PIN ) policies configured for use in your
organization. PIN authentication enables users to access Skype for Business Server by providing a PIN instead of a
user name and password. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsPinPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsPinPolicy [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Description
Skype for Business Server enables users to connect to the system, or to join public switched telephone network
(PSTN ) conferences via telephone. Typically, logging on to the system or joining a conference requires the user to
enter a user name or password; unfortunately, entering a user name and password can be a problem if you are
using a phone that does not have an alphanumeric keypad. Because of that, Skype for Business Server enables you
to supply users with numeric-only PINs; when prompted, users can then log on to the system or join a conference
by entering the PIN instead of a user name and password.
Skype for Business Server uses PIN policies to manage PIN authentication properties; for example, you can specify
the minimum length for a PIN and determine whether you will allow PINs that use "common patterns" such as
consecutive digits (for example, a PIN like 123456). You can use the Get-CsPinPolicy cmdlet to retrieve information
about the PIN policies currently configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsPinPolicy

The command shown in Example 1 returns a collection of all the PIN policies configured for use in the organization.
Calling the Get-CsPinPolicy cmdlet without any parameters always returns the complete set of PIN policies.
-------------------------- Example 2 --------------------------

Get-CsPinPolicy -Identity "site:Redmond"

Example 2 returns a single PIN policy: the policy with the Identity site:Redmond.
-------------------------- Example 3 --------------------------
Get-CsPinPolicy -Filter "tag:*"

The command shown in Example 3 uses the Filter parameter to return all the policies that have been configured at
the per-user scope. This is done by using the filter value "tag:*"; this value instructs the Get-CsPinPolicy cmdlet to
return only those policies that have an Identity that begins with the characters "tag:".
-------------------------- Example 4 --------------------------

Get-CsPinPolicy | Where-Object {$_.AllowCommonPatterns -eq $True}

Example 4 returns all the PIN policies where the AllowCommonPatterns property is True. In this example, the Get-
CsPinPolicy cmdlet is first called without any additional parameters; that returns a collection of all the PIN policies
configured for use in the organization. That collection is then passed to the Where-Object cmdlet, which picks out
only those policies where the AllowCommonPatterns property is equal to True.
-------------------------- Example 5 --------------------------

Get-CsPinPolicy | Where-Object {$_.PinLifetime -gt 30}

Like Example 4, the command shown in Example 5 uses the Where-Object cmdlet to return a subset of the existing
PIN policies. In this case, the Where-Object cmdlet retrieves only those policies where the PinLifetime property is
greater than 30. That means only policies that have PIN expiration times of more than 30 days will be returned.

Parameters
-Filter
Enables you to do a wildcard search for PIN policies. For example, to find all the policies configured at the site
scope, use this Filter: site:. To find the site policies Seattle, Seville, and Saskatoon (all of which start with the letter
"S") use this Filter: site:S. Note that this parameter can only filter on the Identity property.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identity assigned to the policy when it was created. PIN policies can be assigned at the global, site, or per-
user scope. To refer to the global instance, use this syntax:
-Identity global

To refer to a policy at the site scope, use this syntax:


-Identity site:Redmond

To refer to a policy at the per-user scope, use syntax similar to this:


-Identity RedmondPolicy

Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for
policies, use the Filter parameter instead.
If neither the Identity nor the Filter parameter is specified the Get-CsPinPolicy cmdlet returns information about all
the PIN policies configured for use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the PIN policy data from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose PIN policies are being
returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.UserPin.UserPinPolicy

Related Links
Grant-CsPinPolicy
New -CsPinPolicy
Remove-CsPinPolicy
Set-CsPinPolicy
minutes to read • Edit Online

Get-CsPlatformServiceSettings
In ths Article

Returns information about Skype for Business on Mac capabilites which have been enabled in your organization.
This cmdlet was introduced in Skype for Business Server 2015 Cumulative Update 6 (December 2017).

Syntax
Get-CsPlatformServiceSettings [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsPlatformServiceSettings [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server 2015 Cumulative Update 6 introduces new features for Skype for Business on Mac
users like support for E -911 calls, send files in peer-to-peer chats, block external access by policy and more.
The Get-CsPlatformServiceSettings cmdlet shows you which of these features are enabled.

Examples
-------------------------- EXAMPLE 1 --------------------------

PS C:\> Get-CsPlatformServiceSettings

This example shows you which of the Skype for Business on Mac features are enabled in your organization.

Parameters
-Filter
Enables you to use wildcard characters in order to return one or more Platform Service Settings configurations. For
example, to return all of the Platform Service Settings configurations with the word Test in their names use this
syntax:
-Filter "*Test*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the Platform Service Settings to be returned.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Platform Service Settings configuration data from the local replica of the Central Management store
rather than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
New -CsPlatformServiceSettings
Set-CsPlatformServiceSettings
Remove-CsPlatformServiceSettings
minutes to read • Edit Online

Get-CsPool
In ths Article

Returns information about the pools used in your deployment of Skype for Business Server. Pools are a collection
of computers in a site that all run the same set of Skype for Business Server services. This cmdlet was introduced in
Lync Server 2010.

Syntax
Get-CsPool [[-Identity] <XdsGlobalRelativeIdentity>] [-Site <String>] [<CommonParameters>]

Get-CsPool [-Filter <String>] [-Site <String>] [<CommonParameters>]

Description
In Skype for Business Server, a pool is one or more computers in the same site that run the same set of services.
For example, if you have one server running the Mediation Server service in the Redmond site, then you would
have a Mediation Server pool consisting of that one computer. If you have two computers running Mediation
Server in the Redmond site, then you would have a Mediation Server pool consisting of two computers. The
number of pools used in your organization depends on the number of servers you have and the different services
run by those servers.
The Get-CsPool cmdlet enables you to retrieve information about each pool in use in your organization, including
information about the services running on each of those pools.

Examples
-------------------------- Example 1 --------------------------

Get-CsPool

Example 1 returns all the pools found in your deployment of Skype for Business Server.
-------------------------- Example 2 --------------------------

Get-CsPool | Select-Object -ExpandProperty Computers

Example 2 displays detailed information about the computers found in each of your pools. This is done by calling
the Get-CsPool cmdlet, and then piping the returned data to the Select-Object cmdlet. The ExpandProperty
parameter is then used to "expand" the value of the Computers property. The Computers property is an array of
objects representing each computer in the pool. When you expand the Computers property you get back detailed
information about each of these computers.
-------------------------- Example 3 --------------------------
Get-CsPool -Identity atl-cs-001.litwareinc.com

In Example 3, the Identity parameter is used to restrict the returned data to the pool that has the Identity atl-cs-
001.litwareinc.com.
-------------------------- Example 4 --------------------------

Get-CsPool -Site "Redmond"

Example 4 returns all the pools found in the Redmond site. To do this, the command uses the Site parameter; the
parameter value "Redmond" limits the returned data to pools where the Site property is equal to Redmond.
-------------------------- Example 5 --------------------------

Get-CsPool | Where-Object {$_.Services.Count -eq 0}

The command shown in Example 5 returns a collection of all the pools that do not have any Skype for Business
Server services installed. To carry out this task, the command first calls the Get-CsPool cmdlet without any
parameters; that returns a collection of all the pools currently in use in the organization. This collection is then piped
to the Where-Object cmdlet, which picks out all the pools where the Services.Count property is equal to 0. If the
Count equals 0, that means that there are no Skype for Business Server services configured for that pool.

Parameters
-Filter
Enables you to use wildcards when specifying the Identity of the pool (or pools) to be returned. For example, this
syntax returns all the pools that have an Identity that ends with the string value ".fabrikam.com":
-Filter "*.fabrikam.com"

Note that you cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the pool to be returned. For example:
-Identity atl-cs-001.litwareinc.com

If this parameter is not present, then all the pools in your organization will be returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Site
Returns all the pools found on the specified site. The site in question should be referenced using the site's
DisplayName (for example, Redmond) rather than the site Identity (for example, site:Redmond). For example:
-Site "Redmond"

You can retrieve the display names for your sites by running this command:
Get-CsSite | Select-Object Identity, DisplayName

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deploy.Internal.Cluster

Related Links
Get-CsSite
Get-CsTopology
minutes to read • Edit Online

Get-CsPoolBackupRelationship
In ths Article

Returns information about the backup pool associated with a Skype for Business Server pool. This cmdlet was
introduced in Lync Server 2013.

Syntax
Get-CsPoolBackupRelationship -PoolFqdn <Fqdn> [-Force] [-LocalStore] [<CommonParameters>]

Description
The Get-CsPoolBackupRelationship cmdlet returns the fully qualified domain name of the backup pool associated
with a Registrar pool. Note that this is read-only information: there is no corresponding Set-
CsPoolBackupRelationship cmdlet that lets you use the Windows PowerShell command-line interface to create a
backup association. Instead, backup pools must be assigned using Skype for Business Server Topology Builder.
The functions carried out by the Get-CsPoolBackupRelationship cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsPoolBackupRelationship -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example returns information about the backup relationship assigned to the pool atl-cs-
001.litwareinc.com.

Parameters
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the backup relationship data from the local replica of the Central Management store rather than from the
Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool whose backup relationship is being checked. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hadr.BackupService.BackupRelation
minutes to read • Edit Online

Get-CsPoolFabricState
In ths Article

Returns the Windows Fabric state for a Skype for Business Server pool. Windows Fabric is a Microsoft technology
used for creating highly reliable, distributable, and scalable applications. This cmdlet was introduced in Lync Server
2013.

Syntax
Get-CsPoolFabricState -PoolFqdn <String> [-Confirm] [-Force] [-Type <FabricEnumerationType>] [-WhatIf]
[<CommonParameters>]

Get-CsPoolFabricState [-PoolFqdn] <String> [-Confirm] [-Force] [-HealthState <String>]


[-OutputCsvFile <String>] [-ServiceName <String>] [-ShowAll] [-WhatIf] [-Type <String>] [<CommonParameters>]

Get-CsPoolFabricState [-RoutingGroup] <String> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Get-CsPoolFabricState [-Tenant] <Guid> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Get-CsPoolFabricState [-UserUri] <UserIdParameter> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The Get-CsPoolFabricState cmdlet returns the Windows Fabric state for a Skype for Business Server pool. This
includes information about Windows Fabric replica instances for any (or all) of the following services: MCU factory;
Conference Directory; Routing; Skype for Business Server Storage Service.
The functions carried out by the Get-CsPoolFabricState cmdlet are not available in Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsPoolFabricState -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example 1 returns the fabric state for the pool atl-cs-001.litwareinc.com. Because the Type
parameter was not included, state information for all the services on the pool will be returned.
-------------------------- Example 2 --------------------------
Get-CsPoolFabricState -PoolFqdn "atl-cs-001.litwareinc.com" -Type MCU

Example 2 returns the fabric state for a single service on the pool atl-cs-001.litwareinc.com: the MCU factory
service. This is done by including the Type parameter and the parameter value "MCU".

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HealthState
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutputCsvFile
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool being checked. You must supply the FQDN of a pool when calling this
cmdlet; for example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RoutingGroup
Globally unique identifier (GUID ) of the Windows Fabric routing group to be returned. Routing groups are used to
specify the servers that users log onto.

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServiceName
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowAll
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose Windows Fabric pool
state is being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Specifies the service type to be returned. Allowed values are:
All (returns information for all services)
MCUFactory (returns information for the MCU factory service)
ConferenceDirectory (returns information for the Conference Directory service)
LYSS (returns information for the Lync Server Storage service)
You can only specify a single type per command.

Type: FabricEnumerationType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserUri
Enables you to check the Windows fabric state for the pool used by a specific user. For example, to check the
Windows fabric state for the user Ken Myer use this syntax:
-UserUri "sip:kenmyer@litwareinc.com"

Note that you can only specify one user URI per command.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
String
String value representing the fabric state.
minutes to read • Edit Online

Get-CsPoolUpgradeReadinessState
In ths Article

Returns information indicating whether or not your Skype for Business Server Registrar pools are ready to be
upgraded. The upgrade readiness state for a pool is based on the upgrade domains that have been configured for
that pool. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsPoolUpgradeReadinessState [-Confirm] [-Force] [-WhatIf] [-SkipIdleSecondaryVerification]
[<CommonParameters>]

Description
The Get-CsPoolUpgradeReadinessState cmdlet returns information about the upgrade readiness for a Skype for
Business Server pool. The returned information includes the number of Front End servers assigned to the pool; the
number of currently active Front End servers; the name of the upgrade domain; and a True/False value that
indicates whether the current state of the pool allows it to be upgraded. Note that this cmdlet must be run locally
on a Front End server in the pool being checked. There are no options enabling you to run the Get-
CsPoolUpgradeReadinessState cmdlet remotely.
The functions carried out by the Get-CsPoolUpgradeReadinessState cmdlet are not available in the Skype for
Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsPoolUpgradeReadinessState

The command shown in Example 1 returns the upgrade readiness state for the local Registrar pool. Note that this
command must be executed on a Front End server located within the pool.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipIdleSecondaryVerification
When included in the command, Get-CsPoolUpgradeReadinessState returns even if replicas are still being built. By
default, Get-CsPoolUpgradeReadinessState waits until the replicas have been built before completing.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hadr.PoolUpgradeState
minutes to read • Edit Online

Get-CsPresenceManagementState
In ths Article

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

Syntax
Get-CsPresenceManagementState [[-Fqdn] <Fqdn>] [-Force] [<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Get-CsPresenceManagementState -Fqdn "atl-mcs-001.litwareinc.com"

This example returns the management state of a pool specified by its fully qualified domain name (FQDN ).

Parameters
-Force
The Force parameter is not implemented for this cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Fqdn
Specifies the computer or pool to report. The computer or pool should be referenced by using its fully qualified
domain name (FQDN ). For example, -ComputerName "atl-mcs-001.litwareinc.com". If a pool is specified, the
output contains the management state of all the computers in the pool. If FQDN is not specified, the settings for the
local machine will be modified.
Type: Fqdn
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.PresenceMaintain.Cmdlet.PresenceManagementState

Related Links
Set-CsPresenceManagementState
minutes to read • Edit Online

Get-CsPresencePolicy
In ths Article

Returns information about the presence policies configured for use in your organization. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsPresencePolicy [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsPresencePolicy [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Presence information (which, among other things, lets you know whether a contact is available to take part in an
instant messaging conversation) is invaluable. At the same time, however, there is a cost associated with presence
information: the more presence subscriptions you have the more network bandwidth must be devoted to updating
presence information. If network bandwidth is a concern, you might want to limit the number of presence
subscriptions any one user can have.
The CsPresencePolicy cmdlets enable you to manage two important aspects of presence subscriptions: prompted
subscribers and category subscriptions. When you are added to another person's Skype for Business Contacts list,
the default behavior is for you to receive a pop-up notification informing you that you have been added to that list.
Until you dismiss the pop-up, each notification counts as a prompted subscriber. The presence policy's
MaxPromptedSubscriber property enables you to specify the maximum number of unresolved notification dialogs
a user can have. (If a user reaches the maximum amount then he or she will not receive new contact notifications, at
least not until some of those dialogs have been resolved.)
Category subscriptions represent a request for a specific category of information; for example, an application that
requests calendar data. The MaxCategorySubscription property enables administrators to place a limit on the
number of category subscriptions a user can have.
Prior to the release of Lync Server, prompted subscriber and category subscriptions were managed on a global
basis. With the CsPresencePolicy cmdlets you can now manage these presence subscriptions at the global scope,
the site scope, or the per-user scope. This enables you to control bandwidth use while, at the same time, ensuring
that users have access to the presence information they need to do their jobs.
The Get-CsPresencePolicy cmdlet provides a way for you to return information about all the presence policies
configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------
Get-CsPresencePolicy

The command shown in Example 1 returns information about all the presence policies configured for use in the
organization. This is done by calling the Get-CsPresencePolicy cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsPresencePolicy -Identity "RedmondPresencePolicy"

Example 2 returns a single per-user presence policy: the policy with the Identity RedmondPresencePolicy.
-------------------------- Example 3 --------------------------

Get-CsPresencePolicy -Filter "site:*"

Example 3 returns information about all the presence policies that have been configured at the site scope. To do
this, the command uses the Filter parameter and the filter value "site:*"; that filter value limits returned data to all
the presence policies that have an Identity that begins with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsPresencePolicy | Where-Object {$_.MaxPromptedSubscriber -le 100}

In Example 4, information is returned for all the presence policies that limit the maximum number of prompted
subscribers to 100 or less. To carry out this task, the command first calls the Get-CsPresencePolicy cmdlet without
any parameters in order to return a collection of all the presence policies configured for use in the organization.
This collection is then piped to the Where-Object cmdlet, which selects only those policies where the
MaxPromptedSubscriber property is less than or equal to 100.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcards when specifying the policy (or policies) to be returned. For example, this syntax
returns all the presence policies configured at the site scope:
-Filter "site:*"

The Filter and Identity parameters cannot be used in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the presence policy to be retrieved. To return the global policy, use this syntax:
-Identity global

To return a policy configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To return a policy configured at the per-user scope, use syntax like this:
-Identity "RedmondPresencePolicy"

You cannot use wildcard characters when specifying the Identity.


If neither the Identity nor the Filter parameters are specified, then the Get-CsPresencePolicy cmdlet returns all the
presence policies configured for use in the organization.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the presence policy data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose presence policies are
being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.Presence.PresencePolicy

Related Links
Grant-CsPresencePolicy
New -CsPresencePolicy
Remove-CsPresencePolicy
Set-CsPresencePolicy
minutes to read • Edit Online

Get-CsPresenceProvider
In ths Article

Returns information about the presence providers configured for use in the organization. Presence providers
represent the PresenceProviders property of a collection of user services configuration settings. This cmdlet was
introduced in Lync Server 2013.

Syntax
Get-CsPresenceProvider [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsPresenceProvider [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The CsPresenceProvider cmdlets are used to manage the PresenceProviders property found in the User Services
configuration settings. Among other things, these settings are used to maintain presence information, including a
collection of authorized presence providers. That collection is stored in the PresenceProviders property. The Get-
CsPresenceProvider cmdlet provides a way for you to return information about the presence providers that have
been authorized for use in your organization.
The functions carried out by the Get-CsPresenceProvider cmdlet are not available in the Skype for Business Server
Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsPresenceProvider

The command shown in Example 1 returns information about all the presence providers configured for use in your
organization.
-------------------------- Example 2 --------------------------

Get-CsPresenceProvider -Identity "global/fabrikam.com"

Example 2 returns information about a single presence provider: the provider with the Identity
global/fabrikam.com.
-------------------------- Example 3 --------------------------

Get-CsPresenceProvider -Filter "site:*"


In Example 3, information is returned for all the presence providers configured at the site scope. To do this, the
Filter parameter is used along with the filter value "site:*". That filter value limits returned data to presence
providers that have an Identity that begins with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsPresenceProvider | Where-Object {$_.Fqdn -match "fabrikam.com"}

Example 4 returns all the presence providers that have the string value "fabrikam.com" somewhere in their Fqdn
property. To carry out this task, the command first uses the Get-CsPresenceProvider cmdlet to return a collection of
all the presence providers configured for use in the organization. That collection is then piped to the Where-Object
cmdlet, which picks out only those providers where the Fqdn property includes (-match) the string value
"fabrikam.com".

Parameters
-Filter
Enables you to use wildcards when specifying the Identity of the presence provider (or providers) to be returned.
For example, to return all the presence providers configured at the service scope use this filter value:
-Filter "service:*"

You cannot use both the Filter parameter and the Identity parameter in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the presence provider. The Identity of a presence provider is composed of two parts: the scope
(Parent) where the provider has been applied (for example, service:UserServer:atl-cs-001.litwareinc.com) and the
provider's fully qualified domain name. For example, to retrieve a single presence provider use syntax similar to
this:
-Identity "global/fabrikam.com"

To return all the presence providers for a specific parent, simply specify the scope. For example, this syntax returns
all the presence providers configured for the global scope:
-Identity "global"

If neither the Identity nor the Filter parameters are included, then the Get-CsPresenceProvider cmdlet returns
information about all your providers.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LocalStore
Retrieves the allowed domains from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider#Decorated

Related Links
Get-CsUserServicesConfiguration
New -CsPresenceProvider
Remove-CsPresenceProvider
Set-CsPresenceProvider
minutes to read • Edit Online

Get-CsPrivacyConfiguration
In ths Article

Returns information about the privacy configuration settings currently in use in your organization. Privacy
configuration settings help determine how much information users make available to other users. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsPrivacyConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsPrivacyConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server gives users the opportunity to share a wealth of presence information with other people:
they can publish a photograph of themselves; they can provide detailed location information; they can have
presence information automatically made available to everyone in the organization (as opposed to having this
information available only to people on their Contacts list).
Some users will welcome the opportunity to make this information available to their colleagues; other users might
be more reluctant to share this data. (For example, many people might be hesitant about having their photo
included in their presence data.) As a general rule, users have control over what information they will (or will not)
share; for example, users can select or clear a check box in order to control whether or not their location
information is shared with others. In addition, the privacy configuration cmdlets enable administrators to manage
privacy settings for their users. In some cases, administrators can enable or disable settings; for example, if the
property AutoInitiateContacts is set to True, then team members will automatically be added to each user's
Contacts list; if set to False, team members will not be automatically be added to each user's Contacts list.
In other cases, administrators can configure the default values in Skype for Business Server while still giving users
the right to change these values. For example, by default location data is published for users, although users do
have the right to stop location publication. By setting the PublishLocationDataByDefault property to False,
administrators can change this behavior: in that case, location data will not be published by default, although users
will still have the right to publish this data if they choose.
Privacy configuration settings can be applied at the global scope, the site scope, and at the service scope (albeit only
for the User Server service). The Get-CsPrivacyConfiguration cmdlet enables you to retrieve information about all
the privacy configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------
Get-CsPrivacyConfiguration

The command shown in Example 1 returns all the privacy configuration settings currently in use in the
organization.
-------------------------- Example 2 --------------------------

Get-CsPrivacyConfiguration -Identity site:Redmond

Example 2 returns a single collection of privacy configuration settings: the settings that have the Identity
site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsPrivacyConfiguration -Filter "site:*"

In Example 3, information is returned for all the privacy configuration settings that have been assigned to the site
scope. To do this, the Filter parameter is included, along with the filter value "site:*". That filter value ensures that
only settings where the Identity (the only property you can filter on) begins with the characters "site:".
-------------------------- Example 4 --------------------------

Get-CsPrivacyConfiguration | Where-Object {$_.EnablePrivacyMode -eq $True}

The command shown in Example 4 returns information about all the privacy configuration settings where privacy
mode has been enabled. This is done by first calling the Get-CsPrivacyConfiguration cmdlet without any
parameters in order to return a collection of all the privacy settings. This collection is then piped to the Where-
Object cmdlet, which picks out only those settings where the EnablePrivacyMode property is equal to True.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcards to return one or more collections of privacy configuration settings. For example, to
return all the settings configured at the site scope, you can use this syntax:
-Filter "site:*"

To return all the settings configured at the service scope, use this syntax:
-Filter "service:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the privacy configuration settings to be retrieved. To return the global settings, use this syntax:
-Identity global

To return settings configured at the site scope, use syntax similar to this:
-Identity site:Redmond

To modify settings at the service level, use syntax like this:


-Identity service:UserServer:atl-cs-001.litwareinc.com

If this parameter is not specified then the Get-CsPrivacyConfiguration cmdlet returns all the privacy configuration
settings currently in use in your organization.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the privacy configuration data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose privacy configuration
settings are to be retrieved.
For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration

Related Links
New -CsPrivacyConfiguration
Remove-CsPrivacyConfiguration
Set-CsPrivacyConfiguration
minutes to read • Edit Online

Get-CsProxyConfiguration
In ths Article

Returns information about the proxy server configuration settings currently in use in your organization. This cmdlet
was introduced in Lync Server 2010.

Syntax
Get-CsProxyConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsProxyConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server enables you to manage your proxy servers through proxy server configuration settings.
These settings, which can be applied at both the global scope and the service scope (albeit for only the Edge Server
and Registrar services) enable you to control such things as the authentication protocols that can be used by client
endpoints and whether or not compression will be used on incoming and outgoing proxy server connections.
When you install Skype for Business Server, a global collection of proxy server configuration settings is
automatically created for you. As noted, you can also create additional collections at the service scope.
The Get-CsProxyConfiguration cmdlet enables you to return information about any of the proxy server
configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsProxyConfiguration

The command shown in Example 1 returns a collection of all the proxy configuration settings currently in use in the
organization. This is done by calling the Get-CsProxyConfiguration cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsProxyConfiguration -Identity "service:EdgeServer:atl-cs-001.litwareinc.com"

In Example 2, information about the proxy configuration settings that have the Identity service:EdgeServer:atl-cs-
001.litwareinc.com is returned. Because Identities must be unique, this command will never return more than one
collection of settings.
-------------------------- Example 3 --------------------------
Get-CsProxyConfiguration -Filter "service:*"

Example 3 returns information about all of the proxy settings that have been configured at the service scope. To do
this, the command calls the Get-CsProxyConfiguration cmdlet along with the Filter parameter; the filter value
"service:*" ensures that only those settings that have an Identity that begins with the string value "service:" will be
returned.
-------------------------- Example 4 --------------------------

Get-CsProxyConfiguration | Where-Object {$_.UseCertificateForClientToProxyAuth -eq $False}

Example 4 returns information about the proxy configuration settings that do not allow the use of client certificates
as an authentication mechanism. To carry out this task, the command first uses the Get-CsProxyConfiguration
cmdlet to return a collection of all the proxy configuration settings currently in use. This collection is then piped to
the Where-Object cmdlet, which selects only those settings where the UseCertificateForClientToProxyAuth
property is equal to False.
-------------------------- Example 5 --------------------------

Get-CsProxyConfiguration | Where-Object {$_.MaxClientMessageBodySizeKb -lt 5000}

Example 5 returns all the proxy configuration settings where the maximum body size for a client message is less
than 5000 kilobytes. To do this, the command first calls the Get-CsProxyConfiguration cmdlet without any
parameters; this returns a collection of all the proxy configuration settings currently in use. This collection is then
piped to the Where-Object cmdlet, which picks out those settings where the MaxClientMessageBodySizeKb
property is less than 5000 kilobytes.

Parameters
-Filter
Enables you to use wildcards when specifying the proxy configuration settings to be returned. For example, this
syntax returns all the settings configured at the service scope:
-Filter "service:*"

You cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the proxy server configuration settings to be returned. To return the global settings, use this
syntax:
-Identity global

To return settings configured at the service scope, use syntax similar to this:
-Identity "service:EdgeServer:atl-cs-001.litwareinc.com"

Note that you cannot use wildcards when specifying an Identity. If you want to (or need to) use wildcards, use the
Filter parameter instead.
If this parameter is not included, the Get-CsProxyConfiguration cmdlet returns all of the proxy server settings
currently in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the proxy configuration data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.ProxySettings

Related Links
New -CsProxyConfiguration
Remove-CsProxyConfiguration
Set-CsProxyConfiguration
minutes to read • Edit Online

Get-CsPstnUsage
In ths Article

Returns information about public switched telephone network (PSTN ) usage records used in your organization.
This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsPstnUsage [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsPstnUsage [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
PSTN usages are string values that are used for call authorization. A PSTN usage links a voice policy to a route. The
Get-CsPstnUsage cmdlet retrieves the list of all PSTN usages available within an organization.
Who can run this cmdlet: By default, members of the following groups are authorized to run the Get-CsPstnUsage
cmdlet locally: RTCUniversalUserAdmins, RTCUniversalServerAdmins. To return a list of all the role-based access
control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created
yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsPstnUsage"}

Examples
-------------------------- Example 1 --------------------------

Get-CsPstnUsage

This command returns the list of global PSTN usages available within the organization.
-------------------------- Example 2 --------------------------

(Get-CsPstnUsage).Usage

The command in this example returns a list of all defined PSTN usages, with one usage listed on each line of
output. Calling the Get-CsPstnUsage cmdlet by itself returns the Identity and the Usage list. If the Usage list
contains more than three or four entries, the list will be abbreviated in the output, similar to this:
Usage : {Internal, Local, Long Distance, International...}
Use the command in this example to display only a list of usages. The output will be similar to this:
Internal
Local
Long Distance
International
Restricted
-------------------------- Example 3 --------------------------

(Get-CsPstnUsage).Usage | ForEach-Object {if ($_ -like "*tern*") {$_}}

This command returns all the PSTN usage names that have the string "tern" somewhere within the name. For
example, this command will return "Internal" and "International" but not "Local" or "Long Distance".
The first part of this command is the Get-CsPstnUsage cmdlet within parentheses, which means the first thing that
happens is for all the PSTN usages to be retrieved. The .Usage property returns only the usage information for the
PSTN usages, not the Identity. This list of usages is then piped to the ForEach-Object cmdlet, which looks at the
usage strings one at a time. The If statement compares the current usage string to the string "tern" (the * are
wildcards) and displays any occurrence that matches that pattern.

Parameters
-Filter
The Filter parameter allows you to retrieve only those PSTN usages with an Identity matching a particular wildcard
string. However, the only Identity available to PSTN usages is Global, so this parameter is not useful for this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The level at which these settings are applied. The only identity that can be applied to PSTN usages is Global.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the PSTN usage information from the local data store rather than the main Central Management store.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.PSTNUsages

Related Links
Set-CsPstnUsage
Get-CsVoicePolicy
Get-CsVoiceRoute
minutes to read • Edit Online

Get-CsPublicProvider
In ths Article

Returns information about the public providers configured for use in your organization. A public provider is an
organization that provides instant messaging, presence, and related services to the general public. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsPublicProvider [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsPublicProvider [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another using SIP
applications such as Skype for Business. Skype for Business Server 2015 allows for three types of federation: 1)
direct federation between your organization and another; 2) federation between your organization and a public
provider; and, 3) federation between your organization and a third-party hosting provider.
A public provider is an organization which provides SIP communication services for the general public. When you
establish a federation relationship with a public provider, you effectively establish federation with any user who has
an account hosted by that provider. For example, if you federate with Skype then your users will be able to
exchange instant messages and presence information with anyone who has a Skype instant messaging account.
In order to federate with a public provider you need to create and enable a new public provider. (In addition, the
public provider will need to create a federation relationship with you.) The Get-CsPublicProvider cmdlet enables
you to return information about the public providers that have been configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsPublicProvider

The command shown in Example 1 returns a collection of all the public providers that are configured for use in the
organization. Calling the Get-CsPublicProvider cmdlet without any additional parameters always returns the
complete collection of public providers.
-------------------------- Example 2 --------------------------
Get-CsPublicProvider -Identity "Skype"

In Example 2, all the public providers that have the Identity Skype are returned. Because Identities must be unique
among public providers (and among hosting providers), this command will always return, at most, a single item.
-------------------------- Example 3 --------------------------

Get-CsPublicProvider -Filter W*

Example 3 returns all the public providers that have an Identity that begins with the letter W. This is done by
including the Filter parameter and the filter value "W*".
-------------------------- Example 4 --------------------------

Get-CsPublicProvider | Where-Object {$_.Enabled -eq $False}

The command shown in Example 4 returns a collection of all the public providers that are currently disabled. To do
this, the command first calls the Get-CsPublicProvider cmdlet to return a collection of all the public providers
configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only
those providers where the Enabled property is equal to False.
-------------------------- Example 5 --------------------------

Get-CsPublicProvider | Where-Object {$_.VerificationLevel -ne "AlwaysVerifiable"}

Example 5 returns all the public providers where the VerificationLevel property is set to either AlwaysUnverifiable
or UseSourceVerification. (Verification levels can be set to AlwaysUnverifiable; UseSourceVerification; or
AlwaysVerifiable.) To perform this task, the command first calls the Get-CsPublicProvider cmdlet to return a
collection of all the public providers configured for use in the organization. This collection is then piped to the
Where-Object cmdlet, which picks out only those providers where the VerificationLevel property is not equal to
AlwaysVerifiable. The net effect: only providers where the VerificationLevel property is set to either
AlwaysUnverifiable or UseSourceVerification will be selected.

Parameters
-Filter
Enables you to use wildcard values in order to return one or more public providers. For example, to return a
collection of all the public providers that have an Identity that begins with the letter Y, use this syntax:
-Filter "Y*"

To return a collection of all the public providers that include the string value "Windows" anywhere in their Identity,
use this syntax:
-Filter "*Windows*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier for the public provider to be returned. The Identity is typically the name of the web site providing
the services.
You cannot use wildcards when specifying the Identity. To use wildcards to return one or more public providers, use
the Filter parameter instead.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the public provider data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider

Related Links
Disable-CsPublicProvider
Enable-CsPublicProvider
New -CsPublicProvider
Remove-CsPublicProvider
Set-CsPublicProvider
minutes to read • Edit Online

Get-CsPushNotificationConfiguration
In ths Article

Retrieves information about the push notification configuration settings currently in use in your organization. The
push notification service (Apple Push Notification Service and Microsoft Push Notification Service) provides a way
to send notifications about events such as new instant messages or new voice mail to mobile devices such as
iPhones and Windows Phones, even if the Skype for Business application on those devices is currently suspended
or running in the background. This cmdlet was introduced in the cumulative update for Lync Server 2010:
November 2011.

Syntax
Get-CsPushNotificationConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsPushNotificationConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The Apple Push Notification Service and the Microsoft Push Notification Service enable users running Skype for
Business on their Apple iPhone or Windows Phone to receive notifications about Skype for Business Server events
even when Skype for Business is suspended or running in the background. For example, users can receive notice
for events such as these:
Invitations to a new instant messaging session or conference
New instant messages
New voice mail
Without the push notification service users would receive these notices only when Skype for Business was in the
foreground and serving as the active application.
Administrators have the ability to enable or disable push notifications for iPhone users and/or Windows Phone
users. (By default, push notifications are disabled for both iPhone users and Windows Phone users.) Administrators
can enable or disable push notifications at the global scope by using the Set-CsPushNotificationConfiguration
cmdlet. They can also create custom push notification settings at the site scope by using the
New-CsPushNotificationConfiguration cmdlet.

The Get-CsPushNotificationConfiguration cmdlet provides a way for you to return information about the push
notification configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------
Get-CsPushNotificationConfiguration

Skype for Business Server example 1 returns information about all the push notification settings configured for use
in your organization.
-------------------------- Example 2 --------------------------

Get-CsPushNotificationConfiguration -Identity "site:Redmond"

Skype for Business Server example 2 returns information about a single collection of push notification settings: the
settings configured for the Redmond site.
-------------------------- Example 3 --------------------------

Get-CsPushNotificationConfiguration -Filter "site:*"

In Skype for Business Server example 3, the command returns all the push notification settings assigned to the site
scope. To do this, the command uses the Filter parameter and the filter value "site:*"; that filter value returns only
those settings that have an Identity that begins with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsPushNotificationConfiguration | Where-Object {$_.EnableApplePushNotificationService -eq $False}

In Skype for Business Server example 4 returns all the push notification settings where push notifications for
iPhones have been disabled. To do this, the command first uses the Get-CsPushNotificationConfiguration cmdlet to
return a collection of all the push notification settings currently in use in the organization. This collection is then
piped to the Where-Object cmdlet, which picks out only those settings where the
EnableApplePushNotificationService property is equal to (-eq) False.
-------------------------- Example 5 --------------------------

Get-CsPushNotificationConfiguration | Where-Object {$_.EnableApplePushNotificationService -eq $False -and


$_.EnableMicrosoftPushNotificationService -eq $False}

In Skype for Business Server example 5, information is returned for all the push notification settings where either
the Apple Push Notification Service and/or the Microsoft Push Notification Service have been disabled. To carry
out this task, the command first uses the Get-CsPushNotificationConfiguration cmdlet in order to return a
collection of all the push notification settings currently in use. This collection is then piped to the Where-Object
cmdlet, which picks out those settings which meet one (or both) of the following criteria: 1) the
EnableApplePushNotificationService property is equal to (-eq) False; 2) the
EnableMicrosoftPushNotificationService property is equal to False. The -or operator tells Where-Object to look for
settings that meet either criteria:
Get-CsPushNotificationConfiguration | Where-Object {$_.EnableApplePushNotificationService -eq $False -or
$_.EnableMicrosoftPushNotificationService -eq $False}

To restrict the returned data to settings where both services have been disabled, use the -and operator instead:

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters in order to return a collection (or collections) of push notification
configuration settings. To return a collection of all the settings configured at the site scope, use this syntax:
-Filter site:*

To return a collection of all the settings that have the string value "Canada" somewhere in their Identity (the only
property you can filter on) use this syntax:
-Filter "*Canada*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of push notification settings you want to return. To refer to the
global settings use this syntax:
-Identity global

To refer to a collection configured at the site scope, use syntax similar to this:
-Identity site:Redmond

Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards, then include the Filter
parameter instead.
If this parameter is not specified, then the Get-CsPushNotificationConfiguration cmdlet returns a collection of all
the push notification configuration settings in use in the organization.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LocalStore
Retrieves the push notification configuration data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account whose push notification
configuration settings are to be modified. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WriteableConfig.Settings.PushNotificationConfiguration.PushNotificationConfigura
tion

Related Links
Set-CsPushNotificationConfiguration
New -CsPushNotificationConfiguration
Remove-CsPushNotificationConfiguration
minutes to read • Edit Online

Get-CsQoEConfiguration
In ths Article

Retrieves one or more collections of Quality of Experience (QoE ) settings. This cmdlet was introduced in Lync
Server 2010.

Syntax
Get-CsQoEConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsQoEConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
QoE metrics track the quality of audio and video calls made in your organization, including such things as the
number of network packets lost, background noise, and the amount of "jitter" (differences in packet delay). These
metrics are stored in a database apart from other data (such as call detail records), which allows you to enable and
disable QoE independent of other data recording. Use this cmdlet to retrieve settings that configure QoE at the
global or site level.
QoE is part of the Monitoring Server role; therefore Monitoring Server must be deployed on your Skype for
Business Server 2015 installation before QoE recording takes effect or any QoE data can be collected.

Examples
-------------------------- Example 1 --------------------------

Get-CsQoEConfiguration

This example uses the Get-CsQoEConfiguration cmdlet to return a collection of all the QoE settings configured for
use in your organization.
-------------------------- Example 2 --------------------------

Get-CsQoEConfiguration -Identity site:Redmond

Example 2 uses the Identity parameter to ensure that the Get-CsQoEConfiguration cmdlet returns only the QoE
settings with the Identity site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsQoEConfiguration -Filter site:*

In Example 3 the Filter parameter is used to return all the QoE settings that have been configured at the site scope.
The wildcard "site:*" returns all the QoE settings that have an Identity beginning with the string value site:. Settings
that meet those criteria are settings that have been configured at the site scope.
-------------------------- Example 4 --------------------------

Get-CsQoEConfiguration | Where-Object {$_.KeepQoEDataForDays -lt 30}

Example 4 returns a collection of all the QoE settings where the KeepQoEDataForDays property is less than 30
days. To do this, the command first uses the Get-CsQoEConfiguration cmdlet to return a collection of all the QoE
settings configured in the organization. That collection is then piped to the Where-Object cmdlet, which applies a
filter that limits the returned data to those settings that have a KeepQoEDataForDays value of less than 30 days.

Parameters
-Filter
Enables you to use wildcard characters in order to return a collection (or multiple collections) of QoE configuration
settings. To return a collection of all the settings configured at the site scope, use this syntax:
-Filter site:*

To return a collection of all the settings that have the string value "Western" somewhere in their Identity (the only
property you can filter on) use this syntax:
-Filter *Western*

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the settings you want to retrieve. Possible values are global and site:<site name>, where
<site name> is the name of the site in your Skype for Business Server deployment to which you want to apply the
changes.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the settings from the local replica of the Central Management store.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.QoE.QoESettings

Related Links
New -CsQoEConfiguration
Remove-CsQoEConfiguration
Set-CsQoEConfiguration
minutes to read • Edit Online

Get-CsRegistrarConfiguration
In ths Article

Returns information about the Registrar configuration settings currently in use in your organization. Registrars are
used to authenticate logon requests and to maintain information about user status and availability. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsRegistrarConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsRegistrarConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The Registrar is perhaps the most important component in Skype for Business Server; after all, without a Registrar,
users would not be able to log on to the system, and Skype for Business Server would not be able to keep track of
users and their current status. When a user logs on to Skype for Business Server, the endpoint the user is logging
on from sends a REGISTER request to the Registrar; in turn, the server responds by challenging the client device
for authentication credentials. If the client passes the challenge (that is, if the client presents a valid set of
credentials), then the user is authenticated and endpoint information such as IP address, port, and user name is
logged in the registration database. When a user logs off, this information is then removed from the database. In
between log on and log off, the Registrar keeps status information up-to-date and helps to route messages to and
from the user.
Registrar configuration settings are used to help manage endpoints and endpoint subscriptions; these settings can
be applied at the global, site, or service scope. (Service scoped-settings can only be used with the Registrar service.)
The Get-CsRegistrarConfiguration cmdlet is used to return information about all the Registrar configurations
collections currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsRegistrarConfiguration

The command shown in Example 1 returns a collection of all the Registrar configuration settings currently in use in
the organization.
-------------------------- Example 2 --------------------------

Get-CsRegistrarConfiguration -Identity site:Redmond


Example 2 returns a single collection of Registrar configuration settings: the settings configured for the Redmond
site (-Identity site:Redmond).
-------------------------- Example 3 --------------------------

Get-CsRegistrarConfiguration -Filter "service:*"

In Example 3, information is returned for all the Registrar configuration settings assigned at the service scope. To
do this, the command uses the Filter parameter and the filter value "service:*"; that filter value ensures that only
settings that have an Identity that begins with the string value "service:" will be returned.
-------------------------- Example 4 --------------------------

Get-CsRegistrarConfiguration | Where-Object {$_.EnableDHCPServer -eq $True}

Example 4 returns information about the Registrar configuration settings that enable the use of DHCP servers in
order to register clients. To carry out this task, the command first calls the Get-CsRegistrarConfiguration cmdlet
without any parameters; that returns a collection of all the Registrar configuration settings currently in use. This
collection is then piped to the Where-Object cmdlet, which selects only those settings where the
EnableDHCPServer property is equal to True.
-------------------------- Example 5 --------------------------

Get-CsRegistrarConfiguration | Where-Object {$_.MaxEndpointsPerUser -gt 8}

In Example 5, information is returned for all the Registrar configuration settings that allow more than eight
endpoints per user. To accomplish this, the command first uses the Get-CsRegistrarConfiguration cmdlet to return a
collection of all the Registrar configuration settings used in the organization. This collection is then piped to the
Where-Object cmdlet, which picks out those settings where the MaxEndpointsPerUser property is greater than 8.

Parameters
-Filter
Enables you to use wildcards in order to return one or more collections of Registrar configuration settings. For
example, to return all the settings configured at the site scope, use this syntax:
-Filter "site:*"

To return all the settings configured at the service scope, use this syntax:
-Filter "service:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Registrar configuration settings to be returned. To return the global settings, use this
syntax:
-Identity global

To return settings configured at the site scope, use syntax similar to this:
-Identity site:Redmond

To return settings at the service level, use syntax like this:


-Identity service:Registrar:atl-cs-001.litwareinc.com

If this parameter is omitted then the Get-CsRegistrarConfiguration cmdlet returns all of the Registrar configuration
settings currently in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Registrar configuration settings data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Registrar.RegistrarSettings

Related Links
New -CsRegistrarConfiguration
Remove-CsRegistrarConfiguration
Set-CsRegistrarConfiguration
minutes to read • Edit Online

Get-CsReportingConfiguration
In ths Article

Returns information about the reporting configuration settings in use in the organization. Reporting configuration
settings are used to specify the URL used for accessing Skype for Business Server Monitoring Reports. This cmdlet
was introduced in Lync Server 2013.

Syntax
Get-CsReportingConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsReportingConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
Reporting configuration settings are used to specify the home page for the Skype for Business Server Monitoring
Reports; if you are not using Monitoring Reports then there is no reason for you to modify the reporting
configuration settings.
The functions carried out by the Get-CsReportingConfiguration cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsReportingConfiguration

The command shown in Example 1 returns information for all the reporting configuration settings currently in use
in the organization.
-------------------------- Example 2 --------------------------

Get-CsReportingConfiguration -Identity "Service:MonitoringDatabase:atl-sql-001.litwareinc.com"

In Example 2, information is returned for a single collection of reporting configuration settings: the settings with the
Identity "Service:MonitoringDatabase:atl-sql-001.litwareinc.com".
-------------------------- Example 3 --------------------------

Get-CsReportingConfiguration -Filter "*.litwareinc.com"

In Example 3, information is returned for all the reporting configuration settings that have an Identity that ends in
".litwareinc.com". To do this, the command uses the Filter parameter and the filter value "*.litwareinc.com".
-------------------------- Example 4 --------------------------

Get-CsReportingConfiguration | Where-Object {$_.ReportingUrl -like "*_ARCHINST*"}

Example 4 returns information for all the reporting configuration settings that include the string value
"_ARCHINST" somewhere in their reporting URL. To do this the command first uses the Get-
CsReportingConfiguration cmdlet to return a collection of all the reporting configuration settings currently in use.
This collection is then piped to the Where-Object cmdlet, which picks out only those settings where the
ReportingUrl includes (-like) the string value "_ARCHINST".

Parameters
-Filter
Enables you to use wildcard characters when specifying the reporting configuration settings to be returned. For
example, this syntax returns all the settings configured at the service scope:
-Filter "service:*"

Note that you cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service Identity of the monitoring database associated with the reporting configuration settings. For example:
-Identity "Service:MonitoringDatabase:atl-sql-001.litwareinc.com"

If you do not include either the Identity parameter or the Filter parameter in your command, then the Get-
CsReportingConfiguration cmdlet will return all the reporting configuration settings in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the reporting configuration data from the local replica of the Central Management store rather than from
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Reporting.ReportingConfiguration

Related Links
New -CsReportingConfiguration
Remove-CsReportingConfiguration
Set-CsReportingConfiguration
minutes to read • Edit Online

Get-CsRgsAgentGroup
In ths Article

Returns information about the Response Group agent groups configured for use in your organization. An agent
group is a collection of agents assigned to a Response Group queue. Agents are the users assigned to answer calls
directed to a queue. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsRgsAgentGroup [[-Identity] <RgsIdentity>] [-Name <String>] [-Owner <RgsIdentity>] [-ShowAll]
[<CommonParameters>]

Description
When someone calls a phone number associated with the Response Group application, the application first
determines the workflow that corresponds to the number called. Based on the configuration of that workflow, the
call might be routed to a set of interactive voice response (IVR ) questions (in which the caller is asked one or more
questions along the lines of "Is this question about hardware support or software support?"). Alternatively, the call
might be placed in a Response Group queue; there the caller will be put on hold until a designated person is
available to answer the call. The people designated to answer calls are known as agents, and a collected set of
agents are referred to as a Response Group agent group. Agent groups are associated with workflows, and are
further associated with similar job responsibilities: help desk personnel might be grouped in the Help Desk agent
group while customer support agents might be grouped in the Customer Support agent group.
The Get-CsRgsAgentGroup cmdlet provides a way for you to return information about the Response Group agent
groups currently in use in your organization, including information about the users who have been assigned to
each agent group.

Examples
-------------------------- Example 1 --------------------------

Get-CsRgsAgentGroup

Example 1 returns all the Response Group agent groups configured for use in the organization. This is done by
calling Get-CsRgsAgentGroup without any parameters.
-------------------------- Example 2 --------------------------

Get-CsRgsAgentGroup -Identity service:ApplicationServer:atl-cs-001.litwareinc.com

The command shown in Example 2 returns all the Response Group agent groups configured for use on the service
ApplicationServer:atl-cs-001.litwareinc.com.
-------------------------- Example 3 --------------------------
Get-CsRgsAgentGroup -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"

The command shown in Example 3 returns a single Response Group agent group: the group named Help Desk
found on the service ApplicationServer:atl-cs-001.litwareinc.com.
-------------------------- Example 4 --------------------------

Get-CsRgsAgentGroup -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object


{$_.RoutingMethod -eq "RoundRobin"}

In Example 4, information is returned for all the Response Group agent groups on the service
ApplicationServer:atl-cs-001.litwareinc.com, provided those groups use the round robin routing method. To do this,
the command first uses Get-CsRgsAgentGroup to return a collection of all the agent groups on
ApplicationServer:atl-cs-001.litwareinc.com. This collection is then piped to the Where-Object cmdlet, which selects
only those groups where the RoutingMethod property is equal to "RoundRobin".
-------------------------- Example 5 --------------------------

Get-CsRgsAgentGroup -Identity Service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object


{$_.RoutingMethod -ne "RoundRobin"}

The command used in Example 5 is a variation of the one used in Example 4; in this case, however, information is
returned for all the Response Group agent groups on the service ApplicationServer:atl-cs-001.litwareinc.com that
do not use the round robin routing method. To do this, the command starts off by calling Get-CsRgsAgentGroup to
return a collection of all the agent groups on ApplicationServer:atl-cs-001.litwareinc.com. This collection is then
piped to the Where-Object cmdlet, which selects only those agent groups where the RoutingMethod property is
not equal to "RoundRobin".

Parameters
-Identity
Represents either the Identity of the service where the Response Group agent group is hosted or the full Identity of
the agent group itself. If you specify the service Identity (for example, service:ApplicationServer:atl-cs-
001.litwareinc.com) then all the agent groups hosted on that service will be returned. If you specify the Identity of
the group, then only the specified agent group will be returned. Note that the Identity of an agent group consists of
the service Identity followed by a globally unique identifier (GUID ); for example: service:ApplicationServer:atl-cs-
001.litwareinc.com/1987d3c2-4544-489d-bbe3-59f79f530a83.
An alternate way to return a single group is to specify the service Identity, then include the Name parameter and
the agent group name. That enables you to retrieve a specific agent group without having to know the GUID
assigned to that group.
If called without any parameters, Get-CsRgsAgentGroup returns a collection of all the agent groups configured for
use in your organization.

Type: RgsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Name
Unique name given to the agent group at the time the group was created.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Owner
Fully qualified domain name of the pool that "owns" the agent group. The Owner pool ID and the Pool ID of an
agent group are typically the same. However, if a group needs to temporarily be moved (perhaps in a disaster
recovery procedure) then the Pool ID will change. However, the Owner ID will continue to point to the original
pool.

Type: RgsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowAll
When present, shows all the Response Group agent groups, including those groups where the Owner pool ID and
the Pool ID are different. By default, Get-CsRgsAgentGroup only returns information about agent groups where
the Owner pool ID and the Pool ID are identical.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
A string value representing the Identity of the Response Group agent group.

Outputs
Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroup

Related Links
New -CsRgsAgentGroup
Remove-CsRgsAgentGroup
Set-CsRgsAgentGroup
minutes to read • Edit Online

Get-CsRgsConfiguration
In ths Article

Returns information about configuration settings for the Response Group application. This cmdlet was introduced
in Lync Server 2010.

Syntax
Get-CsRgsConfiguration [-Identity] <RgsIdentity> [<CommonParameters>]

Description
The Response Group application provides a way for you to automatically route phone calls to entities such as a help
desk or customer support line. When someone calls a designated phone number, that call can be directly routed to
the appropriate set of Response Group agents. Alternatively, the call might first be routed to an interactive voice
response (IVR ) queue. In that queue, the caller will be asked a series of questions (for example, "Are you calling
about an existing order?") and then, based on the answers to those questions, be routed to the appropriate
Response Group queue.
The Get-CsRgsConfiguration cmdlet provides a way for you to return information about how the Response Group
application has been configured. Note that, by default, this cmdlet only returns information from one instance of
the Response Group application at a time. For example, if you have separate installations of the Response Group
application -- one on ApplicationServer:atl-cs-001.litwareinc.com and one on ApplicationServer:dublin-cs-
001.litwareinc.com -- you will typically need to make separate calls to Get-CsRgsConfiguration in order to return
information for each of these Response Group instances. However, the Examples section in this topic shows a way
to work around this issue.

Examples
-------------------------- Example 1 --------------------------

Get-CsRgsConfiguration -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com"

Example 1 returns the Response Group configuration settings for the service ApplicationServer:atl-cs-
001.litwareinc.com. Because there can only be one collection of settings per service, this command will never return
more than a single item.
-------------------------- Example 2 --------------------------

(Get-CsRgsConfiguration -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com").DisableCallContext

The command shown in Example 2 returns the value of a single property -- DisableCallContext -- for the Response
Group configuration settings found on the service ApplicationServer:atl-cs-001.litwareinc.com. To accomplish this
task, Get-CsRgsConfiguration is first used to retrieve all the property values for the Response Group configuration
settings for ApplicationServer:atl-cs-001.litwareinc.com. Note that this command is enclosed in parentheses; that
ensures that Windows PowerShell returns all the property values before doing anything else.
After all the property values have been returned, standard "dot notation" is used to display the value of the
property DisableCallContext (and only the value of that property). Standard dot notation consists of the object
followed by a period (dot) followed by the name of the property to be displayed. For example, to display the value
of the AgentRingbackGracePeriod property (and only the value of that property), you can use this command:
(Get-CsRgsConfiguration -Identity "service:ApplicationServer:atl-cs-
001.litwareinc.com").AgentRingbackGracePeriod

-------------------------- Example 3 --------------------------

Get-CsService -ApplicationServer | Where-Object {$_.Applications -contains "urn:application:RGS"} | ForEach-


Object {Get-CsRgsConfiguration -Identity $_.Identity}

The command shown in Example 3 demonstrates how you can return Response Group configuration information
from all the computers running the Application service that host an instance of the Response Group application. To
do this, the command first uses the Get-CsService cmdlet and the ApplicationServer parameter to return
information about all the servers in the organization that are running the Application service. This collection is then
piped to the Where-Object cmdlet, which picks out only those servers where the Applications property contains the
application "urn:application:RGS"; that value indicates that the Response Group application is running on the server.
In turn, those servers are piped to the ForEach-Object cmdlet. ForEach-Object then takes each server in the
collection and uses Get-CsRgsConfiguration to return Response Group configuration information from each server.

Parameters
-Identity
Name of the service hosting the Response Group configuration settings; for example: -Identity
"service:ApplicationServer:atl-cs-001.litwareinc.com". If you do not include this parameter, Get-CsRgsConfiguration
will prompt you to supply an Identity.

Type: RgsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

Inputs
String
A string value representing the Identity of the Response Group configuration settings.

Outputs
Microsoft.Rtc.Rgs.Management.WritableSettings.ServiceSettings

Related Links
Move-CsRgsConfiguration
Set-CsRgsConfiguration
minutes to read • Edit Online

Get-CsRgsHolidaySet
In ths Article

Returns information about the Response Group holiday sets configured for use in your organization. A Response
Group holiday set is a collection of holidays. For example, you might have one holiday set for a United States (U.S.)-
based queue (a set which might include a holiday for the Fourth of July) and a different set for a queue based in
France. The latter queue might define a holiday for Bastille Day but not for the Fourth of July. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsRgsHolidaySet [[-Identity] <RgsIdentity>] [-Name <String>] [-Owner <RgsIdentity>] [-ShowAll]
[<CommonParameters>]

Description
In order to provide callers with the best possible experience, the Response Group application makes it possible for
you to clearly define when Response Group agents are available to answer calls and when they are not available to
answer calls. With the Response Group application you can define business hours; these hours indicate the days of
the week and hours of the day that agents are available to answer calls. For example, if your organization is typically
open from 9:00 A.M. to 5:00 P.M. Monday through Friday, then you would configure business hours that show that
agents are available from 9:00 A.M. to 5:00 P.M. Monday through Friday (and, by extension, that agents are not
available at, say, 8:00 P.M. on a Thursday or 2:30 P.M. on a Sunday).
However, in many organizations there are exceptions to the typical work week; for example, in the U.S., an
organization might be closed on Christmas Day or Thanksgiving Day. In order to accommodate these atypical
closures, the Response Group application enables you to designate certain days as holidays: days when the
organization would usually be open but, for whatever reason, is not. Individual holidays (created by using the New -
CsRgsHoliday cmdlet) are collected in holiday sets; for example, holidays for the U.S. might be collected in a holiday
set named US_Holidays, while holidays for Japan might be collected in a holiday set named Japanese_Holidays.
After they are collected, holiday sets can then be assigned to Response Group workflows.
The Get-CsRgsHolidaySet provides a way for you to return information about the Response Group holiday sets
configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsRgsHolidaySet

Example 1 returns information about all the holiday sets configured for use in your organization.
-------------------------- Example 2 --------------------------
Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com"

The command shown in Example 2 returns information about all the holiday sets configured for the service
ApplicationServer:atl-cs-001.litwareinc.com.
-------------------------- Example 3 --------------------------

Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "2018 Holidays"

In Example 3, a single holiday set from the service ApplicationServer:atl-cs-001.litwareinc.com is returned: the set
with the Name "2018 Holidays". Because Names must be unique for each service, this command will never return
more than one item.
-------------------------- Example 4 --------------------------

Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "2018 Holidays"|


Select-Object -ExpandProperty HolidayList

Example 4 displays detailed information for the holidays found in the holiday set "2018 Holidays" (located on the
service ApplicationServer:atl-cs-001.litwareinc.com). To do this, the command first uses Get-CsRgsHolidaySet to
retrieve the specified holiday set. This set is then passed to the Select-Object cmdlet, which uses the
ExpandProperty parameter to show detailed information for each holiday in the set.
-------------------------- Example 5 --------------------------

Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Select-Object Identity -


ExpandProperty HolidayList | Where-Object {$_.Name -eq "Christmas Day"} | ForEach-Object {Get-CsRgsHolidaySet -
Identity $_.Identity}

The command shown in Example 5 reports the Identity of each holiday set on ApplicationServer:atl-cs-
001.litwareinc.com that includes a holiday named Christmas Day. To do this, the command first calls Get-
CsRgsHolidaySet to return a collection of all the holiday sets found on ApplicationServer:atl-cs-001.litwareinc.com.
This collection is then piped to the Select-Object, which does two things: it selects the Identity property, and it
expands the HolidayList property.
These two pieces of information -- Identity, and the expanded value of the HolidayList property -- are then piped to
the Where-Object cmdlet; in turn, Where-Object picks out the items where the Name of the holiday is equal to
Christmas Day. Finally, the filtered collection is piped to the ForEach-Object cmdlet. This cmdlet takes each Identity
in the collection and, one-by-one, uses Get-CsRgsHolidaySet to retrieve the corresponding holiday set. The net
result is a list of all the holiday sets that include a Christmas Day holiday.

Parameters
-Identity
Represents either the Identity of the service where the holiday set is hosted or the full Identity of the holiday set. If
you specify the service Identity (for example, service:ApplicationServer:atl-cs-001.litwareinc.com), then all the
holiday sets hosted on that service will be returned. If you specify the Identity of the holiday set, then only the
specified set will be returned. Note that the Identity of a holiday set consists of the service Identity followed by a
globally unique identifier (GUID ); for example: service:ApplicationServer:atl-cs-001.litwareinc.com/1987d3c2-
4544-489d-bbe3-59f79f530a83.
An alternate way to return a single holiday set is to specify the service Identity, and then include the Name
parameter and the holiday set name. That enables you to retrieve a specific holiday set without having to know the
GUID assigned to that set.
If called without any parameters, Get-CsRgsHolidaySet returns a collection of all the holiday sets configured for use
in your organization.

Type: RgsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Name
Unique name given to the holiday set at the time the set was created.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Owner
Fully qualified domain name of the pool that "owns" the holiday set. The Owner pool ID and the Pool ID of a
holiday set are typically the same. However, if a holiday set needs to temporarily be moved (perhaps in a disaster
recovery procedure) then the Pool ID will change. However, the Owner ID will continue to point to the original
pool.

Type: RgsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowAll
When present, shows all the Response Group holiday sets, including those sets where the Owner pool ID and the
Pool ID are different. By default, Get-CsRgsHolidaySet only returns information about agent sets where the Owner
pool ID and the Pool ID are identical.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Rgs.Management.WritableSettings.HolidaySet

Related Links
New -CsRgsHolidaySet
Remove-CsRgsHolidaySet
Set-CsRgsHolidaySet
minutes to read • Edit Online

Get-CsRgsHoursOfBusiness
In ths Article

Retrieves information about the Response Group business hour collections configured for use in your organization.
Business hour collections are used to indicate the days of the week and the times of day when Response Group
agents are typically available to answer phone calls. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsRgsHoursOfBusiness [[-Identity] <RgsIdentity>] [-Name <String>] [-Owner <RgsIdentity>] [-ShowAll]
[<CommonParameters>]

Description
In order to provide callers with the best possible experience, the Response Group application makes it possible for
you to clearly define when Response Group agents are available to answer calls and when they are not available to
answer calls. With the Response Group application, you can define business hours that indicate the days of the
week and hours of the day that agents are available to answer calls. For example, if your organization is typically
open from 9:00 A.M. to 5:00 P.M. Monday through Friday, then you would configure business hours that show that
agents are available from 9:00 A.M. to 5:00 P.M. Monday through Friday (and, by extension, that agents are not
available at, say, 8:00 P.M. on a Thursday or 2:30 P.M. on a Sunday).
The Get-CsRgsHoursOfBusiness cmdlet provides a way for you to retrieve information about the business hour
collections configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsRgsHoursOfBusiness

Example 1 returns information about all the business hour collections configured for use in your organization. This
is done by calling Get-CsRgsHoursOfBusiness without any parameters.
-------------------------- Example 2 --------------------------

Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com"

The command shown in Example 2 returns all the business hour collections configured for use on atl-cs-
001.litwareinc.com.
-------------------------- Example 3 --------------------------
Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "Help Desk
Business Hours"

Example 3 returns a single collection of business hours from atl-cs-001.litwareinc.com: the collection with the
Name "Help Desk Business Hours".
-------------------------- Example 4 --------------------------

Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Where-Object


{$_.SundayTimeRange1 -ne $Null -or $_.SundayTimeRange2 -ne $Null}

The command shown in Example 4 returns all the business hour collections that have business hours configured
for Sundays. To do this, the command first calls Get-CsRgsHoursOfBusiness to return all the business hour
collections found on atl-cs-001.litwareinc.com. This data is then piped to the Where-Object cmdlet, which selects
only those items where one of the following two criteria is true: the SundayTimeRange1 property is not equal to a
null value and/or the SundayTimeRange2 property is not equal to a null value. If a time range property is not null,
then that means business hours have been configured for that time period.
-------------------------- Example 5 --------------------------

Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Where-Object


{$_.MondayTimeRange1.OpenTime -le "08:00:00"}

The command shown in Example 5 returns all the business hour collections from atl-cs-001.litwareinc.com where
the opening time for the MondayTimeRange1 property is equal to (or earlier than) 8:00 A.M. In order to do this, the
command first uses Get-CsRgsHoursOfBusiness to return all the business hour collections from atl-cs-
001.litwareinc.com. This data is then piped to the Where-Object cmdlet, which selects only those collections where
the value of the MondayTimeRange1.OpenTime property is less than or equal to 8:00 A.M. (08:00:00).
-------------------------- Example 6 --------------------------

Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Where-Object


{$_.Custom -eq $False}

The command shown in Example 6 returns all the public business hour collections; that is, collections that can be
shared among workflows. To do this, the command first uses Get-CsRgsHoursOfBusiness to return all the business
hour collections found on atl-cs-001.litwareinc.com. This data is then piped to the Where-Object cmdlet, which
picks out only those collections where the Custom property is equal to False.

Parameters
-Identity
Represents either the Identity of the service where the business hours collection is hosted or the full Identity of the
collection itself. If you specify the service Identity (for example, service:ApplicationServer:atl-cs-001.litwareinc.com),
then all the business hours collections hosted on that service will be returned. If you specify the Identity of the
collection, then only the specified business hours collection will be returned. Note that the Identity of a business
hours collection consists of the service Identity followed by a globally unique identifier (GUID ); for example:
service:ApplicationServer-1/1987d3c2-4544-489d-bbe3-59f79f530a83.
An alternate way to return business hours collection is to specify the service Identity, then include the Name
parameter and the collection name. That enables you to retrieve a specific business hours collection without having
to know the GUID assigned to that collection.
If called without any parameters, Get-CsRgsHoursOfBusiness returns all the business hour collections configured
for use in your organization.

Type: RgsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Name
Unique name given to the business hours collection at the time the collection was created.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Owner
Fully qualified domain name of the pool that "owns" the business hours. The Owner pool ID and the Pool ID of a
collection of business hours are typically the same. However, if a collection needs to temporarily be moved
(perhaps in a disaster recovery procedure) then the Pool ID will change. However, the Owner ID will continue to
point to the original pool.

Type: RgsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowAll
When present, shows all the Response Group business hour collections, including those collections where the
Owner pool ID and the Pool ID are different. By default, Get-CsRgsHoursOfBusiness only returns information
about business hour collections where the Owner pool ID and the Pool ID are identical.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Rgs.Management.WritableSettings.BusinessHours
Related Links
New -CsRgsHoursOfBusiness
Remove-CsRgsHoursOfBusiness
Set-CsRgsHoursOfBusiness
minutes to read • Edit Online

Get-CsRgsQueue
In ths Article

Retrieves information about the Response Group queues in use in your organization. With the Response Group
application, phone calls are put in a queue and calls are placed on hold until a Response Group agent is available to
answer that call. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsRgsQueue [[-Identity] <RgsIdentity>] [-Name <String>] [-Owner <RgsIdentity>] [-ShowAll]
[<CommonParameters>]

Description
When someone calls a phone number associated with the Response Group application, one of two things typically
happens: either the call is transferred to a question that the caller must answer in order to continue (for example,
"Press 1 for hardware support; press 2 for software support") or the call is placed in a queue until a Response
Group agent is available to answer the call.
Instead of having a single queue for all phone calls, the Response Group application enables you to create multiple
queues that can be associated with different workflows and different Response Group agent groups. In turn, this
means queues can respond differently to events such as a designated number of calls being simultaneously held in
the queue, or to callers that have been on hold for a specified number of seconds.
The Get-CsRgsQueue cmdlet provides a way for you to return information about the Response Group queues
configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsRgsQueue

The command shown in Example 1 returns information about all the Response Group queues configured for use in
the organization. This is done by calling Get-CsRgsQueue without any parameters.
-------------------------- Example 2 --------------------------

Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com

The command shown in Example 2 returns information about all the Response Group queues located on the
service ApplicationServer:atl-cs-001.litwareinc.com.
-------------------------- Example 3 --------------------------
Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"

In Example 3, information is returned for a single Response Group queue: the queue named "Help Desk" located on
the service ApplicationServer:atl-cs-001.litwareinc.com.
-------------------------- Example 4 --------------------------

Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Select-Object -ExpandProperty


TimeoutAction

The command shown in Example 4 displays detailed information about the TimeoutAction property for each
Response Group queue found on the service ApplicationServer:atl-cs-001.litwareinc.com. To carry out this task,
Get-CsRgsQueue is first used to return information about all the queues found on ApplicationServer:atl-cs-
001.litwareinc.com. This information is then passed to the Select-Object cmdlet, which "expands" the value stored
in the TimeoutAction property. When you expand the TimeoutAction property, you see the individual properties of
the embedded object that make up the property value: Prompt; TargetQuestion; Target; TargetQueueID; and
TargetUri.
-------------------------- Example 5 --------------------------

Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object


{$_.OverflowCandidate -eq "NewestCall"}

Example 5 returns information about all the Response Group queues on ApplicationServer:atl-cs-
001.litwareinc.com where the OverflowCandidate property is set to NewestCall. To accomplish this task, the
command first uses Get-CsRgsQueue to return a collection of all the Response Group queues found on the
specified service. That collection is then piped to the Where-Object cmdlet, which selects only those queues where
the OverflowCandidate property is equal to "NewestCall".

Parameters
-Identity
Represents either the Identity of the service where the Response Group queue is hosted or the full Identity of the
queue itself. If you specify the service Identity (for example, service:ApplicationServer:atl-cs-001.litwareinc.com),
then all the Response Group queues hosted on that service will be returned. If you specify the Identity of the queue,
then only the specified Response Group queue will be returned. Note that the Identity of a queue consists of the
service Identity followed by a globally unique identifier (GUID ); for example: service:ApplicationServer:atl-cs-
001.litwareinc.com /1987d3c2-4544-489d-bbe3-59f79f530a83.
An alternate way to return a single Response Group queue is to specify the service Identity, then include the Name
parameter and the queue name. That enables you to retrieve a specific Response Group queue without having to
know the GUID assigned to that queue.
If called without any parameters, Get-CsRgsQueue returns all the Response Group queues configured for use in
your organization.

Type: RgsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False
-Name
Unique name given to the Response Group queue at the time the queue was created.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Owner
Fully qualified domain name of the pool that "owns" the queue. The Owner pool ID and the Pool ID of a queue are
typically the same. However, if a queue needs to temporarily be moved (perhaps in a disaster recovery procedure)
then the Pool ID will change. However, the Owner ID will continue to point to the original pool.

Type: RgsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowAll
When present, shows all the Response Group queues, including those queues where the Owner pool ID and the
Pool ID are different. By default, Get-CsRgsQueue only returns information about queues where the Owner pool
ID and the Pool ID are identical.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
A string value representing the Identity of the Response Group queue.

Outputs
Microsoft.Rtc.Rgs.Management.WritableSettings.Queue

Related Links
New -CsRgsQueue
Remove-CsRgsQueue
Set-CsRgsQueue
minutes to read • Edit Online

Get-CsRgsWorkflow
In ths Article

Returns information about Response Group workflows. Workflows determine the actions that are taken when the
Response Group application receives a phone call. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsRgsWorkflow [[-Identity] <RgsIdentity>] [-Name <String>] [-Owner <RgsIdentity>] [-ShowAll]
[<CommonParameters>]

Description
Workflows are perhaps the key element in the Response Group application. Each workflow is uniquely associated
with a phone number; when someone calls that number, the workflow determines how the call will be handled. For
example, the call might be routed to a series of interactive voice response (IVR ) questions that prompt the caller to
enter additional information ("Press 1 for hardware support. Press 2 for software support."). Alternatively, the call
might be placed in a queue and the caller placed on hold until an agent is available to answer the call. The
availability of agents to answer calls is also dictated by the workflow: workflows are used to configure both
business hours (the days of the week and the times of day when agents are available to answer calls) and holidays
(days when no agents are available to answer calls).

The Get-CsRgsWorkflow cmdlet provides a way for you to return information about the workflows configured for
use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsRgsWorkflow

Example 1 returns information about all the workflows configured for use in your organization. This is done by
calling Get-CsRgsWorkflow without any parameters.
-------------------------- Example 2 --------------------------

Get-CsRgsWorkflow -Identity service:ApplicationServer:atl-cs-001.litwareinc.com

Example 2 returns information about all the Response Group application workflows found on the service
ApplicationServer:atl-cs-001.litwareinc.com.
-------------------------- Example 3 --------------------------
Get-CsRgsWorkflow -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Select-Object -ExpandProperty
DefaultAction

The command shown in Example 3 displays detailed information about the DefaultAction property for each
Response Group workflow found on the service ApplicationServer:atl-cs-001.litwareinc.com. To carry out this task,
Get-CsRgsWorkflow is first used to return information about all the workflows found on ApplicationServer:atl-cs-
001.litwareinc.com. This information is then piped to the Select-Object cmdlet, which "expands" the value stored in
the DefaultAction property. When you expand the value of DefaultAction, you see the individual properties of the
embedded object stored in the DefaultAction property.
-------------------------- Example 4 --------------------------

Get-CsRgsWorkflow -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "European Sales Support"

Example 4 returns information about a single Response Group workflow: the European Sales Supports workflow
found on ApplicationServer:atl-cs-001.litwareinc.com.
-------------------------- Example 5 --------------------------

Get-CsRgsWorkflow -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object {$_.Language -eq


"en-Us"}

The command shown in Example 5 returns information about all the Response Group workflows that use U.S.
English as the primary language. To do this, the command first calls Get-CsRgsWorkflow to return a collection of all
the workflows found on the service ApplicationServer:atl-cs-001.litwareinc.com. That collection is then piped to the
Where-Object cmdlet, which selects only those workflows where the Language property is equal to U.S. English
(en-US ).
-------------------------- Example 6 --------------------------

Get-CsRgsWorkflow service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object {$_.CustomMusicOnHoldFile


-eq $Null}

Example 6 returns all the workflows on ApplicationServer:atl-cs-001.litwareinc.com where the


CustomMusicOnHoldFile property has been set to a null value. (In other words, the command returns information
about the workflows that have not been assigned custom music.) To carry out this task, the command first uses
Get-CsRgsWorkflow to return a collection of all the workflows found on the service ApplicationServer:atl-cs-
001.litwareinc.com. The returned data is then piped to Where-Object, which picks out only those items where the
CustomMusicOnHoldFile property is equal to a null value.

Parameters
-Identity
Represents either the Identity of the service where the Response Group workflow is hosted or the full Identity of
the workflow itself. If you specify the service Identity (for example, service: ApplicationServer:atl-cs-
001.litwareinc.com), then all the Response Group workflows hosted on that service will be returned. If you specify
the Identity of the workflow, then only that one Response Group workflow will be returned. Note that the Identity
of a workflow consists of the service Identity followed by a globally unique identifier (GUID ); for example:
service:ApplicationServer:atl-cs-001.litwareinc.com /1987d3c2-4544-489d-bbe3-59f79f530a83.
An alternate way to return a single Response Group workflow is to specify the service Identity, then include the
Name parameter and the workflow name. That enables you to retrieve a specific workflow without having to know
the GUID assigned to that workflow.
If called without any parameters, Get-CsRgsWorkflow returns a collection of all the workflows configured for use in
your organization.

Type: RgsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Name
Unique name given to the Response Group workflow at the time the workflow was created.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Owner
Fully qualified domain name of the pool that "owns" the workflow. The Owner pool ID and the Pool ID of a
workflow are typically the same. However, if a workflow needs to temporarily be moved (perhaps in a disaster
recovery procedure) then the Pool ID will change. However, the Owner ID will continue to point to the original
pool.

Type: RgsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowAll
When present, shows all the Response Group workflows, including those workflows where the Owner pool ID and
the Pool ID are different. By default, Get-CsRgsWorkflow only returns information about workflows where the
Owner and Parent Pools are identical.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow

Related Links
New -CsRgsWorkflow
Remove-CsRgsWorkflow
Set-CsRgsWorkflow
minutes to read • Edit Online

Get-CsRoutingConfiguration
In ths Article

Retrieves the routing configuration object, which contains a list of all voice routes defined within a Skype for
Business Server deployment. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsRoutingConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsRoutingConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Voice routes contain instructions that tell Skype for Business Server how to route calls from Enterprise Voice users
to phone numbers on the public switched telephone network (PSTN ) or a private branch exchange (PBX). This
cmdlet is used to retrieve the global instance that holds a list of all voice routes defined within the Skype for
Business Server deployment. To retrieve individual voice routes or to retrieve them as individual objects rather than
as a list, use the Get-CsVoiceRoute cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsRoutingConfiguration

This example retrieves the routing configuration. To retrieve individual voice routes, use the Get-CsVoiceRoute
cmdlet.

Parameters
-Filter
There can be only one instance of this object, so this parameter does nothing.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The scope of the routing configuration to retrieve. The only possible value is Global.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the routing configuration from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Writable.Policy.Voice.PSTNRoutingSettings

Related Links
New -CsRoutingConfiguration
Remove-CsRoutingConfiguration
Set-CsRoutingConfiguration
Get-CsVoiceRoute
minutes to read • Edit Online

Get-CsServerApplication
In ths Article

Returns information about the server applications in use in your organization. Server applications are applications
that are hosted by Skype for Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsServerApplication [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsServerApplication [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Server applications refer to the individual programs that run under Skype for Business Server. The Get-
CsServerApplication cmdlet provides a way for administrators to return information about any (or all) of the
applications running as part of Skype for Business Server.

Examples
-------------------------- Example 1 --------------------------

Get-CsServerApplication

The command shown in Example 1 returns information about all the server applications currently in use in the
organization. This is done by calling the Get-CsServerApplication cmdlet without any parameters.
-------------------------- Example 2 --------------------------

Get-CsServerApplication -Identity "service:EdgeServer:atl-edge-001.litwareinc.com"

In Example 2, information is returned for all the server applications running on the service EdgeServer:atl-edge-
001.litwareinc.com.
-------------------------- Example 3 --------------------------

Get-CsServerApplication -Identity "service:Registrar:atl-cs-001.litwareinc.com/ExumRouting"

Example 3 returns information for a single server application: the application that has the Identity Registrar:atl-cs-
001.litwareinc.com/ExumRouting".
-------------------------- Example 4 --------------------------
Get-CsServerApplication -Filter "service:*:atl-cs-001.litwareinc.com*"

Example 4 returns all the server applications configured for use in the pool atl-cs-001.litwareinc.com. This is done
by using the Filter parameter and the filter value "service::atl-cs-001.litwareinc.com". The filter value limits the
returned data to applications that have an Identity that begins with the characters "service:" and includes the
characters ":atl-cs-001.litwareinc.com".
-------------------------- Example 5 --------------------------

Get-CsServerApplication | Where-Object {$_.Enabled -eq $False}

In Example 5, information is returned for all the server applications that are currently disabled. To carry out this
task, the command first calls the Get-CsServerApplication cmdlet to return a collection of all the server applications
configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only
those applications where the Enabled property is equal to False.
-------------------------- Example 6 --------------------------

Get-CsServerApplication | Where-Object {$_.Critical -eq $True -and $_.Enabled -eq $False}

Example 6 is a variation of the command shown in Example 5. In Example 6, information is returned for all the
server applications that are marked as critical and are currently disabled. To do this, the command first calls the
Get-CsServerApplication cmdlet without any parameters; that returns a collection of all the server applications
configured for use. This collection is then piped to the Where-Object cmdlet, which picks out only those
applications that meet two criteria: the Critical property must be equal to True; and, the Enabled property must be
equal to False. The -and operator ensures that only objects that meet both criteria will be returned.
-------------------------- Example 7 --------------------------

Get-CsServerApplication | Where-Object {$_.Uri -like "*routing*"}

In Example 7, information is returned for any server application that has the string value "routing" somewhere in its
Uri. This task is accomplished by first using the Get-CsServerApplication cmdlet to retrieve all the server
applications currently in use. The resulting collection is then piped to the Where-Object cmdlet, which selects only
those applications in which the Uri property includes the string value "routing".
-------------------------- Example 8 --------------------------

Get-CsServerApplication | Where-Object {$_.ScriptName -ne $Null}

Example 8 returns information for all the server applications that have been assigned a script. To do this, the
command first retrieves a collection of all the server applications currently in use; this information is retrieved by
calling the Get-CsServerApplication cmdlet without any parameters. The complete collection of server applications
is then piped to the Where-Object cmdlet, which selects only those applications where the ScriptName property is
not equal to a null value. If the ScriptName property is not equal to a null value that means that a script has been
assigned to that application.

Parameters
-Filter
Enables you to use wildcards when returning a server application or set of server applications. For example, to
return all the server applications that have the string value "IIMFilter" somewhere in their Identity use this syntax:
-Filter "*IIMFilter*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the server application to be retrieved. Server application Identities are composed of the
service where the application is hosted plus the application name. For example, the server application named
QoEAgent might have an Identity similar to this: service: Registrar:atl-cs-001.litwareinc.com/QoEAgent.
To retrieve a collection of all the applications running on a given service, simply leave off the application name:
-Identity "Registrar:atl-cs-001.litwareinc.com "

If this parameter is omitted, then all the server applications will be returned when you call the Get-
CsServerApplication cmdlet.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the server application data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application

Related Links
New -CsServerApplication
Remove-CsServerApplication
Set-CsServerApplication
minutes to read • Edit Online

Get-CsServerPatchVersion
In ths Article

Returns the Skype for Business Server Component Version. This cmdlet was introduced in Skype for Business
Server 2015 November 2015 Cumulative Update.

Syntax
Get-CsServerPatchVersion [-Report <String>] [<CommonParameters>]

Description
This cmdlet returns the Skype for Business Server version for each component installed on the server. It replaces
the previous methods (Windows Registry and WMI Classes). You should have installed November 2015
Cumulative Update (6.0.9319.102) for Skype for Business Server 2015 or later.

Examples
-------------------------- Example 1 --------------------------

Get-CsServerPatchVersion

This example returns the version for each component installed on the Skype for Business Server.

Parameters
-Report
Generates a log file with the result of the operation. You should specify the file name in html format.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsServerVersion
In ths Article

Returns server licensing information for a computer running Skype for Business Server. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsServerVersion [<CommonParameters>]

Description
Skype for Business Server comes in two different versions: an evaluation version (which will eventually expire) and
a fully-licensed version. The Get-CsServerVersion cmdlet provides a way for administrators to determine which
version of Skype for Business Server is running on a computer. The Get-CsServerVersion cmdlet, which is designed
to run only on the local computer and which has no additional parameters, attempts to read the registry value
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Real-Time Communications{A593FD00-64F1-4288-A6F4-
E699ED9DCA35}\Type. Based on that registry value, the cmdlet will then report back the version number of the
software and the Skype for Business Server licensing information. That licensing information will tell you one of the
following:
That the evaluation license key has been installed.
That the volume license key has been installed.
That no license key is required for the components installed on the local computer. (Licensing is required only for
computers functioning as a Front End Server, a Director, or an Edge Server.)
If an error occurs, the Get-CsServerVersion cmdlet will report that the license type and version information could
not be retrieved, and recommend that you reinstall the Skype for Business Server components.
Note that Get-CsServerVersion returns only the base version number. For example, Get-CsServerVersion will
return a value such as 5.0.8308 even if an update has officially changed the version number to 5.0.8308.291. If you
need a very specific version number then you should use the Windows Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsServerVersion

The command shown in Example 1 returns licensing information for the local computer. This is the only way that
the Get-CsServerVersion cmdlet can be used.

Inputs
None

Outputs
String
minutes to read • Edit Online

Get-CsService
In ths Article

Returns information about the services and server roles being used in your Skype for Business Server
infrastructure. A service is an instance of a role that has been deployed in a Skype for Business Server pool. For
example, you might have a pool of computers all running the Monitoring service. This cmdlet was introduced in
Lync Server 2010.

Syntax
Get-CsService [[-Identity] <XdsGlobalRelativeIdentity>] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-Filter <String>] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-ApplicationDatabase] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-ApplicationServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-ArchivingDatabase] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-ArchivingServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-CentralManagement] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-CentralManagementDatabase] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-ConferencingServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-Director] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-EdgeServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-FileStore] [-PoolFqdn <String>] [<CommonParameters>]


Get-CsService [-ManagementServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-MediationServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-MonitoringServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-MonitoringDatabase] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-ProvisionServer] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-ProvisionDatabase] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-PstnGateway] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-Registrar] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-TrustedApplicationPool] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-UserDatabase] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-UserServer] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-WebServer] [<CommonParameters>]

Get-CsService [-BackupServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-LegalInterceptServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-PersistentChatComplianceDatabase] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-PersistentChatDatabase] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-PersistentChatServer] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-WacServer] [<CommonParameters>]


Get-CsService [-PoolFqdn <String>] [-VideoGateway] [<CommonParameters>]

Get-CsService [-PoolFqdn <String>] [-VideoInteropServer] [<CommonParameters>]

Description
The capabilities found in Skype for Business Server are typically expressed as services or as server roles. For
example, you can configure Skype for Business Server to automatically save a transcript of every instant messaging
session that takes place in your organization. In order to do this, you must install the Archiving Server server role.
Services and server roles can be configured at the same time you install Skype for Business Server itself, or they
can be configured after the software is up and running.
The Get-CsService cmdlet enables you to return information about the server roles and services running in your
organization. Called without any additional parameters, the Get-CsService cmdlet returns detailed information
about all your services and server roles. Alternatively, you can limit the returned data to a specified pool by using
the PoolFqdn parameter. In addition, you can use any number of switch parameters to limit the returned data to a
specific type of service. A switch parameter is a parameter that does not require a parameter value. For example,
this command returns information about all your Archiving Servers:
Get-CsService -ArchivingServer

Note that you can only use one such switch parameter per command. The following command, which tries to
return information about both Archiving Servers and Monitoring Servers, will fail:
Get-CsService -ArchivingServer -MonitoringServer

If you need to return information for multiple server roles, you can use the Get-CsService cmdlet to return a
complete collection of service data, and then pipe that data to the Where-Object cmdlet:
Get-CsService | Where-Object {$_.Role -eq "ArchivingServer" -or $_.Role -eq "MonitoringServer"}

Examples
-------------------------- Example 1 --------------------------

Get-CsService

The command shown in Example 1 returns information about all the Skype for Business Server services and server
roles currently running in your organization.
-------------------------- Example 2 --------------------------

Get-CsService -ApplicationServer

Example 2 returns information only about the Application service. You can return information for other
services/server roles simply by using the appropriate parameter. For example, this command returns information
about the file store:
-------------------------- Example 3 --------------------------

Get-CsService -PoolFqdn "atl-cs-001.litwareinc.com" | Select-Object Identity


Example 3 reports back the Identity for each service located on the pool atl-cs-001.litwareinc.com. To carry out this
task, the command first calls the Get-CsService cmdlet and the PoolFqdn parameter to return only those services
and server roles found on the pool atl-cs-001.litwareinc.com. This collection is then piped to the Select-Object
cmdlet, which reports back the Identity of each item in the collection.
-------------------------- Example 4 --------------------------

Get-CsService | Where-Object {$_.SiteID -eq "site:Redmond"}

In Example 4, information is returned for all the services/server roles found on the Redmond site. This is done by
first calling the Get-CsService cmdlet without any parameters in order to return a collection of all the services and
server roles currently in use in the organization. This data is then piped to the Where-Object cmdlet, which picks
out only those items where the SiteID property is equal to site:Redmond.
-------------------------- Example 5 --------------------------

Get-CsService | Where-Object {$_.DependentServiceList -like "*Registrar*"}

The command shown in Example 5 returns information about all the services that list the Registrar as a dependent
service. To do this, the Get-CsService cmdlet is called in order to return a collection of all the services and server
roles currently in use. This collection is then piped to the Where-Object cmdlet, which selects each item where the
DependentServiceList property includes the string value "Registrar". The Where-Object cmdlet criteria is specified
by using the -like operator and the wildcard value "Registrar".

Parameters
-ApplicationDatabase
Returns information about the Application databases used in your organization. Application databases are used by
the Application service.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ApplicationServer
Returns information about the Application service. The Application service provides a way to run applications
created by using the Microsoft Unified Communications Managed API (UCMA).

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ArchivingDatabase
Returns information about the Archiving databases used in your organization. Archiving databases store transcripts
of instant messaging sessions.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ArchivingServer
Returns information about the Archiving Servers used in your organization. Archiving Servers enable you to save
the transcripts of instant messaging sessions.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BackupServer
Returns information about the backup servers used in your organization.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CentralManagement
Returns information about the Central Management service used in your organization. The Central Management
service is used to send configuration data to computers running Skype for Business Server services.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CentralManagementDatabase
Returns information about the Central Management store used in your organization. The Central Management
store maintains configuration information for Skype for Business Server.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConferencingServer
Returns information about the A/V Conferencing service used in your organization. The A/V Conferencing service
is used to conduct meetings and conferences.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Director
Returns information about the Directors used in your organization. Directors are empowered to handle user
requests and user authentication, but do not house user accounts. Directors are typically used to handle requests
from external users.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EdgeServer
Returns information about the Edge Servers used in your organization. Edge Servers provide connectivity between
your internal network and the Internet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileStore
Returns information about the File Stores used in your organization. The File Store is used to maintain Skype for
Business Server files, such as audio files used by the Announcement service.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcards to specify the service (or services) to be returned. You cannot use both the Identity
and the Filter parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier of the specific service or server role to be returned. For example:
-Identity "Registrar:atl-cs-001.litwareinc.com"

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LegalInterceptServer
Returns information about the legal intercept servers used in your organization. Legal intercept servers provide
real-time interception of instant messaging communications on Office 365.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ManagementServer
Returns information about the Central Management Server used in your organization. The Central Management
Server is commonly collocated with the Front End Servers and is responsible for accessing information in the
Central Management store.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediationServer
Returns information about the Mediation Servers used in your organization. Mediation Servers help provide a
bridge between your Enterprise Voice network and the public switched telephone network (PSTN ).

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MonitoringDatabase
Returns information about the monitoring databases used in your organization. Monitoring databases store
Enterprise Voice phone usage and call quality information.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MonitoringServer
Returns information about the Monitoring Servers used in your organization. Monitoring Servers are used to track
Enterprise Voice phone usage and call quality.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatComplianceDatabase
Returns information about the databases used for maintaining Persistent Chat compliance information.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatDatabase
Returns information about the databases used for maintaining Persistent Chat information.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatServer
Returns information about the Persistent Chat servers used in your organization.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name (FQDN ) of the pool hosting the service or server role. If you use the PoolFqdn
parameter without specifying a service-specific parameter, then all the services and server roles found on that pool
will be returned.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProvisionDatabase
Returns information about the provision databases used in your organization. Provision databases maintain
information about Lync Server certificates.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProvisionServer
Returns information about the Provision Server service used in your organization. The Provision Server service is
used to manage Lync Server certificates.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PstnGateway
Returns information about the public switched telephone network (PSTN ) gateways used in your organization.
PSTN gateways translate signals from Enterprise Voice devices to signals that can be understood by PSTN devices,
and vice-versa.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Registrar
Returns information about the Registrars used in your organization. Registrars are used to authenticate users and
to keep track of a user's current status.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TrustedApplicationPool
Returns information about the trusted application pools used in your organization. Trusted applications pools host
computers that run trusted applications.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserDatabase
Returns information about the User database used in your organization. User databases store data needed by the
User Server service.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserServer
Returns information about the User Services service used in your organization. The User Services service provides
such things as user replication, in-band provisioning, presence publication and notification, and contact card
exchange.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoGateway
Returns information about the video gateway service. Video gateways provide a way to connect Skype for Business
users to video teleconferencing devices.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoInteropServer
Returns information about the video interoperability service. The video interoperability service provides a way to
seamless connect Skype for Business users to third-party video teleconferencing providers.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WacServer
Returns information about the Office Web Apps servers used with Microsoft Lync Server. Office Web Apps server
was previously known as "WacServer".

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WebServer
Returns information about the Web Services service used in your organization. The Web Services service host web-
based applications such as the Address Book service.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
The Get-CsService cmdlet returns different objects based on the parameters used when calling the cmdlet. For
example, if you include the MonitoringDatabase parameter, the Get-CsService cmdlet returns instances of the
Microsoft.Rtc.Management.Xds.DisplayMonitoringDatabase object. To determine the objects returned using other
parameters, call the Get-CsService cmdlet using one of those parameters, and then pipe the returned object to the
Get-Member cmdlet. For example:
Get-CsService -Registrar | Get-Member

Related Links
Set-CsApplicationServer
Set-CsArchivingServer
Set-CsConferenceServer
Set-CsDirector
Set-CsEdgeServer
Set-CsManagementServer
Set-CsMediationServer
Set-CsMonitoringServer
Set-CsRegistrar
Set-CsUserServer
Set-CsWebServer
minutes to read • Edit Online

Get-CsSimpleUrlConfiguration
In ths Article

Returns information about the simple URLs configured for use in your organization. Simple URLs make it easier for users to join meetings and
conferences, and also make it easier for Administrators to log on to the Skype for Business Server Control Panel. This cmdlet was introduced in Lync
Server 2010.

Syntax
Get-CsSimpleUrlConfiguration [[-Identity] <XdsIdentity>] [-Tenant <Guid>] [-LocalStore] [<CommonParameters>]

Get-CsSimpleUrlConfiguration [-Filter <String>] [-Tenant <Guid>] [-LocalStore] [<CommonParameters>]

Description
In Microsoft Office Communications Server 2007 R2, meetings had URLs similar to this:
https://imdf.litwareinc.com/Join?
uri=sip%3Akenmyer%40litwareinc.com%3Bgruu%3Bopaque%3Dapp%3Aconf%3Afocus%3Aid%3A125f95a0b0184dcea706f1a0191202a8&key=EcznhLh5K5t
However, such URLs are not especially intuitive, and not easy to convey to someone else. The simple URLs introduced in Lync Server 2010 helped
overcome those problems by providing users with URLs that look more like this:
https://meet.litwareinc.com/kenmyer/071200
Simple URLs are an improvement over the URLs used in Office Communications Server. However, simple URLs are not automatically created for
you; instead, you must configure the URLs yourself. (You must also create Domain Name System (DNS ) records for each URL; configure reverse
proxy rules for external access; add the simple URLs to your Front End Server certificates; and so on.)
Skype for Business Server enables you to create three different simple URLs:
Meet - Used for meetings. You must have at least one Meet URL for each of your SIP domains.
Admin - Used to point administrators toward the Skype for Business Server Control Panel.
Dialin - Used for the dial-in conferencing webpage.
Simple URLs are stored in simple URL configuration collections. When you install Skype for Business Server, a global collection is created for you;
you can also create custom collections at the site scope. This gives you the ability to use different simple URLs at each of your sites.
The Get-CsSimpleUrlConfiguration cmdlet provides a way for you to retrieve information about all the simple URL configuration collections
currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsSimpleUrlConfiguration

Example 1 returns information about all the simple URL configuration collections currently in use in the organization. This is achieved by calling the
Get-CsSimpleUrlConfiguration cmdlet without any additional parameters.
-------------------------- Example 2 --------------------------

Get-CsSimpleUrlConfiguration -Identity "site:Redmond"

In Example 2, information is returned for a single simple URL configuration collection: the configuration with the Identity site:Redmond.
-------------------------- Example 3 --------------------------

Get-CsSimpleUrlConfiguration -Filter "site:*"


Example 3 returns information for all the simple URL configuration collections that have been assigned to the site scope. To do this, the Get-
CsSimpleUrlConfiguration cmdlet is called along with the Filter parameter; the filter value "site:*" limits the returned data to those collections that
have an Identity that begins with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsSimpleUrlConfiguration | Select-Object -ExpandProperty SimpleUrl

In Example 4, detailed information is displayed for each simple URL configured for use in the organization. To carry out this task, the command first
calls the Get-CsSimpleUrlConfiguration cmdlet to return a complete set of simple URL information. This data is then piped to the Select-Object
cmdlet, which uses the ExpandProperty parameter to "expand" the value of the SimpleUrl property. Expanding a property value displays all the data
stored in that property in an easy-to-read format.
-------------------------- Example 5 --------------------------

Get-CsSimpleUrlConfiguration | Select-Object -ExpandProperty SimpleUrl | Where-Object {$_.Component -eq "Meet"}

The command shown in Example 5 returns all the simple URLs for meeting management that are currently in use in your organization. To do this,
the command first calls the Get-CsSimpleUrlConfiguration cmdlet without any additional parameters; this returns a complete set of simple URL
information. This data is then piped to the Select-Object cmdlet, which uses the ExpandProperty parameter to expand the value of the SimpleUrl
property. The filtered collection is then piped to the Where-Object cmdlet, which picks out only those simple URLs where the Component property
is equal to "Meet".

Parameters
-Filter
Enables you to use wildcard characters to specify the simple URL collection (or collections) to be returned. For example, this syntax returns all the
simple URL collections that have been configured at the site scope:
-Filter "site:*"

Note that you cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of simple URLs to be returned. To return the global collection, use this syntax:
-Identity global

To return a collection from the site scope, use syntax similar to this:
-Identity "site:Redmond"

Note that you cannot use wildcards when specifying an Identity. If you want to use wildcards, use the Filter parameter instead.
Calling the Get-CsSimpleUrlConfiguration cmdlet without any parameters returns all the simple URLs configured for use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the simple URL configuration data from the local replica of the Central Management store rather than from the Central Management
store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account where whose Simple URL configuration settings are to be
retrieved. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlConfiguration

Related Links
New-CsSimpleUrlConfiguration
Remove-CsSimpleUrlConfiguration
Set-CsSimpleUrlConfiguration
minutes to read • Edit Online

Get-CsSipDomain
In ths Article

Returns information about the SIP domains configured for use in your organization. SIP domains are domains
authorized to send and receive SIP traffic, and are used when assigning SIP addresses to users. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsSipDomain [[-Identity] <XdsGlobalRelativeIdentity>] [<CommonParameters>]

Get-CsSipDomain [-Filter <String>] [<CommonParameters>]

Description
In order to configure SIP addresses for your users (and thus enable them to use SIP -related software such as
Skype for Business), you need two pieces of information: a user ID (for example, Ken.Myer) and a SIP domain (for
example, litwareinc.com). The SIP domain used to construct a SIP address must be a domain located within your
Active Directory forest that is authorized to send and receive SIP traffic. For example, suppose you have domains
named litwareinc.com, fabrikam.com, and contoso.com, but only litwareinc.com has been identified as being a SIP
domain. In that case, you cannot use a SIP address like sip:Ken.Myer@fabrikam.com or sip:Ken.Myer@contoso.com,
at least not until fabrikam.com and contoso.com have been configured as valid SIP domains. This is something you
can do by running the New -CsSipDomain cmdlet.
The Get-CsSipDomain cmdlet provides a way for you to return information about the SIP domains authorized for
use in your organization. The Get-CsSipDomain cmdlet also identifies the default SIP domain for your
organization; this is the domain that Skype for Business Server 2015 will use, by default, if a SIP domain is not
specified.

Examples
-------------------------- Example 1 --------------------------

Get-CsSipDomain

In Example 1, the Get-CsSipDomain cmdlet is called without any parameters; this returns information about all the
SIP domains configured for use in your organization.
-------------------------- Example 2 --------------------------

Get-CsSipDomain -Identity fabrikam.com

The command shown in Example 2 returns information for any SIP domain that has the Identity fabrikam.com.
Because SIP domain Identities must be unique, this command will never return more than a single item.
-------------------------- Example 3 --------------------------

Get-CsSipDomain -Filter "f*"

Example 3 uses the Get-CsSipDomain cmdlet and the Filter parameter to return information about all the SIP
domains that have an Identity that begins with the letter "f". For example: fabrikam.com; fabrikam.org; fabrikam-
users.com; and so on.
-------------------------- Example 4 --------------------------

Get-CsSipDomain | Where-Object {$_.IsDefault -eq $True}

The command shown in Example 4 returns information about the default SIP domain. To do this, the Get-
CsSipDomain cmdlet is first called without any parameters in order to return a collection of all the SIP domains
configured for use in your organization. This collection is then piped to the Where-Object cmdlet, which selects the
one domain where the IsDefault property is equal to True.

Parameters
-Filter
Enables you to use wildcards when specifying the Identities of the SIP domain (or domains) to be returned. For
example the filter value "*.org" returns a collection of all the authorized SIP domains that have an Identity that ends
with the string value ".org".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the SIP domain to be returned (for example, fabrikam.com). If neither this
parameter nor the Filter parameter is specified, then all the SIP domains authorized for use in your organization are
returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Xds.SipDomain
Related Links
New -CsSipDomain
Remove-CsSipDomain
Set-CsSipDomain
minutes to read • Edit Online

Get-CsSipResponseCodeTranslationRule
In ths Article

Returns information about SIP response code translation rules. These rules enable administrators to map SIP
response codes with values between 400 and 699 to the values used by Skype for Business Server. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsSipResponseCodeTranslationRule [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsSipResponseCodeTranslationRule [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
SIP trunking provides a way to connect a Voice over Internet Protocol (VoIP ) network (such as Enterprise Voice)
with the public switched telephone network (PSTN ). In Skype for Business Server, the Mediation Server uses
trunking peers to interact with the PSTN network. When an outgoing call fails on the PSTN network, an ISDN
User Part (ISUP ) cause code is automatically generated. For example, a PSTN gateway might send cause code 34
to indicate that no circuit or channel was available for completing the call. When a Mediation Server trunking peer
receives that ISUP cause code, it converts the code to a SIP response code, which is then sent to the Mediation
Server itself. In turn, Skype for Business Serve uses these response codes to make its outbound routing decisions.
For example, a malfunctioning gateway might automatically be assigned a "less-preferred" status; this minimizes
the use of the malfunctioning gateway, and thus maximizes the chance of a call being successfully completed.
However, not all gateways use the recommended ISUP cause code to SIP response code mapping used by Skype
for Business Server. For these gateways, administrators can use the CsSipResponseCodeTranslationRule cmdlets to
map the gateway SIP response code (in combination with the ISUP cause code, if that code is available) to a SIP
response code used by Skype for Business Server. For example, a gateway might map ISUP cause code 34 ("No
circuit/channel is available") to SIP response code 486 ("Busy here"). Based on a response code of 486, the
outbound routing logic of Skype for Business Server will not attempt to find a new gateway in order to complete
the call.
For Skype for Business Server, however, that SIP response code of 486 should instead be mapped to SIP response
code 503. A response code of 503 triggers the retry mechanism in the outbound routing logic of Skype for
Business Server; that means that the system will try to find another gateway in order to complete the call. To handle
this situation, you can create a translation rule that maps the combination of ISUP cause code 34 and SIP response
code 486 to a SIP response code of 503.
The Get-CsSipResponseCodeTranslationRule cmdlet enables you to retrieve information about all the translation
rules configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsSipResponseCodeTranslationRule

The command shown in Example 1 returns a collection of all the response code translation rules configured for use
in your organization. This is done by calling the Get-CsSipResponseCodeTranslationRule cmdlet without any
parameters.
-------------------------- Example 2 --------------------------

Get-CsSipResponseCodeTranslationRule -Identity "PstnGateway:192.168.0.240/Rule404"

Example 2 returns a single response code translation rule: the rule with the Identity
PstnGateway:192.168.0.240/Rule404.
-------------------------- Example 3 --------------------------

Get-CsSipResponseCodeTranslationRule -Filter "site:*"

In Example 3, the Filter parameter is used to limit the returned data to all the response code translation rules
configured at the site scope. The filter value "site:*" limits the returned data to rules that have an Identity that begins
with the string value "site:".
-------------------------- Example 4 --------------------------

Get-CsSipResponseCodeTranslationRule | Where-Object {$_.ReceivedISUPCauseValue -eq -1}

The command shown in Example 4 returns a collection of all the response code translation rules where no value
has been configured for the ReceivedISUPCauseValue property. To do this, the command first calls the Get-
CsSipResponseCodeTranslationRule cmdlet without any parameters in order to return a collection of all the
response code translation rules currently in use. That collection is then piped to the Where-Object cmdlet, which
picks out only those rules where the ReceivedISUPCauseValue property is equal to -1.

Parameters
-Filter
Enables you to use wildcards when specifying the translation rule (or rules) to be returned. For example, this syntax
returns all the translation rules that have the string value "404" in their Identity:
-Filter "404"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the translation rule. The identity for a translation rule consists of two parts: the scope where
the rule was configured, and the name given to the rule when it was created. For example, a translation rule named
Rule404 that was created at the global scope would have an Identity that looked like this: global/Rule404.
In addition to the global scope, translation rules can also be created at the site scope or the service scope (albeit for
the PstnGateway service only).
To return all the translation rules created for a particular site or service, you can simply specify the site or service
Identity. For example:
-Identity "site:Redmond"

If this parameter is omitted, the Get-CsSipResponseCodeTranslationRule cmdlet returns a collection of all your SIP
response code translation rules.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the SIP response code translation rule data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTRanslationRule#De
corated

Related Links
New -CsSipResponseCodeTranslationRule
Remove-CsSipResponseCodeTranslationRule
Set-CsSipResponseCodeTranslationRule
minutes to read • Edit Online

Get-CsSite
In ths Article

Returns information about the sites created as part of your Skype for Business Server infrastructure. Sites
represent a collection of Skype for Business Server 2015 pools and are typically designed around geographic
regions. Skype for Business Server includes two types of sites: data center sites and remote sites (branch sites). This
cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsSite [[-Identity] <XdsGlobalRelativeIdentity>] [<CommonParameters>]

Get-CsSite [-Filter <String>] [<CommonParameters>]

Description
Lync Server 2010 introduced a new concept to the topology: sites. Sites (which should not be confused with Active
Directory sites or Exchange sites) are a collection of Skype for Business Server pools and servers that are typically
organized according to geography and network bandwidth. For example, if all your computers in Redmond are
located on the same local area network with high-speed, low -latency connections, you might designate a Redmond
site that encompasses those computers. If your computers in Dublin are located on their own local area network,
and share high-speed, low -latency connections, then you might create a separate Dublin site as well. Sites play a
key role in Skype for Business Server management: most policies and settings can be configured at the site scope,
making it easy to do such things as apply one set of dial plans to users in Redmond and a completely different set
of dial plans to users in Dublin.
The Get-CsSite cmdlet enables you to return information about all the sites in your organization, including
information about the pools that make up each of those sites.

Examples
-------------------------- Example 1 --------------------------

Get-CsSite

Example 1 retrieves information for all your Skype for Business Server sites.
-------------------------- Example 2 --------------------------

Get-CsSite -Identity "Redmond"

In Example 2, information is returned for a single site: the site with the Identity Redmond.
-------------------------- Example 3 --------------------------
Get-CsSite | Where-Object {$_.SiteType -eq "CentralSite"}

The command shown in Example 3 returns information for your central site. To carry out this task, the command
first calls the Get-CsSite cmdlet in order to return a collection of all the sites configured for use in your
organization. This collection is then piped to the Where-Object cmdlet, which picks out the one site where the
SiteType property is equal to "CentralSite".
-------------------------- Example 4 --------------------------

Get-CsSite -Identity "Redmond" | Select-Object -ExpandProperty Pools

Example 4 displays the list of pools found in the Redmond site. To do this, the command first retrieves complete
information for the Redmond site, and then pipes that data to the Select-Object cmdlet. In turn, the Select-Object
cmdlet uses the ExpandProperty parameter to "expand" the value of the Pools property. Expanding a property value
means that all the values stored in that property will be displayed on the screen in an easy-to-read format.

Parameters
-Filter
Enables you to use wildcards when specifying the Identity of the site (or sites) to be returned. For example, this
syntax returns all the pools that have an Identity that include the string value "Dublin":
-Filter "*Dublin*"

Note that you cannot use both Filter and Identity in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Name of the site to be returned. Note that you should specify just the site name; for example:
-Identity "Redmond"

Do not use the format "site:Redmond" when specifying the Identity.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deploy.Internal.Site+CentralSite

Related Links
Set-CsSite
minutes to read • Edit Online

Get-CsSlaConfiguration
In ths Article

Use the Get-CsSlaConfiguration cmdlet to return information about a configured shared number in Shared Line
Appearance (SLA). A shared number in SLA is an Enterprise Voice user that is capable of receiving multiple calls at
a time and forwarding them to its delegates, who answer the call.

Syntax
Get-CsSlaConfiguration [-Identity] <UserIdParameter> [-PassThru] [<CommonParameters>]

Description
SLA is a feature in Skype for Business (SfB ) for handling multiple calls on a specific number called a shared
number. SLA can configure any enterprise voice enabled SfB user as a shared number with multiple lines to
respond to multiple calls. The calls are not actually received on the shared number, instead they are forwarded to
users that act as delegates for the shared number. Any one of the delegates can pick up the call while the rest of the
delegates get a notification on their phone about who picked up the call and which line has become busy as a result.
Both the number of lines and the delegates are configurable for a shared number in SLA. In addition, advanced
options such as BusyOption (what happens in a situation when all lines are busy) and MissedCallOption (the case
in which none of the delegates pick up a call) etc. can also be configured for a shared number. The Get-
CsSlaConfiguration cmdlet provides a way to retrieve a shared number configuration. Note: Logging in with the
account created for the SLA number is not supported. Using the SLA number account with any device or Desktop
Client can result in unpredictable behavior. It is not necessary to use that account for the Shared Line Appearance
feature to function. By default, members of the RTCUniversalServerAdmins group are authorized to run the Get-
CsSlaConfiguration cmdlet: RTCUniversalServerAdmins. To return a list of all the role-based access control (RBAC )
roles this cmdlet has been assigned to (including any custom RBAC roles you have created yourself), run the
following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsSlaConfiguration"}

Examples
-------------------------- Example 1 --------------------------

Get-CsSlaConfiguration -Identity sip:emergency@contosohealth.com

This example command returns information about the shared number with the Identity of
“emergency@contosohealth.com”.
-------------------------- Example 2 --------------------------

Get-CsSlaConfiguration emergency@contosohealth.com
This example command returns information about the shared number with the Identity of
“emergency@contosohealth.com”. This example specifies Identity by its position.
-------------------------- Example 3 --------------------------

Get-CsSlaConfiguration -Identity emergency

This example return information about the shared number using only the user id.

Parameters
-Identity
PARAMVALUE: UserIdParameter
Indicates the identity of the Enterprise Voice user whose shared number information will be retrieved. User
identities can be specified using one of five formats:
SIP address
Example: sip:kenmyer@litwareinc.com
User principal name (UPN )
Example: kenmyer@litwareinc.com
Domain name and logon name in the form domain\logon
Example: litwareinc\kenmyer
Active Directory display name (this form typically requires quotes)
Example: "Ken Myer"
Active Directory distinguished name
Example: CN=KenMyer,CN=Users,DC=Atlanta,DC=Corp,DC=litware,DC=com

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
PARAMVALUE: SwitchParameter
The presence of the passthru switch causes the cmdlet to pass the current objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.SlaConfiguration
minutes to read • Edit Online

Get-CsStaticRoutingConfiguration
In ths Article

Returns information about the static routing configuration settings used in your organization. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsStaticRoutingConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsStaticRoutingConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
When you send a SIP message to someone that message might need to traverse multiple subnets and networks
before it is delivered; the path traveled by the message is often referred to as a route. In networking, there are two
types of routes: dynamic and static. With dynamic routing, servers use algorithms to determine the next location
(the next hop) where a message should be forwarded. With static routing, message paths are predetermined by
system administrators. When a message is received by a server, the server checks the message address and then
forwards the message to the next hop server that has been preconfigured by an administrator. If configured
correctly, static routes help ensure timely, and accurate, delivery of messages, and with minimal overheard placed
on servers. The downside to static routes is that messages are not dynamically rerouted in the event of a network
failure.
When you install Skype for Business Server, a global collection of static routes is automatically created for you.
(The collection is created, but there are no routes assigned to that collection.) In addition, the software enables you
to create additional collections applied to the service scope (these new collections can only be assigned to the
Registrar service). The Get-CsStaticRoutingConfiguration cmdlet provides a way for you to return information
about all the static routing configuration collections in use in your organization. This includes the ability to return
detailed information about each route assigned to a collection.

Examples
-------------------------- Example 1 --------------------------

Get-CsStaticRoutingConfiguration

The command shown in Example 1 returns information about all the static routing configuration collections in use
in your organization.
-------------------------- Example 2 --------------------------

Get-CsStaticRoutingConfiguration -Identity "service:Registrar:atl-cs-001.litwareinc.com"


In Example 2, information about a single static routing configuration collection is returned: the collection with the
Identity service:Registrar:atl-cs-001.litwareinc.com.
-------------------------- Example 3 --------------------------

Get-CsStaticRoutingConfiguration -Filter "service:*"

Example 3 uses the Filter parameter to return information about the static routing configuration collections
assigned to the service scope. The filter value "service:*" limits the returned data to collections that have an identity
that begins with the string value "service:".
-------------------------- Example 4 --------------------------

Get-CsStaticRoutingConfiguration | Select-Object -ExpandProperty Route

Example 4 returns detailed route information for all the static routing configuration collections in use in the
organization. To do this, the command first calls the Get-CsStaticRoutingConfiguration cmdlet without any
parameters in order to return complete information for each static routing collection. This information is then piped
to the Select-Object cmdlet, which uses the ExpandProperty parameter to "expand" the value of the Route property.
When you expand a property, all the objects and values contained within that property are displayed on the screen
in easy-to-read fashion.
-------------------------- Example 5 --------------------------

Get-CsStaticRoutingConfiguration | Select-Object -ExpandProperty Route | Where-Object {$_.MatchOnlyPhoneUri -eq


$True}

The command shown in Example 5 returns information about all the static routes that are configured to only match
telephone Uniform Resource Identifiers (URIs). To carry out this task, the command first calls the Get-
CsStaticRoutingConfiguration cmdlet without any parameters; this returns all the static routing configuration
collections and their associated routes. This collection is then piped to the Select-Object, cmdlet which uses the
ExpandProperty to expand all the objects stored in the Route property. These route objects are then piped to the
Where-Object cmdlet, which picks out only those routes where the MatchOnlyPhoneUri property is equal to True.

Parameters
-Filter
Enables you to use wildcards when specifying the static routing configuration collection (or collections) to be
returned. For example, this syntax returns all the static routing collections configured at the service scope:
-Filter "service:*"

Note that you cannot use both the Identity and the Filter parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the static routing configuration collection. To return information about the global collection,
use this syntax:
-Identity global

To retrieve information about a collection configured at the service scope, use syntax similar to this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards, use the Filter
parameter instead.
If you do not include either the Identity or the Filter parameters then the Get-CsStaticRoutingConfiguration cmdlet
returns information about all your static routing configuration collections.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the static routing configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.RoutingSettings

Related Links
New -CsStaticRoutingConfiguration
Remove-CsStaticRoutingConfiguration
Set-CsStaticRoutingConfiguration
minutes to read • Edit Online

Get-CsStorageServiceConfiguration
In ths Article

Returns information about existing instances of the Skype for Business Server Storage Service. The storage service
provides a common infrastructure that enables Skype for Business Server components to use Exchange as a back-
end data store.

Syntax
Get-CsStorageServiceConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsStorageServiceConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The Skype for Business Server Storage Service enables Skype for Business Server 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 archiving. The Storage
Service also enables Skype for Business Server 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.
Separate instances of the Skype for Business Server Storage Service can be configured at the global, site, and
service scope (for the Registrar service only). By default, Skype for Business Server provides you with a single,
global collection of Storage Service configuration settings. However, administrators have the option of creating
custom setting collections by using the New -CsStorageServiceConfiguration cmdlet. Information about all of these
Storage Service settings can be returned by using the Get-CsStorageServiceConfiguration cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Get-CsStorageServiceConfiguration
cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsStorageServiceConfiguration

The command shown in Example 1 returns information about all the storage service configuration settings in use in
your organization.
-------------------------- Example 2 --------------------------

Get-CsStorageServiceConfiguration -Identity "site:Redmond"

In Example 2, information is returned for a single collection of storage service configuration settings: the collection
of settings applied to the Redmond site.
-------------------------- Example 3 --------------------------

Get-CsStorageServiceConfiguration -Filter "service:*"

Example 3 returns information for all the storage service configuration settings applied at the service scope. To do
this, the command uses the Filter parameter and the filter value "service:*". That filter value limits returned data to
collections that have an Identity that begins with the string value "service:".

Parameters
-Filter
Enables you to use wildcards when retrieving one or more collections of storage service configuration settings. For
example, to return all the settings configured at the site scope, use this syntax:
-Filter "site:*"

To return all the settings configured at the service scope, use this syntax:
-Filter "service:*"

Note that you cannot use both the Filter parameter and the Identity parameter in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the storage service configuration settings to be returned. Storage service configuration
settings can be applied to the global, site, or service scope (for the Registrar service only). To return a complete
collection of storage service configuration settings, omit the Identity parameter altogether:
Get-CsStorageServiceConfiguration

Alternatively, you can use the Identity parameter to retrieve information for a specific collection of storage service
configuration settings. To return just the global settings, use this syntax:
-Identity "global"

To return settings configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To return settings at the service level, use syntax similar to this:


-Identity "service:Registrr:atl-cs-001.litwareinc.com"
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the storage service configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.StorageServiceSettings

Related Links
New -CsStorageServiceConfiguration
Remove-CsStorageServiceConfiguration
Set-CsStorageServiceConfiguration
minutes to read • Edit Online

Get-CsTeamsCallingPolicy
In ths Article

Returns information about the teams calling policies configured for use in your organization. Teams calling policies
help determine which users are able to use calling functionality within Microsoft Teams.

Syntax
Get-CsTeamsCallingPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsTeamsCallingPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Returns information about the teams calling policies configured for use in your organization. Teams calling policies
help determine which users are able to use calling functionality within Microsoft Teams and interoperability with
Skype for Business.

Examples
Example 1

PS C:\> Get-CsTeamsCallingPolicy -Identity SalesCallingPolicy

Retrieves the calling policy with name "SalesCallingPolicy"

Parameters
-Filter
Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection
of all the per-user policies, use this syntax: -Filter "tag:*".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specify the TeamsCallingPolicy that you would like to retrieve.
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Microsoft internal use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Microsoft internal use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsCallParkPolicy
In ths Article

The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft
Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on
that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The
Get-CsTeamsCallParkPolicy cmdlet returns the policies that are available for your organization. NOTE: the call park
feature currently only available in desktop and web clients. Call Park functionality is currently completely disabled
in mobile clients.

Syntax
Get-CsTeamsCallParkPolicy [-Tenant <System.Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsCallParkPolicy [-Tenant <System.Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature. Call park allows
enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to
another department, retrieve via the same phone, or retrieve via a different phone. The Get-CsTeamsCallParkPolicy
cmdlet returns the policies that are available for your organization.

Examples
Example 1

PS C:\> Get-CsTeamsCallParkPolicy

Retrieve all policies that are available in your organization.

Parameters
-Filter
Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to
return a collection of all the per-user policies, use this syntax: -Filter "tag:".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specify the unique name of a policy you would like to retrieve

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Internal Microsoft use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsClientConfiguration
In ths Article

The TeamsClientConfiguration allows IT admins to control the settings that can be accessed via Teams clients
across their organization. This configuration includes settings like which third party cloud storage your organization
allows, whether or not guest users can access the teams client, and how Surface Hub devices can interact with
Skype for Business meetings. This cmdlet allows IT admins to retrieve the effective configuration for their
organization.

Syntax
Get-CsTeamsClientConfiguration [-Tenant <System.Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsClientConfiguration [-Tenant <System.Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The TeamsClientConfiguration allows IT admins to control the settings that can be accessed via Teams clients
across their organization. This configuration includes settings like which third party cloud storage your organization
allows, whether or not guest users can access the teams client, and how Surface Hub devices can interact with
Skype for Business meetings. This cmdlet allows IT admins to retrieve the effective configuration for their
organization.
Use in conjunction with Set-CsTeamsClientConfiguration to update the settings in your organization.

Examples
Example 1

PS C:\> Get-CsTeamsClientConfiguration

Retrieves the effective client configuration in the tenant.

Parameters
-Filter
Microsoft internal use only.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The only valid input is Global, as you can have only one effective configuration in your organization.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Internal Microsoft use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsGuestCallingConfiguration
In ths Article

Returns information about the GuestCallingConfiguration, which specifies what options guest users have for calling
within Teams.

Syntax
Get-CsTeamsGuestCallingConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsGuestCallingConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore]


[<CommonParameters>]

Description
Returns information about the GuestCallingConfiguration, which specifies what options guest users have for calling
within Teams. To set the configuration in your organization, use Set-CsTeamsGuestCallingConfiguration

Examples
Example 1

PS C:\> Get-CsTeamsGuestCallingConfiguration

Returns the results

Parameters
-Filter
Internal Microsoft use

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Internal Microsoft use - customers can have only one TeamsGuestCallingConfiguration
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Internal Microsoft use

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsGuestMeetingConfiguration
In ths Article

Designates what meeting features guests using Microsoft Teams will have available.

Syntax
Get-CsTeamsGuestMeetingConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsGuestMeetingConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore]


[<CommonParameters>]

Description
The TeamsGuestMeetingConfiguration designates which meeting features guests leveraging Microsoft Teams will
have available. This configuration will apply to all guests utilizing Microsoft Teams. Use the Get-
CsTeamsGuestMeetingConfiguration cmdlet to return what values are set for your organization.

Examples
Example 1

PS C:\> Get-CsTeamsGuestMeetingConfiguration

Returns the TeamsGuestMeetingConfiguration set in your organization.

Parameters
-Filter
Internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The only value accepted is Global
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Internal Microsoft use

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsGuestMessagingConfiguration
In ths Article

TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. This cmdlet returns
your organization's current settings.

Syntax
Get-CsTeamsGuestMessagingConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsGuestMessagingConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore]


[<CommonParameters>]

Description
TeamsGuestMessagingConfiguration determines the messaging settings for the guest users.

Examples
Example 1

Get-CsTeamsGuestMessagingConfiguration

The command shown in Example 1 returns teams guest messaging configuration information for the current tenant

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Filter
Enables you to use wildcard characters in order to return a collection of tenant guest messaging configuration
settings. Because each tenant is limited to a single, global collection of guest messaging configuration settings there
is no need to use the Filter parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the collection of tenant guest messaging configuration settings to be returned. Because each tenant is
limited to a single, global collection of guest messaging settings there is no need include this parameter when
calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is not used with Skype for Business Online.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsInteropPolicy
In ths Article

IMPORTANT: TeamsInteropPolicy has been replaced by TeamsUpgradePolicy. Please read description for more
details. You can also find more guidance here: Migration and interoperability guidance for organizations using
Teams together with Skype for Business (https://docs.microsoft.com/en-us/microsoftteams/migration-interop-
guidance-for-teams-with-skype). If TeamsUpgradePolicy has mode=Legacy, TeamsInteropPolicy determines how
calls are routed between Skype for Business and Microsoft Teams. Otherwise TeamsInteropPolicy is ignored.
Granting TeamsUpgradePolicy with mode=Legacy is now blocked. Customers with exisitng configurations using
Legacy mode must update their configuration to use a mode other than Legacy.

Syntax
Get-CsTeamsInteropPolicy [-Identity] <Object>] [-Tenant <Object>] [-Filter <Object>] [-AsJob]

Description
IMPORTANT: TeamsInteropPolicy has been replaced by TeamsUpgradePolicy. TeamsInteropPolicy is only honored
if TeamsUpgradePolicy mode=Legacy. However, Legacy mode has been deprecated and TeamsInteropPolicy will be
removed in the near future. Any customer still using TeamsUpgradePolicy with mode=Legacy must update their
configuration of TeamsUpgradePolicy to use a different mode.
For any user that is still assigned TeamsInteropPolicy and in Legacy mode, these users must be assigned only one
of these three built-in instances for which CallingDefaultClient = ChatDefaultClient, and for which
AllowEndUserClientOverride = false. The other instances are not longer valid configurations, are not supported
and will be removed.
For comprehensive documentation on this policy and its settings, see Migration and interoperability guidance for
organizations using Teams together with Skype for Business.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CsTeamsInteropPolicy

List all available instances of TeamsInteropPolicy.

Parameters
-AsJob
{{Fill AsJob Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
{{Fill Filter Description}}

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The name of the policy instance

Type: Object
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Notes
TeamsInteropPolicy has been replaced by TeamsUpgradePolicy. It is not honored except if TeamsUpgradePolicy
mode=Legacy. Legacy mode is being deprecated so customers should update their configuration of
TeamsUpgradePolicy to use modes other than Legacy.

Related Links
Migration and interoperability guidance for organizations using Teams together with Skype for Business
minutes to read • Edit Online

Get-CsTeamsMeetingBroadcastConfiguration
In ths Article

Get-CsTeamsMeetingBroadcastConfiguration [[-Identity] <XdsIdentity>] [-Tenant <guid>] [-


ExposeSDNConfigurationJsonBlob <bool>] [-LocalStore] [<CommonParameters>] Get-
CsTeamsMeetingBroadcastConfiguration [-Tenant <guid>] [-ExposeSDNConfigurationJsonBlob <bool>] [-Filter
<string>] [-LocalStore] [<CommonParameters>]

Syntax
Get-CsTeamsMeetingBroadcastConfiguration [-Tenant <Guid>] [-ExposeSDNConfigurationJsonBlob <Boolean>]
[[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsTeamsMeetingBroadcastConfiguration [-Tenant <Guid>] [-ExposeSDNConfigurationJsonBlob <Boolean>]


[-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Tenant level configuration for broadcast events in Teams

Parameters
-ExposeSDNConfigurationJsonBlob
Extract SDN properties as a Json Blob in get.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Not applicable to online service - you can only have one configuration.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
You can only have one configuration - "Global"
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Not applicable to online service.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Not applicable to online service

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsMeetingBroadcastPolicy
In ths Article

Get-CsTeamsMeetingBroadcastPolicy [[-Identity] <XdsIdentity>] [-Tenant <guid>] [-LocalStore]


[<CommonParameters>] Get-CsTeamsMeetingBroadcastPolicy [-Tenant <guid>] [-Filter <string>] [-LocalStore]
[<CommonParameters>]

Syntax
Get-CsTeamsMeetingBroadcastPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsMeetingBroadcastPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use
this cmdlet to retrieve one or more policies.

Parameters
-Filter
Enables you to use wildcard characters when specifying the policy (or policies) to be returned. For example, this
syntax returns all the policies configured at the per-user scope

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be retrieved. Policies can be configured at the global scope or at the per-user
scope. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar
to this: -Identity SalesPolicy.
If this parameter is not included, the cmdlet will return a collection of all the policies configured for use in your
organization.
Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use
wildcards when specifying a policy.
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Not applicable to the online service.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Not applicable to online service.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsMeetingConfiguration
In ths Article

The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their
tenants.

Syntax
Get-CsTeamsMeetingConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsMeetingConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their
tenants. Use this cmdlet to retrieve the configuration set in your organization.

Examples
Example 1

PS C:\> Get-CsTeamsMeetingConfiguration

Returns the configuration set in the organization.

Parameters
-Filter
Internal Microsoft use

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The only valid input is "Global"
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Internal Microsoft use

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsMeetingPolicy
In ths Article

The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or
the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or
external users.

Syntax
Get-CsTeamsMeetingPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsTeamsMeetingPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or
the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or
external users
Teams Meeting policies can be configured at the global and per-user scopes. The Get-CsTeamsMeetingPolicy
cmdlet enables you to return information about all the meeting policies that have been configured for use in your
organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsTeamsMeetingPolicy

In Example 1, Get-CsTeamsMeetingPolicy is called without any additional parameters; this returns a collection of all
the teams meeting policies configured for use in your organization.
-------------------------- Example 2 --------------------------

Get-CsTeamsMeetingPolicy -Identity SalesPolicy

In Example 2, Get-CsTeamsMeetingPolicy is used to return the per-user meeting policy that has an Identity
SalesPolicy. Because identities are unique, this command will never return more than one item.
-------------------------- Example 3 --------------------------

Get-CsTeamsMeetingPolicy | Where-Object {$_.AllowMeetNow -eq $True}

The preceding command returns a collection of all the meeting policies where the AllowMeetNow property is True.
To do this, Get-CsTeamsMeetingPolicy is first called without any parameters in order to return a collection of all the
policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which
selects only those policies where the AllowMeetNow property is equal to True.

Parameters
-AsJob

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters when indicating the policy (or policies) to be returned.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer
to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all
the meeting policies configured for use in your organization will be returned.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsMessagingPolicy
In ths Article

Get-CsTeamsMessagingPolicy [[-Identity] <XdsIdentity>] [-Tenant <guid>] [-LocalStore] [<CommonParameters>]


Get-CsTeamsMessagingPolicy [-Tenant <guid>] [-Filter <string>] [-LocalStore] [<CommonParameters>]

Syntax
Get-CsTeamsMessagingPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsMessagingPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages.
These also help determine the type of messages users can create and modify. This cmdlet lets you retrieve
messaging policies that are available for use within your organization.

Examples
Example 1

powershell
PS C:\> Get-CsTeamsMessagingPolicy

In this example all teams messaging policies that have been configured in the organization will be returned.

Parameters
-AsJob

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters when specifying the policy (or policies) to be returned.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To
retrieve a per-user policy use syntax similar to this: -Identity StudentMessagingPolicy.
If this parameter is not included, the Get-CsTeamsMessagingPolicy cmdlet will return a collection of all the teams
messaging policies configured for use in your organization.
Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use
wildcards when specifying a messaging policy.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTeamsUpgradeConfiguration
In ths Article

Returns information related to managing the upgrade to Teams from Skype for Business.
TeamsUpgradeConfiguration should be used in conjunction with TeamsUpgradePolicy. The settings in
TeamsUpgradeConfiguration allow administrators to configure whether users subject to upgrade and who are
running on Windows clients should automatically download Teams. For Office 365 users, it allows administrators
to determine which application end users should use to join Skype for Business meetings.

Syntax
Get-CsTeamsUpgradeConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsUpgradeConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
TeamsUpgradeConfiguration is used in conjunction with TeamsUpgradePolicy. The settings in
TeamsUpgradeConfiguration allow administrators to configure whether users subject to upgrade and who are
running on Windows clients should automatically download the Teams app. It also allows administrators to
determine which application Office 365 users should use to join Skype for Business meetings.
Separate instances of TeamsUpgradeConfiguration exist in Office 365 and Skype for Business Server.
TeamsUpgradeConfiguration in Office 365 applies to any user who does not have an on-premises Skype for
Business account.
TeamsUpgradeConfiguration in Skype for Business Server can used to manage on-premises users in a hybrid
environment. In on-premises, only the DownloadTeams property is available.
The DownloadTeams property allows admins to control whether the Skype for Business client should automatically
download the Teams app in the background. This setting is only honored for users on Windows clients, and only if
TeamsUpgradePolicy for the user meets either of these conditions:
NotifySfbUser=true, or
Mode=TeamsOnly Otherwise, this setting is ignored.
The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings,
even after the user has been upgraded to Teams. Allowed values are: SkypeMeetingsApp and NativeLimitedClient.
"NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded,
only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use
the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer
want to install Skype for Business on their users' computers. This property is only available when configuring
TeamsUpgradeConfiguration in Office 365. It is not honored for users homed on-premises in Skype for Business
Server.
Examples
Example 1

PS C:\> Get-CsTeamsUpgradeConfiguration

The above cmdlet lists the properties of TeamsUpgradeConfiguration.

Parameters
-Identity
{{Fill Identity Description}}

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Do not use

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Notes
These settings are only honored by newer versions of Skype for Business clients.
Related Links
Set-CsTeamsUpgradeConfiguration
Get-CsTeamsUpgradePolicy
Grant-CsTeamsUpgradePolicy
Migration and interoperability guidance for organizations using Teams together with Skype for Business
minutes to read • Edit Online

Get-CsTeamsUpgradePolicy
In ths Article

TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams.
IMPORTANT: TeamsUpgradePolicy has replaced TeamsInteropPolicy. However, aspects of TeamsUpgradePolicy are
still in preview mode as described below.

Syntax
Get-CsTeamsUpgradePolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsTeamsUpgradePolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. This
cmdlet returns the set of instances of this policy. As an organization with Skype for Business starts to adopt Teams,
administrators can manage client behavior for their end user using the concept of "mode", which defines where
routing behavior (e.g in which client do chats and calls land). In the future, mode will also be used to define client
behavior in Teams client in terms of what functionality will be available. TeamsUpgradePolicy can be granted either
on a per user basis or on a tenant-wide basis. In addition, prior to upgrading to TeamsOnly mode, administrators
can use TeamsUpgradePolicy to trigger notifications in the Skype for Business client to inform users of the pending
upgrade.
NOTES:
Except for on-premise versions of Skype for Business Server, all relevant instances of TeamsUpgradePolicy are built
into the system, so there is no corresponding New cmdlet.
If you are using Skype for Business Server, there are no built-in instances and you'll need to create one. Also, only
the NotifySfBUsers property is available. Mode is not present
Instances with mode set to SfBWithTeamsCollab and SfBWithTeamsCollabAndMeetings are not yet fully
functional. From a routing perspective, they will behave like SfBOnly mode.
IMPORTANT: TeamsUpgradePolicy has replaced TeamsInteropPolicy. Components that previously honored
TeamsInteropPolicy have been updated to honor TeamsUpgradePolicy instead. Do not use TeamsInteropPolicy. In
addition, Legacy mode in TeamsUpgradePolicy has been retired.

Examples
Example 1: List all instances of TeamsUpgradePolicy (Skype for Business Online )
PS C:\> Get-CsTeamsUpgradePolicy

Identity : Global
Description : Users can use either Skype for Business client or Teams client
Mode : Islands
NotifySfbUsers : False

Identity : Tag:UpgradeToTeams
Description : Use Teams Only
Mode : TeamsOnly
NotifySfbUsers : False

Identity : Tag:Islands
Description : Use either Skype for Business client or Teams client
Mode : Islands
NotifySfbUsers : False
Action : None

Identity : Tag:IslandsWithNotify
Description : Use either Skype for Business client or Teams client
Mode : Islands
NotifySfbUsers : True

Identity : Tag:SfBOnly
Description : Use only Skype for Business
Mode : SfBOnly
NotifySfbUsers : False

Identity : Tag:SfBOnlyWithNotify
Description : Use only Skype for Business
Mode : SfBOnly
NotifySfbUsers : True

Identity : Tag:SfBWithTeamsCollab
Description : Use Skype for Business and use Teams only for group collaboration
Mode : SfBWithTeamsCollab
NotifySfbUsers : False

Identity : Tag:SfBWithTeamsCollabWithNotify
Description : Use Skype for Business and use Teams only for group collaboration
Mode : SfBWithTeamsCollab
NotifySfbUsers : True

Identity : Tag:SfBWithTeamsCollabAndMeetings
Description : Use Skype for Business and use Teams only for group collaboration
Mode : SfBWithTeamsCollabAndMeetings
NotifySfbUsers : False

Identity : Tag:SfBWithTeamsCollabAndMeetingsWithNotify
Description : Use Skype for Business and use Teams only for group collaboration
Mode : SfBWithTeamsCollabAndMeetings
NotifySfbUsers : True

List all instances of TeamsUpgradePolicy


Example 2: List the global instance of TeamsUpgradePolicy (which applies to all users in a tenant unless they are
explicitly assigned an instance of this policy)

PS C:\> Get-CsTeamsUpgradePolicy -Identity Global

Identity : Global
Description : Users can use either Skype for Business client or Teams client
Mode : Islands
NotifySfbUsers : False
List the global instance of TeamsUpgradePolicy
Example 3: List all instances of TeamsUpgradePolicy in an on-premises environment

PS C:\> Get-CsTeamsUpgradePolicy -Identity Global

Identity : Global
Description : Notifications are disabled
NotifySfbUsers : False

List all on-premises instances (if any) of TeamsUpgradePolicy.

Parameters
-Filter
{{Fill Filter Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
If identity parameter is passed, this will return a specific instance. If no identity parameter is specified, the cmdlet
returns all instances.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
Related Links
Get-CsTeamsUpgradeConfiguration
Set-CsTeamsUpgradeConfiguration
Grant-CsTeamsUpgradePolicy
Migration and interoperability guidance for organizations using Teams together with Skype for Business
minutes to read • Edit Online

Get-CsTeamsVideoInteropServicePolicy
In ths Article

Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the
TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire
organization.

Syntax
Get-CsTeamsVideoInteropServicePolicy [-Tenant <System.Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTeamsVideoInteropServicePolicy [-Tenant <System.Guid>] [-Filter <String>] [-LocalStore]


[<CommonParameters>]

Description
Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the
TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire
organization. Microsoft provides pre-constructed policies for each of our supported partners that allow you to
designate which partner(s) to use for cloud video interop.
The Get-CsTeamsVideoInteropServicePolicy cmdlet allows you to identify the pre-constructed policies that you can
use in your organization. You can assign this policy to one or more of your users leveraging the Grant-
CsTeamsVideoInteropServicePolicy cmdlet.

Examples
Example 1

PS C:\> Get-CsTeamsVideoInteropServicePolicy -Filter "*enabled*"

This example returns all of the policies that have been pre-constructed for you to use when turning on Cloud Video
Interop with one of our supported partners.

Parameters
-Filter
If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is
a regex string against the name (Identity) of the pre-constructed policies.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specify the known name of a policy that has been pre-constructed for you to use.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Internal Microsoft use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsTelemetryConfiguration
In ths Article

Use the Get-CsTelemetryConfiguration cmdlet to return the settings on existing telemetry configurations.
Telemetry returns a small set of Skype for Business operational data to Microsoft for quality tracking and product
improvement. The data includes sign-in information, meeting joins, and other activity data.

Syntax
Get-CsTelemetryConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsTelemetryConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
For privacy information, see the Skype for Business Privacy Statement (http://go.microsoft.com/fwlink/?
LinkID=517480&clcid=0x409).

Examples
-------------------------- Example 1 --------------------------

Get-CsTelemetryConfiguration -Identity Site:Redmond

This example returns the settings for the configuration scoped to the Redmond site.

Parameters
-Filter
Enables you to use wildcard characters in order to return one or more collections of telemetry configuration
settings. For example, to return all the settings that have been configured at the site scope use the following syntax:
-Filter "site:*". The Filter and the Identity parameters are mutually exclusive.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier that includes the scope of the telemetry configuration. Telemetry configurations can be scoped
at the Global, Site, or Service level. For example, "site:Redmond" (for site). The format of the service scope is
"Service:<Identity>", where identity is derived from the topology. You can use the following cmds to identify the
relevant services.
Get-CsService -WebServer | fl Identity

Get-CsService -PoolFqdn \<pool\> | fl Identity

The first command will give you all of the WebServices in the topology, regardless of the pool. The second will give
you all of the services on the pool, regardless of their role. You can combine the two commands to zero in on a
single role in a single pool.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the information from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.SignInTelemetry.SignInTelemetryConfiguration
minutes to read • Edit Online

Get-CsTenant
In ths Article

Returns information about the Skype for Business Online tenants that have been configured for use in your
organization. Tenants represent groups of online users.

Syntax
Get-CsTenant [-Filter <String>] [-DomainController <Fqdn>] [[-Identity] <OUIdParameter>] [-ResultSize <Int32>]
[<CommonParameters>]

Description
In Skype for Business Online, tenants are groups of users who have accounts homed on the service. Organizations
will typically have a single tenant in which to house all their user accounts.

Examples
-------------------------- Example 1 --------------------------

Get-CsTenant

The command shown in Example 1 returns information about your tenant. Organizations will have only one tenant.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is not used with Skype for Business Online.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to return data by using Active Directory attributes and without having to specify the full Active
Directory distinguished name. For example, to retrieve a tenant by using the tenant display name, use syntax similar
to this:
Get-CsTenant -Filter {DisplayName -eq "FabrikamTenant"}
To return all tenants that use a Fabrikam domain use this syntax:
Get-CsTenant -Filter {Domains -like "fabrikam"}
The Filter parameter uses the same Windows PowerShell filtering syntax is used by the Where-Object cmdlet.
You cannot use both the Identity parameter and the Filter parameter in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the tenant. For example:
-Identity "bf19b7db-6960-41e5-a139-2aa373474354"
If you do not include either the Identity or the Filter parameter then the Get-CsTenant cmdlet will return
information about all your tenants.

Type: OUIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven tenants (regardless
of the number of tenants that are in your forest) include the ResultSize parameter and set the parameter value to 7.
Note that there is no way to guarantee which 7 users will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the tenants to 7 but you have only three contacts in your forest, the
command will return those three tenants and then complete without error.
Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.TenantObject or String
The Get-CsTenant cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.ADConnect.Schema.TenantObject object as well as string values representing the
Identity of the tenant (for example "bf19b7db-6960-41e5-a139-2aa373474354").

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.TenantObject
minutes to read • Edit Online

Get-CsTenantDialPlan
In ths Article

Use the Get-CsTenantDialPlan cmdlet to retrieve a tenant dial plan.

Syntax
Get-CsTenantDialPlan [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsTenantDialPlan [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The Get-CsTenantDialPlan cmdlet returns information about one or more tenant dial plans (also known as a
location profiles) in an organization. Tenant dial plans provide required information to let Enterprise Voice users
make telephone calls. The Conferencing Attendant application also uses tenant dial plans for dial-in conferencing. A
tenant dial plan determines such things as which normalization rules are applied, and whether a prefix must be
dialed for external calls.
You can use the Get-CsTenantDialPlan cmdlet to retrieve specific information about the normalization rules of a
tenant dial plan.

Examples
-------------------------- Example 1 --------------------------

Get-CsTenantDialPlan

This example retrieves a tenant dial plan.


-------------------------- Example 2 --------------------------

Get-CsTenantDialPlan -Identity Vt1TenantDialPlan2

This example retrieves the tenant dial plan that is within the scope of Vt1TenantDialplan2.

Parameters
-AsJob
{{Fill AsJob Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
The Filter parameter allows you to limit the number of results based on filters you specify.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter is a unique identifier that designates the scope, and for per-user scope a name, which
identifies the tenant dial plan to retrieve.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example: -
Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command: Get-
CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsTenantFederationConfiguration
In ths Article

Returns information about the federation configuration settings for your Skype for Business Online tenants.
Federation configuration settings are used to determine which domains (if any) your users are allowed to
communicate with.

Syntax
Get-CsTenantFederationConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTenantFederationConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore]


[<CommonParameters>]

Description
Federation is a service that enables users to exchange IM and presence information with users from other domains.
With Skype for Business Online, administrators can use the federation configuration settings to govern:
Whether or not users can communicate with people from other domains and, if so, which domains they are allowed
to communicate with.
Whether or not users can communicate with people who have accounts on public IM and presence providers such
as Windows Live, AOL, and Yahoo.
The Get-CsTenantFederationConfiguration cmdlet provides a way for administrators to return federation
information for their Skype for Business Online tenants. This cmdlet can also be used to review the allowed and
blocked lists, lists which are used to specify domains that users can and cannot communicate with. However,
administrators must use the Get-CsTenantPublicProvider cmdlet in order to see which public IM and presence
providers users are allowed to communicate with.

Examples
-------------------------- Example 1 --------------------------

Get-CsTenantFederationConfiguration

The command shown in Exercise 1 returns federation configuration information for the current tenant:
-------------------------- Example 2 --------------------------

Get-CsTenantFederationConfiguration | Select-Object -ExpandProperty AllowedList

In Example 2, information is returned for all the domains found on the federation allowed list for the current tenant.
(The allowed list represents all the domains that the tenant is allowed to federate with.) To do this, the command
first calls the Get-CsTenantFederationConfiguration cmdlet to return federation information for the specified
tenant. That information is then piped to the Select-Object cmdlet, which uses the ExpandProperty to "expand" the
property AllowedList. Expanding a property simply means displaying all the information stored in that property
onscreen, and in an easy-to-read format.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters in order to return a collection of tenant federation configuration settings.
Because each tenant is limited to a single, global collection of federation configuration settings there is no need to
use the Filter parameter. However, this is valid syntax for the Get-CsTenantFederationConfiguration cmdlet:
Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Filter "g*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the collection of tenant federation configuration settings to be returned. Because each tenant is limited to
a single, global collection of federation settings there is no need include this parameter when calling the Get-
CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the
Tenant parameter. For example:
Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is not used with Skype for Business Online.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose federation settings are being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings

Related Links
Get-CsTenantPublicProvider
Set-CsTenantFederationConfiguration
minutes to read • Edit Online

Get-CsTenantHybridConfiguration
In ths Article

Returns values for the hybrid configuration settings that enable users homed on Skype for Business Online to have
access to Enterprise Voice features such as media bypass, Enhanced 9-1-1, and call parking. A hybrid scenario (also
known as a split-domain scenario) is a Skype for Business Server deployment in which some users have accounts
homed on-premises while other users have accounts homed on Skype for Business Online.

Syntax
Get-CsTenantHybridConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTenantHybridConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
In a hybrid or "split domain" deployment, an organization has some users who have accounts homed on Skype for
Business Online while simultaneously having other users who have accounts homed on the on-premises version of
Skype for Business Server. By default, users homed on Skype for Business Online do not have access to the
complete range of capabilities offered by Enterprise Voice; that's because the Skype for Business Server servers do
not have direct access to Skype for Business Online deployment and network configuration information. Among
other things, Skype for Business Online users do not have default access to such things as:
Enhanced 9-1-1, the service used for making emergency phone calls.
Call parking, the service that enables users to place a call on hold phone A, then retrieve that call from phone B.
Media bypass, which enables calls to and from the public switched telephone network (PSTN ) to bypass the
Mediation server, helping to minimize transcoding and network latency.
PSTN conferencing dial-in and dial-out, which enables users to participate in the audio portion of an online
conference by using any PSTN telephone or mobile device.
The Response Group application, which provides a way for you to automatically route phone calls to entities such
as a help desk or customer support line. By default, Skype for Business Online users cannot function as Response
Group agents.
In order to provide Skype for Business Online users with access to these Enterprise Voice capabilities,
administrators need to assign the appropriate values to hybrid configuration settings such as the internal and
external Web service URLs and the fully qualified domain name of the organization's Access Edge server. These
values, which can only be configured by using the Set-CsTenantHybridConfiguration cmdlet, provide the Skype for
Business Online servers with the information needed to make use of these advanced Enterprise Voice features.
You can return information about the tenant hybrid configuration settings currently in use in your organization by
using the Get-CsTenantHybridConfiguration cmdlet.
Hybrid PSTN sites are created, retrieved, modified, and deleted by the CsHybridPSTNSite cmdlet group (New, Get,
Set, and Remove .) The hybrid PSTN sites can be reviewed in your hybrid configuration by using the Get-
CsTenantHybridConfiguration cmdlet. However, you can't create or modify hybrid PSTN sites through the
CsTenantHybridConfiguration cmdlets, you must use the CsHybridPSTNSite cmdlets to manage hybrid PSTN
sites.

Examples
-------------------------- Example 1 --------------------------

Get-CsTenantHybridConfiguration -Identity "Global"

The command shown in Example 1 returns the property values for the global collection of tenant hybrid
configuration settings.
-------------------------- Example 2 --------------------------

Get-CsTenantHybridConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354"

In Example 2, property values are returned for the custom tenant hybrid configuration settings applied to the
tenant with the TenantId "bf19b7db-6960-41e5-a139-2aa373474354".

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters in order to return a collection of tenant hybrid configuration settings.
Because you are limited to a single, global collection of hybrid configuration settings there is no need to use the
Filter parameter. However, this is valid syntax for the Get-CsTenantHybridConfiguration cmdlet:
Get-CsTenantHybridConfiguration -Filter "g*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the tenant hybrid configuration settings to be returned. Because you are limited to a single,
global collection of hybrid configuration settings, the only collection that can be returned by using the Identity
parameter is the global collection:
-Identity global

To modify the settings for an individual tenant, use the Tenant parameter instead of the Identity parameter.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is not used with Skype for Business Online.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the global unique identifier (GUID ) of the Skype for Business Online tenant account on which the cmdlet
will operate. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308".
You can find the tenant ID for your Skype for Business Online tenants by running this command: Get-CsTenant |
Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will be determined by your connection and
credentials. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantHybridConfiguration

Related Links
Set-CsTenantHybridConfiguration
minutes to read • Edit Online

Get-CsTenantLicensingConfiguration
In ths Article

Indicates whether licensing information for the specified tenant is available in the Lync admin center.

Syntax
Get-CsTenantHybridConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTenantHybridConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The Get-CsTenantLicensingConfiguration cmdlet indicates whether licensing information for the specified tenant is
available in the Lync admin center. The cmdlet returns information similar to this:
Identity : GlobalStatus : Enabled
If the Status is equal to Enabled then licensing information is available in the admin center. If not, then licensing
information is not available in the admin center.

Examples
-------------------------- Example 1 --------------------------

Get-CsTenantLicensingConfiguration

The command shown in Example 1 returns licensing configuration information for the current tenant:

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters in order to return a collection of tenant licensing configuration settings.
Because each tenant is limited to a single, global collection of licensing configuration settings there is no need to
use the Filter parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the collection of tenant licensing configuration settings to be returned. Because each tenant is limited to a
single, global collection of licensing settings there is no need include this parameter when calling the Get-
CsTenantLicensingConfiguration cmdlet.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is not used with Skype for Business Online.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose licensing settings are being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return your tenant ID by running this command:


Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantLicensingConfigur
ation

Related Links
Get-CsTenant
minutes to read • Edit Online

Get-CsTenantMigrationConfiguration
In ths Article

Use the Get-CsTenantMigrationConfiguration cmdlet to check if Meeting Migration Service (MMS ) is enabled in
your organization.

Syntax
Get-CsTenantMigrationConfiguration [-LocalStore] [[-Identity] <XdsIdentity>] [-Tenant <Guid>] [-Filter
<String>]
[-AsJob] [<CommonParameters>]

Description
Meeting Migration Service (MMS ) is a Skype for Business service that runs in the background and automatically
updates Skype for Business and Microsoft Teams meetings for users. MMS is designed to eliminate the need for
users to run the Meeting Migration Tool to update their Skype for Business and Microsoft Teams meetings. This
tool does not migrate Skype for Business meetings into Microsoft Teams meetings.
The Get-CsTenantMigrationConfiguration cmdlet retrieves the Meeting Migration Service configuration in your
organization.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Get-CsTenantMigrationConfiguration

This example shows the MMS configuration in your organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Set-CsTenantMigrationConfiguration
minutes to read • Edit Online

Get-CsTenantPublicProvider
In ths Article

Returns information indicating whether Skype for Business Online users are allowed to communicate with people
who have accounts on the third-party IM and presence providers Windows Live, AOL, and Yahoo.

Syntax
Get-CsTenantPublicProvider [-Tenant <Guid>] [<CommonParameters>]

Description
Public providers are organizations that provide SIP communication services for the general public. When you
establish a federation relationship with a public provider, you effectively establish federation with any user who has
an account hosted by that provider. For example, if you federate with Windows Live, then your users will be able to
exchange instant messages and presence information with anyone who has a Windows Live instant messaging
account.
Skype for Business Online gives administrators the option of configuring federation with one or more of the
following public IM and presence providers:
Windows Live
AOL
Yahoo!
Administrators can use the Get-CsTenantPublicProvider cmdlet to determine which of those providers (if any) have
been enabled for federation. When you call the Get-CsTenantPublicProvider cmdlet you will get back information
similar to this:
PublicProviderSet DomainPicStatus

True {Microsoft.Rtc.Management.Hosted.DomainPICStatus}
The PublicProviderSet property indicates whether or not federation has been enabled for one or more public
provider. If PublicProviderSet is equal to True then that means federation has been enabled with at least one
provider; if PublicProviderSet is equal to False then that means that federation is disabled for all three public
providers (Windows Live, AOL, and Yahoo). To determine the actual status of each provider use this command:
Get-CsTenantPublicProvider -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" | Select-Object -
ExpandProperty DomainPICStatus
Note that simply enabling the status of a public provider does not mean that users can exchange instant messages
and presence information with users who have accounts on that provider. In addition to enabling federation with
the provider itself, administrators must also set the AllowPublicUsers property of the federation configuration
settings to True. If this property is set to False then communication will not be allowed with any of the public
providers, regardless of the public provider configuration settings.
For more information, see the help topic for the Set-CsTenantFederationConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsTenantPublicProvider -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" | Select-Object -ExpandProperty


DomainPICStatus

Example 1 returns detailed information about the status of all the public providers assigned to the tenant
bf19b7db-6960-41e5-a139-2aa373474354. To do this, the command first uses the Get-CsTenantPublicProvider
cmdlet to return public provider information for the specified tenant. That information is then piped to the Select-
Object cmdlet, which uses the ExpandProperty parameter to "expand" the value of the DomainPICStatus property.
Expanding a property simply means displaying all the values stored in that property onscreen, and in an easy-to-
read format.
-------------------------- Example 2 --------------------------

Get-CsTenantPublicProvider -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" | Select-Object -ExpandProperty


DomainPICStatus | Where-Object {$_.Status -eq "Enabled"}

The command shown in Example 23 is a variation of the command shown in Example 1. In Example 2, however, the
public provider information returned by "expanding" the value of the DomainPICStatus property is, in turn, piped
to the Where-Object cmdlet. The Where-Object cmdlet then picks out only those providers where the Status
property is set to Enabled. The net effect is to display only those public providers that are enabled for use.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose public provider settings are being returned. For
example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return your tenant ID by running this command:


Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.TenantPICStatus

Related Links
Get-CsTenantFederationConfiguration
Set-CsTenantPublicProvider
minutes to read • Edit Online

Get-CsTenantUpdateTimeWindow
In ths Article

Use the Get-CsTenantUpdateTimeWindow cmdlet to retrieve information about your tenant update time windows.

Syntax
Get-CsTenantUpdateTimeWindow [-Tenant <Guid>] [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsTenantUpdateTimeWindow [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Tenant update time windows are created, retrieved, modified, and deleted by the CsTenantUpdateTimeWindow
cmdlet group (New, Get, Set, and Remove). The tenant update time windows can be reviewed in your hybrid
configuration by using the Get-CsTenantHybridConfiguration cmdlet. However, you can't create or modify tenant
update time windows through the CsTenantHybridConfiguration cmdlets. You must use the
CsTenantUpdateTimeWindow cmdlets to manage tenant update time windows.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned, run the following
command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<CmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Get-CsTenantUpdateTimeWindow

The command shown in Example 1 returns information for all the tenant update time windows.
-------------------------- Example 2 --------------------------

Get-CsTenantUpdateTimeWindow -Identity "AlwaysOn"

The command shown in Example 2 returns information for the tenant update time window with the given identity.

Parameters
-AsJob
{{Fill AsJob Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the tenant update time window.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Get-CsTestDevice
In ths Article

Retrieves information about the device update management test devices that have been configured for use in your
organization. Test devices provide a way for administrators to test firmware updates before those updates are
distributed to all the devices in an organization. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsTestDevice [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsTestDevice [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
By identifying specific phones compatible with Skype for Business or other devices as test devices, administrators
can verify and approve firmware updates before those updates are rolled out to all the relevant devices in the
organization. When device update rules are imported to Skype for Business Server, they are marked as "pending,"
which means that the updates corresponding to these rules will not automatically be downloaded and installed by
the affected devices.
Instead, these pending rules will be downloaded and installed by any relevant test devices. That's what test devices
are for: new device update rules are automatically applied to test devices, giving administrators the opportunity to
verify that the firmware updates work as expected. If they do, those administrators can then mark the rules as
approved; approved rules are then downloaded and installed by all the relevant devices in the organization.
Test devices can be assigned to either the global or the site scope. You can use the Get-CsTestDevice cmdlet to
retrieve information about the test devices currently configured for use in your organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsTestDevice

Example 1 returns all the test devices in the organization. Calling the Get-CsTestDevice cmdlet without any
additional parameters will return all the test devices currently in use.
-------------------------- Example 2 --------------------------

Get-CsTestDevice -Identity site:Redmond/UCPhone

This example returns the test device named UCPhone that was assigned to the Redmond site.
-------------------------- Example 3 --------------------------

Get-CsTestDevice -Identity site:Redmond

In Example 3, the command returns all the test devices configured for the Redmond site.
-------------------------- Example 4 --------------------------

Get-CsTestDevice -Filter site:*

Example 4 returns all the test devices that have been configured at the site scope. To do this, the command uses the
Filter parameter; the filter value "site:*" limits the returned data to test devices that have an Identity that begins with
the string value "site:".

Parameters
-Filter
Provides a way for you to use wildcard characters when specifying the test device (or devices) to be returned. For
example, to return all the test device collections that have been configured at the site scope, use this syntax:
-Filter "site:*"

To return all the devices that have the term "EMEA" in their Identity, use this syntax:
-Filter "*EMEA*"

Note that Filter acts only on the Identity of the test device collection; you cannot filter on other collection properties.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the test device to be returned. To refer to an individual device named UCPhone (stored in
the global collection), use this syntax:
-Identity global/UCPhone

To refer to a device found in a site collection, use syntax similar to this:


-Identity site:Redmond/UCPhone

To refer to an entire collection, leave off the device name. For example, this syntax returns all the test devices
configured for the Redmond site:
-Identity site:Redmond

Note that you cannot use wildcards when specifying an Identity.


Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the test device data from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.TestDevice

Related Links
New -CsTestDevice
Remove-CsTestDevice
Set-CsTestDevice
minutes to read • Edit Online

Get-CsTestUserCredential
In ths Article

Returns information that tells you whether or not a user has been configured as a watcher node test user. Watcher
nodes are computers that periodically use Microsoft System Center Operations Manager and Skype for Business
Server 2015 synthetic transactions to verify that Skype for Business Server components are working as expected.
This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsTestUserCredential [-SipAddress] <String> [<CommonParameters>]

Description
If you are using System Center Operations Manager in conjunction with Skype for Business Server, you have the
option of configuring "watcher node" computers. Watcher nodes are computers that periodically (and
automatically) run synthetic transactions. Synthetic transactions are cmdlets that test various features of Skype for
Business Server; for example, there are synthetic transactions that verify that users can register with Skype for
Business Server; that users can exchange instant messages and presence information using Skype for Business
Server; that users can conduct data collaboration and application sharing conferences; and that users can make
phone calls across the public switched telephone network. As noted, these synthetic transactions run periodically
and, if they fail, issue alerts notifying administrators that the system might be experiencing difficulties.
Many synthetic transactions require test users; for example, you cannot test the ability of two users to exchange
instant messages unless you have a pair of user accounts and you attempt to exchange instant messages using
those accounts. When you configure a watcher node you must assign at least two test users to that node. These test
users can be any valid Active Directory user accounts that have been enabled for Skype for Business Server and
have been registered as test accounts. Accounts are registered as test accounts by using the Set-
CsTestUserCredential cmdlet. If you later decide not to use an account as a test account you can unregister the by
using the Remove-CsTestUserCredential cmdlet. This cmdlet simply prevents the account from being used as a
watcher node test account; it does not delete, disable, or otherwise modify the account.
The functions carried out by the Get-CsTestUserCredential cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsTestUserCredential -SipAddress "sip:kenmyer@litewareinc.com"

The command shown in Example 1 returns information for the user sip:kenmyer@litwareinc.com provided that the
user has been configured as a watcher node test user. If the user has not been configured as a test user then the
Get-CsTestUserCredential cmdlet will return an error.
-------------------------- Example 2 --------------------------

$ErrorActionPreference = "SilentlyContinue"

Get-CsUser | ForEach-Object {Get-CsTestUserCredential -SipAddress $_.SipAddress}

$ErrorActionPreference = "Continue"

The commands shown in Example 2 return a list of all the users who have been configured as watcher node test
users. To do this, the first command in the example sets the value of the Windows PowerShell command-line
interface $ErrorActionPreference variable to "SilentlyContinue"; this suppresses the display of any error messages
that would otherwise appear if the Get-CsTestUserCredential cmdlet tries to return test user information for a user
who has not been configured as a watcher node test user.
With the error messages suppressed, the second command in the example uses the Get-CsUser cmdlet to return a
collection of all the users who have been enabled for Skype for Business Server. This collection is then piped to the
ForEach-Object cmdlet. The ForEach-Object cmdlet loops through each user account in the collection, running the
Get-CsTestUserCredential cmdlet against each account to see if the user has been configured as a test user. If the
user has been configured as a test user then information about that user will be displayed on screen. If the user has
not been configured as a test user then nothing will be displayed on screen.
The final command in the example resets the value of $ErrorActionPreference to "Continue".

Parameters
-SipAddress
SIP address of the account being checked for test user credentials. For example:
-SipAddress "sip:kenmyer@litwareinc.com"

You must include the SipAddress parameter when calling the Get-CsTestUserCredential cmdlet. If you do not, you
will be prompted to enter that address.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Management.Automation.PSCredential

Related Links
Remove-CsTestUserCredential
Set-CsTestUserCredential
minutes to read • Edit Online

Get-CsThirdPartyVideoSystem
In ths Article

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.

Syntax
Get-CsThirdPartyVideoSystem [[-Identity] <UserIdParameter>] [-Confirm] [-Credential <PSCredential>]
[-DomainController <Fqdn>] [-Filter <String>] [-LdapFilter <String>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [-WhatIf]
[<CommonParameters>]

Description
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably
audio and video). In Skype for Business Server, 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. VTC contact objects can be created by using the New -CsThirdPartyVideoSystem cmdlet. Information
about these contact objects can be returned by using the Get-CsThirdPartyVideoSystem cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsThirdPartyVideoSystem

The command shown in Example 1 returns a collection of all the third-party video systems configured for use in the
organization.
-------------------------- Example 2 --------------------------

Get-CsThirdPartyVideoSystem -Filter {DisplayName -eq "Redmond Video System"}

In Example 2, information is returned for a single third-party video system: the system with the Active Directory
display name Redmond Video System.
-------------------------- Example 3 --------------------------

Get-CsThirdPartyVideoSystem -OU "ou=Telecommunications,dc=litwareinc,dc=com"

Example 3 uses the OU parameter to return all the third-party video systems with accounts in the
Telecommunications OU. Note that this command also returns information for any third-party video systems that
have accounts in a child OU of the Telecommunications OU (for example,
ou=Telecommunications,ou=AudioVideo,dc=litwareinc,dc=com).

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
Enables you to run the Get-CsThirdPartyVideoSystem cmdlet under alternate credentials. This might be required if
the account you used to log on to the Windows does not have the necessary privileges required to work with
contact objects.
To use the Credential parameter, first use the Get-Credential cmdlet to create a PSCredential object. For details, see
the Get-Credential cmdlet Help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the fully qualified domain name
(FQDN ) of the computer; for example, atl-cs-001.litwareinc.com.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on attributes specific to Skype for Business Server 2015. For
example, you can limit returned data to third-party video system contact objects that have been assigned a specific
voice policy, or contacts that have not been assigned a specific voice policy.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only video systems in the IT department would look like this, with Department
representing the Active Directory attribute, -eq representing the comparison operator (equal to), and "IT"
representing the filter value:
-Filter {Department -eq "IT"}
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the third-party video system. Video systems are identified by using the Active Directory
distinguished name of the associated contact object. By default, video systems use a GUID (globally unique
identifier) as their common name, which means systems will typically have an Identity similar to this: CN=
{ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server 2015). For example, you can limit returned data to contact objects that
have been assigned to a specific department or are located in a specific building.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only contact objects representing video systems in the city of Redmond would look like this:
-LdapFilter "l=Redmond"

In the preceding filter, "l" represents the Active Directory attribute (locality); "=" represents the comparison operator
(equal to); and "Redmond" represents the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return contact objects from a specific Active Directory organizational unit (OU ). The cmdlet will then
return data from both the specified OU and any of its child OUs. For example, if the Finance OU has two child OUs
-- AccountsPayable and AccountsReceivable - third-party video system information will be returned from each of
these OUs.
When specifying an OU, use the distinguished name of that container; for example: -OU
"OU=Finance,dc=litwareinc,dc=com".
Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by a command. For example, to return 3 video systems
(regardless of how many video systems are in your forest), include the ResultSize parameter and set the parameter
value to 7. Note that there is no way to guarantee which 7 systems will be returned. If you set the ResultSize to 7
but you have only 3 video systems in your forest, the command will return those 3 systems and then complete
without error.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADThirdPartyVideoSystemContact
minutes to read • Edit Online

Get-CsThirdPartyVideoSystemPolicy
In ths Article

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.

Syntax
Get-CsThirdPartyVideoSystemPolicy [-Filter <String>] [-LocalStore] [-Tenant <Guid>] [<CommonParameters>]

Get-CsThirdPartyVideoSystemPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [-Tenant <Guid>]


[<CommonParameters>]

Description
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably
audio and video). In Skype for Business Server, 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.
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. The
Get-CsThirdPartyVideoSystem cmdlet provides a way for administrators to return information about the third-
party video system policies configured for use in the organization.

Examples
-------------------------- Example 1 --------------------------

Get-CsThirdPartyVideoSystemPolicy

The command shown in Example 1 returns information about all the third-party video system policies currently
configured for use in the organization.
-------------------------- Example 2 --------------------------

Get-CsThirdPartyVideoSystemPolicy -Identity "RedmondVideoSystemPolicy"

In Example 2, information for a single third-party video system policy is returned: the per-user policy with the
Identity RedmondVideoSystemPolicy.
-------------------------- Example 3 --------------------------

Get-CsThirdPartyVideoSystemPolicy -Filter "site:*"

Example 3 returns information about all the third-party video system policies that have been configured at the site
scope. To do this, the Filter parameter is included, along with the filter value "site:*".
-------------------------- Example 4 --------------------------

Get-CsThirdPartVideoSystemPolicy | Where-Object {$_.SupportsSendingLowResolution -eq $True}

The command shown in Example 4 returns information for all the third-party video system policies that allow users
to send low -resolution video. To carry out this task, Get-CsThirdPartyVideoSystemPolicy is first used to return a
collection of all the policies configured for use in the organization. That collection is then pipe to the Where-Object
cmdlet, which picks out only those policies where the SupportsSendingLowResolution property is set to True
($True).

Parameters
-Filter
Enables you to do a wildcard search for third-party video system policies. For example, to find all the policies
configured at the site scope, use this syntax:
-Filter "site:*"

To find all the per-user policies, use this syntax:


-Filter "tag:*"

Note that you can only filter on the Identity property.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identity assigned to the policy when it was created. Third-party video system policies can be assigned at the
global, site, or per-user scope. To refer to the global instance, use this syntax:
-Identity "global"

To refer to a policy at the site scope, use syntax similar to this:


-Identity "site:Redmond"

To refer to a policy at the per-user scope, use syntax similar to the following:
-Identity "RedmondVideoSystemPolicy"

Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for
policies, use the Filter parameter instead. If neither the Identity nor the Filter parameter is specified the Get-
CsThirdPartyVideoSystemPolicy cmdlet returns information about all the video system policies configured for use
in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the third-party video system policy data from the local replica of the Central Management store rather
than from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the third-party video
system policies are being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Policy.ThirdPartyVideoSystem.ThirdPartyVideoSystemPolicy

Related Links
Grant-CsThirdPartyVideoSystemPolicy
New -CsThirdPartyVideoSystemPolicy
Remove-CsThirdPartyVideoSystem
Set-CsThirdPartyVideoSystemPolicy
minutes to read • Edit Online

Get-CsTopology
In ths Article

Returns information about your Skype for Business Server infrastructure, including internal domains, sites, clusters,
computers, services, and back-end instances of SQL Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsTopology [-AsXml] [-LocalStore] [<CommonParameters>]

Description
The Get-CsTopology cmdlet returns information about how Skype for Business Server has been set up and
configured. Called without any additional parameters, the cmdlet provides an overview of your Skype for Business
Server infrastructure; in that scenario, the cmdlet gives you an overall view of such things as your domains, your
sites, and the computers running Skype for Business Server services and server roles. Alternatively, you can pass
the output of the Get-CsTopology cmdlet to the Select-Object cmdlet; this enables you to access detailed
information about a portion of your topology. For example, the following command provides detailed information
regarding the SQL Server instances used by Skype for Business Server:
Get-CsTopology | Select-Object -ExpandProperty SqlInstances

You can also use the AsXml parameter to return detailed information about your entire topology in XML format.

Examples
-------------------------- Example 1 --------------------------

Get-CsTopology

Example 1 returns complete details for your Skype for Business Server topology. This is done by calling the Get-
CsTopology cmdlet without any additional parameters.
-------------------------- Example 2 --------------------------

Get-CsTopology | Select-Object -ExpandProperty Machines

Example 2 returns information about the computers found in your Skype for Business Server topology. To do this,
the command first calls the Get-CsTopology cmdlet to return the complete Skype for Business Server topology.
This information is then piped to the Select-Object cmdlet, which uses the ExpandProperty parameter to extract
and display detailed information for all the computers included in that topology.
-------------------------- Example 3 --------------------------
Get-CsTopology -AsXML | Out-File C:\Logs\Topology.xml

The command shown in Example 3 returns information about your Skype for Business Server topology and then
saves that information to an XML file. To carry out this task, the command first calls the Get-CsTopology cmdlet,
along with the AsXml parameter; that causes the data to be returned as formatted XML. That formatted data is then
piped to the Out-File cmdlet, which saves the information to the file C:\Logs\Topology.xml.

Parameters
-AsXml
Returns topology information in XML format. By combining the Get-CsTopology cmdlet, the AsXml parameter, and
the Out-File cmdlet, you can export your topology to an XML file.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the topology data from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Deploy.Internal.DefaultTopology

Related Links
Enable-CsTopology
Publish-CsTopology
Test-CsTopology
minutes to read • Edit Online

Get-CsTrunk
In ths Article

Returns information about the SIP trunks employed by your organization. SIP trunks connect the Skype for
Business Server Voice over IP phone network with the Public Switched Telephone Network. This cmdlet was
introduced in Lync Server 2013.

Syntax
Get-CsTrunk [-Filter <String>] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsTrunk [[-Identity] <XdsGlobalRelativeIdentity>] [-PoolFqdn <String>] [<CommonParameters>]

Description
In Skype for Business Server, trunks were used to route outbound calls from a Mediation Server to a PSTN
gateway. Each gateway was limited to a single trunk; among other things this made it difficult for administrators to
provide resiliency for outbound calls. However, because trunks and PSTN gateways were essentially identical, you
could retrieve information about all your trunks by running this command:
Get-CsService -PstnGateway
In Skype for Business Server, multiple trunks can be assigned to a single PSTN gateway; this means that gateways
and trunks are no longer essentially identical. In turn, that means that, in Skype for Business Server, you cannot
retrieve detailed information about individual trunks by using the Get-CsService cmdlet. Instead, detailed
information about individual trunks is returned by using the new Get-CsTrunk cmdlet.
Note that, as far as the Windows PowerShell command-line interface is concerned, trunk information is read-only:
you cannot create, delete or modify trunks by using PowerShell. Those operations can only be carried out by using
Skype for Business Server Topology Builder.
The functions carried out by the Get-CsTrunk cmdlet are not available in the Skype for Business Server Control
Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsTrunk

The command shown in Example 1 returns information for all the SIP trunks configured for use in your
organization.
-------------------------- Example 2 --------------------------
Get-CsTrunk -Identity "PstnGateway:192.168.0.240"

In Example 2, information is returned for a single SIP trunk: the trunk with the Identity PstnGateway:192.168.0.240.
-------------------------- Example 3 --------------------------

Get-CsTrunk -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example 3 returns information for all the SIP trunks found on the pool atl-cs-
001.litwareinc.com.
-------------------------- Example 4 --------------------------

Get-CsTrunk | Where-Object {$_.Routable -eq $True}

Example 4 returns information for all the routable SIP trunks. To do this, the command first calls the Get-CsTrunk
cmdlet without any parameters in order to return a collection of all the available SIP trunks. This collection is then
piped to the Where-Object cmdlet, which picks out only those trunks where the Routable property is equal to (-eq)
True ($True).

Parameters
-Filter
Enables you to use wildcard characters in order to return a SIP trunk (or collection of SIP trunks). For example, to
return a collection of all the SIP trunks configured as part of the PSTN gateway service use this syntax:
-Filter "PstnGateway:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the SIP trunk to be returned. For example:
-Identity "PstnGateway:192.168.0.240"

Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards, then include the Filter
parameter instead.
If this parameter is not specified, then Get-CsTrunk returns a collection of all the SIP trunks in use in the
organization.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-PoolFqdn
Fully qualified domain name for the trunk or PSTN gateway as defined in the topology. For example:
-PoolFqdn "atl-trunk-001.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Xds.DisplayPstnGateway#Decorated

Related Links
Get-CsTrunkConfiguration
minutes to read • Edit Online

Get-CsTrunkConfiguration
In ths Article

Retrieves one or more trunk configurations, which describe the settings for a trunking peer entity such as a public
switched telephone network (PSTN ) gateway, IP -private branch exchange (PBX), or Session Border Controller
(SBC ) at the service provider. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsTrunkConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsTrunkConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Use this cmdlet to retrieve one or more trunking configurations applicable to PSTN gateway entities. Each
configuration contains specific settings for a trunking peer entity such as a PSTN gateway, IP -PBX, or SBC at the
service provider. These settings configure such things as whether media bypass is enabled on this trunk, whether
real-time transport control protocol (RTCP ) packets are sent under certain conditions, and whether to require
secure real-time protocol (SRTP ) encryption.

Examples
-------------------------- Example 1 --------------------------

Get-CsTrunkConfiguration

This example retrieves all trunk configurations for the Skype for Business Server deployment.
-------------------------- Example 2 --------------------------

Get-CsTrunkConfiguration -Identity site:Redmond

This example retrieves the trunk configuration with the Identity site:Redmond. Because identities are unique, this
command will return at most one object.
-------------------------- Example 3 --------------------------

Get-CsTrunkConfiguration -Filter site:*

Example 3 retrieves all trunk configurations defined at the site level. The Get-CsTrunkConfiguration cmdlet uses the
Filter parameter to retrieve all trunk configurations with an Identity beginning with site:, meaning all trunk
configurations defined at the site level.
Parameters
-Filter
This parameter accepts a wildcard string and returns all trunk configurations with identities matching that string.
For example, a Filter value of site:* will return all trunk configurations defined at the site level.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the trunk configuration you want to retrieve. Trunk configurations can be defined at the
Global scope, the Site scope, or at the Service scope for a PSTN Gateway service. For example, site:Redmond (for
site) or PstnGateway:Redmond.litwareinc.com (for service).

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the information from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TrunkConfiguration

Related Links
New -CsTrunkConfiguration
Remove-CsTrunkConfiguration
Set-CsTrunkConfiguration
Test-CsTrunkConfiguration
minutes to read • Edit Online

Get-CsTrustedApplication
In ths Article

Retrieves the settings for a trusted application. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsTrustedApplication [[-Identity] <ExternalApplicationIdentity>] [<CommonParameters>]

Get-CsTrustedApplication [-Filter <String>] [<CommonParameters>]

Get-CsTrustedApplication [-ApplicationId <String>] [-TrustedApplicationPoolFqdn <String>] [<CommonParameters>]

Description
A trusted application is an application developed by a third party that is given trusted status to run as part of Skype
for Business Server but that is not a built-in part of the product. This cmdlet enables you to retrieve port and
Globally Routable User Agent URI (GRUU ) settings for one or more trusted applications.
When you use this cmdlet to retrieve a single trusted application, you must supply a value for the Identity
parameter. The Identity is the fully qualified domain name (FQDN ) of the pool on which the application is homed
followed by a slash (/) followed by the application ID. For example, TrustPool.litwareinc.com/tapp2, where
TrustPool.litwareinc.com is the pool FQDN and tapp2 is the application ID. Note that when you retrieve an
application by calling this cmdlet, you'll see an ID that looks more like this:
TrustPool.litwareinc.com/urn:application:tapp2. Notice the prefix urn:application: before the application name
(tapp2). While this prefix is part of the Identity, it's not required when you specify the value for the Identity
parameter.

Examples
-------------------------- Example 1 --------------------------

Get-CsTrustedApplication

This example retrieves information about all trusted applications defined within the Skype for Business Server
deployment.
-------------------------- Example 2 --------------------------

Get-CsTrustedApplication -Identity TrustPool.litwareinc.com/tapp2

Example 2 retrieves the trusted application with the Identity TrustPool.litwareinc.com/urn:application:tapp2. Notice
that we were able to omit the urn:application: prefix. The Get-CsTrustedApplication cmdlet adds the prefix
automatically and retrieves the correct application.
-------------------------- Example 3 --------------------------

Get-CsTrustedApplication -Filter *trust*

Example 3 retrieves all trusted applications that have identities matching the wildcard string specified as the Filter
value. In this case, with a Filter value of trust, the command will retrieve all trusted applications with the string
"trust" anywhere within the Identity. This string can be contained within any part of the Identity, the pool FQDN, or
the application ID. So this command will retrieve trusted applications with identities such as
TrustedPool.litwareinc.com/urn:application:application1, Pool1.litwareinc.com/urn:application:trustedapp, and
Pool1.litwareinc.com/urn:application:trust.
-------------------------- Example 4 --------------------------

Get-CsTrustedApplication -ApplicationId tapp2 -TrustedApplicationPoolFqdn TrustPool.litwareinc.com

Example 4 will return the same results as Example 2 (where the Identity was specified as the only parameter). The
only difference between the two examples is that Example 2 retrieves the trusted application based on the Identity,
which consists of the trusted pool FQDN followed by the application ID. In this example, the application ID and
trusted pool FQDN are entered as values to two separate parameters: ApplicationId and
TrustedApplicationPoolFqdn.
-------------------------- Example 5 --------------------------

Get-CsTrustedApplication | Where-Object {$_.TrustedApplicationPoolFqdn -eq "TrustPool.litwareinc.com"}

Example 5 retrieves all the trusted applications on the pool TrustPool.litwareinc.com. The example begins by calling
the Get-CsTrustedApplication cmdlet. This returns a collection of all trusted applications defined within the Skype
for Business Server deployment. This collection is then piped to the Where-Object cmdlet, which looks through the
collection item-by-item to find those with a TrustedApplicationPoolFqdn property value equal to (-eq)
TrustPool.litwareinc.com.

Parameters
-ApplicationId
The name of the application. This can include the application ID prefix, but doesn't need to. For example,
ApplicationId values of urn:application:tapp1 and tapp1 will both return the same application. If you supply a value
for ApplicationId, you cannot supply a value for the Identity, but you must supply a value for the
TrustedApplicationPoolFqdn parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
A string that includes wildcards that enables you to retrieve trusted applications based on Identity values that
match the given wildcard string. Identities consist of a trusted application pool FQDN followed by a slash (/)
followed by the trusted application ID. The Filter value will match any part of the Identity, both the FQDN and the
application ID.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the trusted application you want to retrieve. Identity values must be entered in the format
<pool FQDN>/<application ID>, where pool FQDN is the FQDN of the pool on which the application resides, and
application ID is the name of the application. Note that if you specify an Identity, you cannot specify an
ApplicationID or a TrustedApplicationPoolFqdn.

Type: ExternalApplicationIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TrustedApplicationPoolFqdn
The FQDN of the trusted application pool on which the application will reside. If you supply a value for
TrustedApplicationPoolFqdn, you cannot supply a value for the Identity, but you must supply a value for the
ApplicationID parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Xds.DisplayTrustedApplication

Related Links
New -CsTrustedApplication
Remove-CsTrustedApplication
Set-CsTrustedApplication
minutes to read • Edit Online

Get-CsTrustedApplicationComputer
In ths Article

Retrieves information about one or more computers that host trusted applications. This cmdlet was introduced in
Lync Server 2010.

Syntax
Get-CsTrustedApplicationComputer [[-Identity] <XdsGlobalRelativeIdentity>] [-Pool <String>] [-Local]
[<CommonParameters>]

Get-CsTrustedApplicationComputer [-Filter <String>] [-Pool <String>] [-Local] [<CommonParameters>]

Description
We recommend that the computers that are running trusted applications within a Skype for Business Server
deployment be added to a separate pool that is only for trusted applications. However, you can add trusted
application computers to an existing pool that is also used for other purposes. Use this cmdlet to retrieve the
Identity (FQDN ) and the pool on which it is located of one of more computers that contain trusted applications.
You can use this cmdlet to retrieve computers based on the computer FQDN or to retrieve all the computers that
are part of a specified pool.

Examples
-------------------------- Example 1 --------------------------

Get-CsTrustedApplicationComputer

Example 1 retrieves all computers that have been assigned to any trusted application pool within the Skype for
Business Server deployment.
-------------------------- Example 2 -------------------------- (Skype for Business Server 2015)

Get-CsTrustedApplicationComputer -Identity Trust1.litwareinc.com

Example 2 retrieves information about the computer with the FQDN Trust1.litwareinc.com.
-------------------------- Example 3 --------------------------

Get-CsTrustedApplicationComputer -Filter Trust*

This example uses the Filter parameter to do a wildcard search for all computers that have an FQDN beginning
with the string Trust that have been assigned to trusted application pools. The Filter parameter searches the Identity
property of all trusted application computers. The wildcard character (*) at the end of the string means that the
Filter should look for identities that begin with the string Trust followed by any other characters.
-------------------------- Example 4 --------------------------

Get-CsTrustedApplicationComputer -Pool TrustPool.litwareinc.com

Example 4 retrieves a list of all computers that have been assigned to the trusted application pool
TrustPool.litwareinc.com.
-------------------------- Example 5 --------------------------

Get-CsTrustedApplicationComputer | Where-Object {$_.Pool -like "*.litwareinc.com"}

In Example 3 we used the Filter parameter to do a wildcard search based on Identity (the FQDN of the computer).
In this example, we're again doing a wildcard search, but this time on the pool rather than the identity. We first call
the Get-CsTrustedApplicationComputer cmdlet to retrieve a collection of all the trusted application computers. We
then pipe that collection to the Where-Object cmdlet. The Where-Object cmdlet enables us to narrow down the
collection that has been piped to it. In this case we want to keep only the trusted application computers that are in
any pool on the litwareinc.com domain. To do this we check the Pool property of each item in the collection
($_.Pool) and see if it matches (-like) the wildcard string *.litwareinc.com. A value will match that string if it begins
with any set of characters and ends with the string .litwareinc.com.

Parameters
-Filter
A string that includes wildcards that enables you to retrieve trusted computers based on Identity values that match
the given wildcard string.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The fully qualified domain name (FQDN ) of the computer you want to retrieve.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Local
When present, returns information only for the local computer.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pool
The FQDN of the trusted application pool for which you want to retrieve computer information.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Xds.DisplayComputer

Related Links
New -CsTrustedApplicationComputer
Remove-CsTrustedApplicationComputer
minutes to read • Edit Online

Get-CsTrustedApplicationEndpoint
In ths Article

Retrieves information about one or more trusted application endpoints. This cmdlet was introduced in Lync Server
2010.

Syntax
Get-CsTrustedApplicationEndpoint [[-Identity] <UserIdParameter>] [-Filter <String>] [-ApplicationId <String>]
[-Credential <PSCredential>] [-DomainController <Fqdn>] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>]
[-TrustedApplicationPoolFqdn <String>] [<CommonParameters>]

Description
A trusted application endpoint is an Active Directory contact object that enables routing of calls to a trusted
application. This cmdlet retrieves one or more existing endpoint contact objects in Active Directory Domain
Services.

Examples
-------------------------- Example 1 --------------------------

Get-CsTrustedApplicationEndpoint

This example retrieves information about all trusted application endpoints defined within the Skype for Business
Server deployment.
-------------------------- Example 2 --------------------------

Get-CsTrustedApplicationEndpoint -Identity "sip:endpoint1@litwareinc.com"

Example 2 retrieves information about the application endpoint contact with the SIP address
endpoint1@litwareinc.com. Note that the sip: prefix is required when using a SIP address as the Identity.
-------------------------- Example 3 --------------------------

Get-CsTrustedApplicationEndpoint -Filter {DisplayName -like "*endpoint*"}

Example 3 retrieves all trusted application endpoints that have the string "endpoint" anywhere within their display
name. To do this, the command uses the Filter parameter. The value of the parameter filters to find endpoint objects
that have a display name (DisplayName) that contains (-like) the string endpoint (endpoint - the wildcard characters
indicate that any characters can come before or after the string endpoint, meaning endpoint can be anywhere
within the display name).
-------------------------- Example 4 --------------------------

Get-CsTrustedApplicationEndpoint -ApplicationId tapp2 | Select-Object SipAddress, DisplayName, OwnerUrn

Example 4 will return all trusted application endpoints associated with the application tapp2. This is accomplished
by passing the ID tapp2 to the ApplicationId parameter. Notice that we didn't supply a pool FQDN; this means that
if an application with the ID tapp2 exists on more than one pool, endpoints for all those applications will be
retrieved. The next part of this command pipes the returned object or objects to the Select-Object cmdlet, which
displays only the SipAddress, DisplayName, and OwnerUrn properties of those objects.

Parameters
-ApplicationId
The application ID of the trusted application for the endpoint you want to retrieve.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
Alternate credentials to be used to retrieve the endpoint. You can retrieve a PSCredential object by calling the Get-
Credential cmdlet.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on specific attributes for Skype for Business Server. For example,
you can limit returned data to contacts whose display names or SIP addresses match a certain wildcard pattern.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only contacts that have been enabled for Enterprise Voice would look like this:
{EnterpriseVoiceEnabled -eq $True}, with EnterpriseVoiceEnabled representing the Active Directory attribute, -eq
representing the comparison operator (equal to), and $True (a built-in Windows PowerShell variable) representing
the filter value.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity (distinguished name), SIP address, or display name of the application endpoint to be retrieved.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-OU
The OU in which the endpoint resides.

Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
The maximum number of endpoint records to retrieve.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TrustedApplicationPoolFqdn
The fully qualified domain name (FQDN ) of the trusted application pool associated with the application for the
endpoint you want to retrieve.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
Accepts a pipelined string value representing the Identity of a user account.
Outputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact

Related Links
New -CsTrustedApplicationEndpoint
Remove-CsTrustedApplicationEndpoint
Set-CsTrustedApplicationEndpoint
minutes to read • Edit Online

Get-CsTrustedApplicationPool
In ths Article

Below Content Applies To: Lync Server 2010 Retrieves settings for one or more pools that contain the computers
that host trusted applications. Below Content Applies To: Lync Server 2013, Skype for Business Server 2015
Retrieves settings for one or more pools that contain the computers that host trusted applications. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsTrustedApplicationPool [[-Identity] <XdsGlobalRelativeIdentity>] [-PoolFqdn <String>]
[<CommonParameters>]

Get-CsTrustedApplicationPool [-Filter <String>] [-PoolFqdn <String>] [<CommonParameters>]

Description
Below Content Applies To: Lync Server 2010
It is recommended that computers that are running trusted applications within a Microsoft Lync Server 2010
deployment be added to a separate pool that is only for trusted applications. However, you can add trusted
application computers to an existing pool that is also used for other purposes. This cmdlet retrieves one or more
pools that have been defined as trusted application pools.
Who can run this cmdlet: By default, members of the following groups are authorized to run the Get-
CsTrustedApplicationPool cmdlet locally: RTCUniversalUserAdmins, RTCUniversalServerAdmins. To return a list of
the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you
have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsTrustedApplicationPool"}
Below Content Applies To: Lync Server 2013
It is recommended that computers that are running trusted applications within a Lync Server deployment be added
to a separate pool that is only for trusted applications. However, you can add trusted application computers to an
existing pool that is also used for other purposes. This cmdlet retrieves one or more pools that have been defined
as trusted application pools.
Who can run this cmdlet: By default, members of the following groups are authorized to run the Get-
CsTrustedApplicationPool cmdlet locally: RTCUniversalUserAdmins, RTCUniversalServerAdmins. To return a list of
the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you
have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Get-CsTrustedApplicationPool"}
Below Content Applies To: Skype for Business Server 2015
It is recommended that computers that are running trusted applications within a Skype for Business Server 2015
deployment be added to a separate pool that is only for trusted applications. However, you can add trusted
application computers to an existing pool that is also used for other purposes. This cmdlet retrieves one or more
pools that have been defined as trusted application pools.

Examples
-------------------------- Example 1 ------------------------ (Lync Server 2010)

Get-CsTrustedApplicationPool

Example 1 retrieves all pools within the Lync Server 2010 deployment that have been defined as trusted application
pools.
-------------------------- EXAMPLE 1 -------------------------- (Lync Server 2013)

Example 1 retrieves all pools within the Lync Server deployment that have been defined as trusted application
pools.
Get-CsTrustedApplicationPool
-------------------------- EXAMPLE 1 -------------------------- (Skype for Business Server 2015)

Example 1 retrieves all pools within the Skype for Business Server 2015 deployment that have been defined as
trusted application pools.
Get-CsTrustedApplicationPool
-------------------------- Example 2 ------------------------ (Lync Server 2010)

Get-CsTrustedApplicationPool -Identity TrustPool.litwareinc.com

In this example, we've used the Identity parameter to ensure we retrieve only one trusted application pool, in this
case the pool with the FQDN TrustPool.litwareinc.com.
-------------------------- EXAMPLE 2 -------------------------- (Lync Server 2013)

In this example, we've used the Identity parameter to ensure we retrieve only one trusted application pool, in this
case the pool with the FQDN TrustPool.litwareinc.com.
Get-CsTrustedApplicationPool -Identity TrustPool.litwareinc.com
-------------------------- EXAMPLE 2 -------------------------- (Skype for Business Server 2015)

In this example, we've used the Identity parameter to ensure we retrieve only one trusted application pool, in this
case the pool with the FQDN TrustPool.litwareinc.com.
Get-CsTrustedApplicationPool -Identity TrustPool.litwareinc.com
-------------------------- Example 3 ------------------------ (Lync Server 2010)

Get-CsTrustedApplicationPool -Filter *:TrustPool.*

This example retrieves all trusted application pools that contain the site TrustPool in the pool FQDN. The Filter
parameter is used with a value of :TrustPool.. This filter string will search the Identity values of all trusted
application pools for those that contain the string ":TrustPool.". For example, this command will retrieve the pool
with the Identity value TrustedApplicationPool:TrustPool.litwareinc.com.
-------------------------- EXAMPLE 3 -------------------------- (Lync Server 2013)

This example retrieves all trusted application pools that contain the site TrustPool in the pool FQDN. The Filter
parameter is used with a value of :TrustPool.. This filter string will search the Identity values of all trusted
application pools for those that contain the string ":TrustPool.". For example, this command will retrieve the pool
with the Identity value TrustedApplicationPool:TrustPool.litwareinc.com.
Get-CsTrustedApplicationPool -Filter :TrustPool.
-------------------------- EXAMPLE 3 -------------------------- (Skype for Business Server 2015)

This example retrieves all trusted application pools that contain the site TrustPool in the pool FQDN. The Filter
parameter is used with a value of :TrustPool.. This filter string will search the Identity values of all trusted
application pools for those that contain the string ":TrustPool.". For example, this command will retrieve the pool
with the Identity value TrustedApplicationPool:TrustPool.litwareinc.com.
Get-CsTrustedApplicationPool -Filter :TrustPool.
-------------------------- Example 4 ------------------------ (Lync Server 2010)

Get-CsTrustedApplicationPool | Where-Object {$_.ServiceId -like "Redmond1*"}

The Filter parameter searches only on Identity, which in the case of trusted application pools is the service ID in the
format TrustedApplicationPool:<FQDN>. This example searches for pools based on service ID in the format
<site>-ExternalServer-<id>; for example, Redmond1-ExternalServer-1. This allows us to find trusted pools homed
on a specific site. The example begins by calling Get-CsTrustedApplicationPool with no parameters, which retrieves
a collection of all trusted application pools. This collection is then piped to the Where-Object cmdlet, which narrows
down the collection to only those pools where the service ID ($_.ServiceId) matches the wildcard string (-like)
Redmond1*. The result will be a collection of all trusted application pools with FQDNs beginning with the string
Redmond1, such as Redmond1-ExternalServer-1, Redmond1-ExternalServer-2, and Redmond1-ExternalServer-3.
-------------------------- EXAMPLE 4 -------------------------- (Lync Server 2013)

The Filter parameter searches only on Identity, which in the case of trusted application pools is the service ID in the
format TrustedApplicationPool:<FQDN>. This example searches for pools based on service ID in the format
<site>-ExternalServer-<id>; for example, Redmond1-ExternalServer-1. This allows us to find trusted pools homed
on a specific site. The example begins by calling Get-CsTrustedApplicationPool with no parameters, which retrieves
a collection of all trusted application pools. This collection is then piped to the Where-Object cmdlet, which narrows
down the collection to only those pools where the service ID ($_.ServiceId) matches the wildcard string (-like)
Redmond1*. The result will be a collection of all trusted application pools with FQDNs beginning with the string
Redmond1, such as Redmond1-ExternalServer-1, Redmond1-ExternalServer-2, and Redmond1-ExternalServer-3.
Get-CsTrustedApplicationPool | Where-Object {$_.ServiceId -like "Redmond1*"}
-------------------------- EXAMPLE 4 -------------------------- (Skype for Business Server 2015)

The Filter parameter searches only on Identity, which in the case of trusted application pools is the service ID in the
format TrustedApplicationPool:<FQDN>. This example searches for pools based on service ID in the format
<site>-ExternalServer-<id>; for example, Redmond1-ExternalServer-1. This allows us to find trusted pools homed
on a specific site. The example begins by calling the Get-CsTrustedApplicationPool cmdlet with no parameters,
which retrieves a collection of all trusted application pools. This collection is then piped to the Where-Object
cmdlet, which narrows down the collection to only those pools where the service ID ($_.ServiceId) matches the
wildcard string (-like) Redmond1*. The result will be a collection of all trusted application pools with FQDNs
beginning with the string Redmond1, such as Redmond1-ExternalServer-1, Redmond1-ExternalServer-2, and
Redmond1-ExternalServer-3.
Get-CsTrustedApplicationPool | Where-Object {$_.ServiceId -like "Redmond1*"}

Parameters
-Filter
A string containing one or more wildcard characters that is used to search for a pool with an Identity that matches
the wildcard string. For example, specifying the string Redmond would retrieve all trusted application pools with
identities containing the string Redmond, such as TrustedApplicationPool:Redmond.litwareinc.com.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The fully qualified domain name (FQDN ) or service ID of the pool for which you want to retrieve settings.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
The FQDN of the pool you want to retrieve. This behaves the same as the Identity parameter, except that Identity
also accepts a service ID.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None.

Outputs
Retrieves one or more objects of type Microsoft.Rtc.Management.Xds.DisplayExternalServer.

Related Links
Online Version
New -CsTrustedApplicationPool
Remove-CsTrustedApplicationPool
Set-CsTrustedApplicationPool
Online Version
Online Version
minutes to read • Edit Online

Get-CsUCPhoneConfiguration
In ths Article

Below Content Applies To: Lync Server 2010 Returns information regarding management options for Microsoft
Lync 2010 Phone Edition. This includes such things as the required security mode and whether or not the phone
should automatically be locked after a specified period of inactivity. Below Content Applies To: Lync Server 2013
Returns information regarding management options for Lync Phone Edition. This includes such things as the
required security mode and whether or not the phone should automatically be locked after a specified period of
inactivity. This cmdlet was introduced in Lync Server 2010. Below Content Applies To: Skype for Business Online
Get-CsUCPhoneConfiguration [[-Identity] <XdsIdentity>] [-Tenant <guid>] [-LocalStore]
[<CommonParameters>] Get-CsUCPhoneConfiguration [-Tenant <guid>] [-Filter <string>] [-LocalStore]
[<CommonParameters>] Below Content Applies To: Skype for Business Server 2015 Returns information
regarding management options for UC phones. This includes such things as the required security mode and
whether or not the phone should automatically be locked after a specified period of inactivity. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsUCPhoneConfiguration [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsUCPhoneConfiguration [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
UC phones represent the merging of the telephone and Skype for Business Server. Lync Phone Edition uses special
hardware (that is, a Skype for Business-compatible telephone) that can function as a Voice over Internet Protocol
(VoIP ) telephone. In addition, this hardware can also act as a Skype for Business-like endpoint: you can set your
current status; check the status of your Skype for Business contacts; search for new contacts; and carry out many of
the other activities you are used to doing with Skype for Business.
The CsUCPhoneConfiguration cmdlets enable you to manage your UC phones; for example, you can control such
things as the minimum length of the personal identification number (PIN ) used to log on to the phone, and
whether or not that phone will automatically lock itself after a specified period of inactivity.
Phone configuration settings can be applied at either the global scope or at the site scope. (Settings applied at the
site scope take precedence over settings applied at the global scope.) The Get-CsUCPhoneConfiguration cmdlet
enables you to retrieve information about the phone configuration settings current employed throughout your
organization.

Examples
-------------------------- Example --------------------------
Get-CsUCPhoneConfiguration

The command shown in Example 1 returns all of the UC phone configuration settings currently in use in the
organization. Calling the Get-CsUCPhoneConfiguration cmdlet without any parameters always returns a complete
collection of phone configuration settings.
-------------------------- Example --------------------------

Get-CsUCPhoneConfiguration -Identity site:Redmond

In Example 2, only the UC phone configuration settings that have the Identity site:Redmond are returned. Because
Identities must be unique, this command will never return more than one collection of phone configuration
settings.
-------------------------- Example --------------------------

Get-CsUCPhoneConfiguration -Filter site:*

In Example 3, all the UC phone settings that have been configured at the site scope are returned. To do this, the
Get-CsUCPhoneConfiguration cmdlet is called, along with the Filter parameter; the filter value "site:*" limits the
returned data to settings where the Identity property (the only property you can filter on) begins with the string
value "site:". By definition, any settings that have an Identity that begins with the string value "site:" are settings that
have been configured at the site scope.
-------------------------- Example --------------------------

Get-CsUCPhoneConfiguration | Where-Object {$_.SIPSecurityMode -eq "Medium"}

Example 4 returns the UC phone configuration settings where the SIP security mode is set to Medium. (SIP
security can be set to Low, Medium, or High.) To carry out this task, the command first uses the Get-
CsUCPhoneConfiguration cmdlet without any additional parameters in order to return a collection of all the UC
phone settings configured for use in the organization. This collection is then piped to the Where-Object cmdlet,
which picks out only those settings where the SIPSecurityMode property is equal to Medium.
-------------------------- Example --------------------------

Get-CsUCPhoneConfiguration | Where-Object {$_.EnforcePhoneLock -eq $False -or $_.MinPhonePinLength -lt 6}

In Example 5, UC phone settings are returned that meet one or both of the following criteria: 1) phone locking is
not enforced; and/or, 2) the minimum PIN length is less than 6 digits. To do this, the command first calls the Get-
CsUCPhoneConfiguration cmdlet to return a collection of all the UC phone settings currently in use in the
organization. This collection is then piped to the Where-Object cmdlet, which selects those items that meet one (or
both) of the following criteria: 1) the EnforcePhoneLock property is equal to False; and/or, 2) the
MinPhonePinLength property is less than 6.
The -or operator tells the Where-Object cmdlet to pick settings that meet either (or both) of the criteria. To pick
settings that meet both the criteria (in this case, meaning that phone locking is not enforced and the PIN length is
less than 6) use the -and operator:
Where-Object {$.EnforcePhoneLock -eq $False -and $.MinPhonePinLength -lt 6}
Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcard characters in order to return a collection (or collections) of UC phone configuration
settings. To return a collection of all the settings configured at the site scope, use this syntax:
-Filter site:*
To return a collection of all the settings that have the string value "EMEA" somewhere in their Identity (the only
property you can filter for), use this syntax:
-Filter EMEA

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of unified communications (UC ) phone configuration settings you
want to return. To refer to the global settings use this syntax:
-Identity global
To refer to a collection configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"
Note that you cannot use wildcards when specifying an Identity. If you need to use wildcards then include the Filter
parameter instead.
If this parameter is not specified then the Get-CsUCPhoneConfiguration cmdlet returns a collection of all the UC
phone configuration settings in use in the organization.
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the UC phone configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsUCPhoneConfiguration cmdlet does not accept pipelined input.

Outputs
System.Object

Outputs
The Get-CsUCPhoneConfiguration cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.UcPhoneSettings object.

Related Links
New -CsUCPhoneConfiguration
Remove-CsUCPhoneConfiguration
Set-CsUCPhoneConfiguration
minutes to read • Edit Online

Get-CsUICulture
In ths Article

Returns information about the culture (that is, the language and regional settings) used by the Skype for Business
Server Management Shell. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsUICulture [-Verbose] [<CommonParameters>]

Description
Although Skype for Business Server is available in multiple languages, the software is not a true MUI (multilingual
user interface) application. Among other things, this means that the user interface for the Skype for Business Server
does not change languages any time you change the operating system language. For example, suppose you have
installed the U.S. English version of Skype for Business Server and are also running the Windows operating system
under U.S. English. If you change the operating system culture (that is, the language and regional settings) to
Danish, the Skype for Business Server Management Shell will not automatically follow suit; instead, the Skype for
Business Server Management Shell user interface (including error messages and help text) will remain in U.S.
English. If you need to change the culture for the Skype for Business Server Management Shell, you must run the
Set-CsUICulture cmdlet.
The Get-CsUICulture cmdlet provides a way for you to determine the culture currently used in the Skype for
Business Server Management Shell.

Examples
-------------------------- Example ------------------------

Get-CsUICulture

The command shown in Example 1 returns basic information about the culture currently in use by the Skype for
Business Server Management Shell.

Parameters
-Verbose
Reports detailed activity to the screen as the cmdlet runs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsUICulture cmdlet does not accept pipelined input.

Outputs
The Get-CsUICulture cmdlet returns instances of the System.Globalization.CultureInfo class.

Related Links
Set-CsUICulture
minutes to read • Edit Online

Get-CsUnassignedNumber
In ths Article

Retrieves one or more ranges of unassigned numbers and the routing rules that apply to those numbers. This
cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsUnassignedNumber [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsUnassignedNumber [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Unassigned numbers are phone numbers that have been assigned to an organization but that have not been
assigned to specific users or phones. Skype for Business Server can be set up to route calls to appropriate
destinations when an unassigned number is called. This cmdlet retrieves one or more unassigned number ranges
that define that routing.

Examples
-------------------------- Example --------------------------

Get-CsUnassignedNumber

Example 1 returns a collection of all the unassigned numbers configured for use in your organization.
-------------------------- Example --------------------------

Get-CsUnassignedNumber -Identity UNSet1

In Example 2, the Identity parameter is used to limit the retrieved data to unassigned numbers that have the
Identity UNSet1. Because identities must be unique, this command will return only the specified unassigned
number range.
-------------------------- Example --------------------------

Get-CsUnassignedNumber -Filter *Redmond*

This example uses the Filter parameter to return a collection of all the unassigned number settings with Identity
values that include the string Redmond. For example, this command would return unassigned number setting with
identities such as Redmond Numbers, Unassigned Redmond Numbers, UNRedmond, etc.
-------------------------- Example --------------------------
Get-CsUnassignedNumber | Where-Object {$_.AnnouncementName -match "Welcome"}

In Example 4, the Get-CsUnassignedNumber cmdlet and the Where-Object cmdlet are used to retrieve a collection
of all the unassigned number settings that include the word Welcome in the name of the Announcement. To do this,
the command first uses the Get-CsUnassignedNumber cmdlet to retrieve all the unassigned number settings. That
collection is then piped to the Where-Object cmdlet, which applies a filter that limits the returned data to
unassigned numbers that have the word Welcome somewhere in the name of the assigned announcement.

Parameters
-Filter
Performs a wildcard search that allows you to narrow down your results to only those unassigned number settings
whose identities match the given wildcard string.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique name of the unassigned number range to retrieve.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the unassigned number information from the local replica of the Central Management store, rather than
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Returns an object of type Microsoft.Rtc.Management.Voice.Helpers.DisplayAnnouncementVacantNumberRange.

Related Links
New -CsUnassignedNumber
Remove-CsUnassignedNumber
Set-CsUnassignedNumber
minutes to read • Edit Online

Get-CsUser
In ths Article

Returns information about all the users in your organization who have been enabled for Skype for Business Server
2015 or a previous version of the software. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsUser [[-Identity] <UserIdParameter>] [-Credential <PSCredential>] [-DomainController <Fqdn>]
[-Filter <String>] [-OnOfficeCommunicationServer] [-OnLyncServer] [-OU <OUIdParameter>]
[-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>] [-LdapFilter <String>]
[-UnAssignedUser] [-OnModernServer] [<CommonParameters>]

Description
Used together, the Get-CsAdUser cmdlet and the Get-CsUser cmdlet enable you to return detailed information
about all of your Active Directory user accounts. The Get-CsAdUser cmdlet returns information about all your user
accounts, including users who have been enabled for Skype for Business Server and users who have not been
enabled for Skype for Business Server. This differs from the Get-CsUser cmdlet, which returns information only for
users whose accounts have been enabled for Skype for Business Server.
Although there is some overlap between the two, the Get-CsUser cmdlet and the Get-CsAdUser cmdlet differ in
the type of information they return. In general, the Get-CsUser cmdlet returns values for Active Directory attributes
specifically related to Skype for Business Server. For example, the Get-CsUser cmdlet returns information such as
the Skype for Business Server policies that have been assigned to a user; the line Uniform Resource Identifier (URI)
assigned to that user; and details about whether the user has been enabled for Enterprise Voice. These attributes
will not be part of a user account unless that user has been enabled for Skype for Business Server.
By contrast, the Get-CsAdUser cmdlet returns generic Active Directory attribute values: attributes that are part of
the basic Active Directory user account and are present whether or not a user has been enabled for Skype for
Business Server. For example, the Get-CsAdUser cmdlet returns information such as the department and
organization the user works for in addition to the user's job title, and the user's telephone number and office
address.
To see a complete list of the attribute values returned by the Get-CsUser cmdlet, type this command at the
Windows PowerShell command prompt:
'Get-CsUser | Get-Member'
The Get-CsUser cmdlet provides numerous ways for you to filter the collection of users actually returned when you
run the cmdlet. For example, if you don't want to return all your Skype for Business Server user accounts you can
apply the optional parameters Filter or LdapFilter. (These parameters are mutually exclusive: if you use Filter in a
command you cannot use LdapFilter in that same command, and vice-versa.) The Filter parameter enables you to
limit the returned data to users who meet the specified Skype for Business Server criteria; for example, you might
decide to return only users with accounts on the specified Registrar pool, or only users who have been enabled for
Enterprise Voice. The LdapFilter parameter enables you to limit the returned data to users who fit other Active
Directory-based criteria; for example, users who work in a specified state or province, users who do or do not have
a pager, or users with a designated job title.
Note: the equivalent command for Skype for Business Online is Get-CsOnlineUser.

Examples
-------------------------- EXAMPLE --------------------------

Get-CsUser

In the preceding example, the Get-CsUser cmdlet is called without any parameters in order to return a collection of
all the domain users who have been enabled for Skype for Business Server 2015.
-------------------------- EXAMPLE --------------------------

Get-CsUser | Format-Table -Property DisplayName, SipAddress, EnterpriseVoiceEnabled -AutoSize

In Example 2, the Get-CsUser cmdlet returns a collection of all the domain users who have been enabled for Skype
for Business Server 2015. By default, the Get-CsUser cmdlet returns a very large number of properties and
property values, many of which will be of minimal interest in a given situation. Therefore, in this example the
retrieved data is piped to the Format-Table cmdlet. The Format-Table cmdlet then uses the Property parameter to
select the properties DisplayName, SipAddress, and EnterpriseVoiceEnabled, and display those properties and their
values in a table.
-------------------------- EXAMPLE --------------------------

Get-CsUser -Identity "Pilar Ackerman"

In Example 3, the Identity parameter is used to limit the returned data to the user account with the Identity (in this
case, the display name) Pilar Ackerman.
-------------------------- EXAMPLE --------------------------

Get-CsUser -Identity "Pilar*"

In Example 4, the wildcard character (*) is used when specifying the user's Identity. That causes the Get-CsUser
cmdlet to return all the users who have an Identity that begins with the string value "Pilar".
-------------------------- EXAMPLE --------------------------

Get-CsUser -Filter {VoicePolicy -ne $Null}

The command shown in Example 5 returns a collection of users who do not have a per-user voice policy assigned
to them. To do this, the command uses the Filter parameter followed by the filter VoicePolicy -eq "$Null. When
constructing filters for use with the Get-CsUser cmdlet, you need to specify the property name (VoicePolicy)
followed by the comparison operator (in this case, "eq", the comparison operator that means " equal to").
Immediately following the comparison operator is the value you are testing for. In this example that value is $Null,
a Windows PowerShell command-line interface variable that represents a null value.
To return a collection of users who do have a voice policy assigned to them, use this command:
Get-CsUser -Filter {VoicePolicy -eq $Null}
-------------------------- EXAMPLE --------------------------
Get-CsUser -LdapFilter "Department=Finance"

Example 6 uses the LdapFilter parameter to limit the returned data to users who work in the Finance department.
This is done by using the LDAP filter value "Department=Finance".
-------------------------- EXAMPLE --------------------------

Get-CsUser -LdapFilter "&(Department=Finance)(Title=Manager)"

Example 7 demonstrates the use of an AND query in conjunction with the LdapFilter parameter. This query (which
uses the ampersand character "&" to indicate an AND query) specifies two conditions: "Department=Finance" and
"Title=Manager". For a user account to be returned by this query, both conditions must be true: a user must work in
the Finance department, and he or she must be a Manager.
-------------------------- EXAMPLE --------------------------

Get-CsUser -LdapFilter "|(Title=Supervisor)(Title=Manager)"

In the command shown in Example 8, an OR query (indicated by the pipe symbol "|") is used with the LdapFilter
parameter. In the AND query shown in Example 7, both conditions had to be true in order for a user account to be
returned. With an OR query, only one condition must be true for the account to be returned. In this case, a user
account will be returned if the user is a Supervisor or if the user is a Manager.
-------------------------- EXAMPLE --------------------------

Get-CsUser -OU "ou=Finance,ou=North America,dc=litwareinc,dc=com"

Example 9 returns user account information for all the users with accounts in the Finance OU.
-------------------------- EXAMPLE --------------------------

Get-CsUser -UnassignedUser

Example 10 returns a collection of all the users who have been enabled for Skype for Business Server 2015 but are
not currently assigned to a Registrar pool.

Parameters
-Credential
Enables you to run the Get-CsUser cmdlet under alternate credentials. This might be required if the account you
used to log on to the Windows does not have the necessary privileges required to work with user objects.
To use the Credential parameter you must first create a PSCredential object by using the Get-Credential cmdlet.
For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DomainController
Enables you to connect to the specified domain controller in order to retrieve user information. To connect to a
particular domain controller, include the DomainController parameter followed by the fully qualified domain name
(FQDN ) (for example, atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on Skype for Business Server 2015-specific attributes. For
example, you can limit returned data to users who have been assigned a specific voice policy, or users who have not
been assigned a specific voice policy.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only users who have been enabled for Enterprise Voice would look like this, with
EnterpriseVoiceEnabled representing the Active Directory attribute, -eq representing the comparison operator
(equal to), and $True (a built-in Windows PowerShell variable) representing the filter value:
{EnterpriseVoiceEnabled -eq $True}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be retrieved. User Identities can be specified using one of four formats:
1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon name, in
the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for
example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server 2015). For example, you can limit returned data to users who work in a
specific department, or users who have a specified manager or job title.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only users who work in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L )
representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and
"Redmond" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnLyncServer
Returns a collection of users homed on Lync Server. Users with accounts on previous versions of the software will
not be returned when you use this parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnModernServer
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnOfficeCommunicationServer
Returns a collection of users homed on Office Communications Server 2007. Users with accounts on the current
version of the software will not be returned when you use this parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Enables you to return information about user accounts in a specific organizational unit (OU ) or container. The OU
parameter returns data from both the specified OU and any of its child OUs. For example, if the Finance OU has
two child OUs--AccountsPayable and AccountsReceivable--users will be returned from each of these three OUs.
When specifying an OU, use the distinguished name (DN ) of that container; for example: -OU
"OU=Finance,dc=litwareinc,dc=com". To return user accounts from the Users container, use this syntax:
-OU "cn=Users,dc=litwareinc,dc=com"
Type: OUIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless
of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7.
Note that there is no way to guarantee which seven users will be returned.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the
command will return those three users, and then complete without error.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UnAssignedUser
Enables you to return a collection of all the users who have been enabled for Skype for Business Server 2015 but
are not currently assigned to a Registrar pool. Users are not allowed to log on to Skype for Business Server 2015
unless they are assigned to a Registrar pool.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String. The Get-CsUser cmdlet accepts a pipelined string value representing the Identity of a user account that has
been enabled for Skype for Business Server.

Outputs
The Get-CsUser cmdlet returns instances of the Microsoft.Rtc.Management.ADConnect.Schema.ADUser object.

Related Links
Disable-CsUser
Enable-CsUser
Get-CsAdUser
Move-CsUser
Set-CsUser
minutes to read • Edit Online

Get-CsUserAcp
In ths Article

Below Content Applies To: Lync Server 2010 Returns information about the audio conferencing providers assigned
to a user or group of users. Below Content Applies To: Lync Server 2013, Skype for Business Server 2015 Returns
information about the audio conferencing providers assigned to a user or group of users. This cmdlet was
introduced in Lync Server 2010. Below Content Applies To: Skype for Business Online Get-CsUserAcp [[-Identity]
<UserIdParameter>] [-Filter <string>] [-LdapFilter <string>] [-Credential <pscredential>] [-ResultSize
<Unlimited[uint32]>] [<CommonParameters>]

Syntax
Get-CsUserAcp [[-Identity] <UserIdParameter>] [-Credential <PSCredential>] [-Filter <String>]
[-LdapFilter <String>] [-ResultSize <Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]>]
[-AsJob] [<CommonParameters>]

Description
An audio conferencing provider is a third-party company that provides organizations with conferencing services.
Among other things, audio conferencing providers provide a way for users located off site, and not connected to
the corporate network or the Internet, to participate in the audio portion of a conference or meeting. Audio
conferencing providers often provide high-end services such as live translation, transcription, and live per-
conference operator assistance.
Skype for Business Server does not allow for complete integration with audio conferencing providers. The
CsUserAcp cmdlets enable administrators to set a phone number and passcode, and to configure other information
that can be used for audio conferencing provider integration any time a user schedules a meeting. However,
because these cmdlets were not designed for the on-premises version of Skype for Business Server (instead, they
are primarily intended for use with Skype for Business Online) no additional audio conferencing provider
integration is provided beyond assigning property values.
The Get-CsUserAcp cmdlet enables you to return information about the audio conferencing providers that have
been assigned to a user or a group of users. To return audio conferencing provider information for a single user,
simply include the Identity parameter followed by the Identity of the user whose information is to be returned. To
return information for multiple users, you can use either the LdapFilter or the Filter parameters. The LdapFilter
parameter enables you to use generic Active Directory attributes such as Department or Title when specifying user
account information; for example, the parameter value "Title=Accountant" restricts the returned information to
users who have the job title Accountant. The Filter parameter enables you to use Skype for Business Server-specific
attributes (for example, VoicePolicy or EnterpriseVoiceEnabled) to filter the returned data. For example, the filter
value {EnterpriseVoiceEnabled -eq $True} limits the user accounts returned by the Get-CsUserAcp cmdlet to users
who have been enabled for Enterprise Voice.
Alternatively, you can call the Get-CsUserAcp cmdlet without any parameters in order to return audio conferencing
provider information for all your users. Note that the Get-CsUserAcp cmdlet returns audio conferencing provider
information for all your users, including users who have not been enabled for Skype for Business Server.
Examples
-------------------------- EXAMPLE 1 --------------------------

Get-CsUserAcp

The command shown in Example 1 returns audio conferencing provider information for all the users in your
organization.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUserAcp -Identity "Ken Myer"

Example 2 returns audio conferencing provider information for a single user: the user with the Identity Ken Myer.
In this case, the identity is specified by using the user's Active Directory display name.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUserAcp -Filter {AcpInfo -ne $Null}

Example 3 returns information for all the users who have been assigned at least one audio conferencing provider.
To do this, the Filter parameter is included along with the filter value {AcpInfo -ne $Null}; this filter value limits the
returned data to users who have an AcpInfo property value that is not equal to a null value. To return information
about users who have not been assigned an audio conferencing provider use this filter value:
{AcpInfo -eq $Null}
-------------------------- EXAMPLE 4 --------------------------

Get-CsUserAcp | Where-Object {$_.AcpInfo -match "Fabrikam ACP"}

Example 4 returns audio conferencing provider information for any user who has been assigned the audio
conferencing provider Fabrikam ACP. To carry out this task the command first uses the Get-CsUserAcp cmdlet
without any parameters in order to return audio conferencing provider information for all the users in your
organization. This information is then piped to the Where-Object cmdlet, which picks out any user whose AcpInfo
property includes (-match) the string value "Fabrikam ACP".
-------------------------- EXAMPLE 5 --------------------------

Get-CsUserAcp -Identity "Ken Myer" | Select-Object -ExpandProperty AcpInfo

In Example 5, detailed information is displayed about the audio conferencing providers assigned to the user Ken
Myer. To do this, the Get-CsUserAcp cmdlet is first called in order to return audio conferencing provider
information for Ken Myer. This data is then piped to the Select-Object cmdlet, which uses the ExpandProperty
parameter to "expand" the value of the AcpInfo property. When a property value is expanded, that means that all
the information stored in that value is displayed in easy-to-read format.

Parameters
-AsJob
{{Fill AsJob Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
Enables you to run the Get-CsUserAcp cmdlet under alternate credentials. This might be required if the account
you used to log on to Windows does not have the necessary privileges required to work with contact objects.
To use the Credential parameter you must first create a PSCredential object using the Get-Credential cmdlet. For
details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to limit the returned data by filtering on attributes specific to Skype for Business Server 2015. For
example, you can limit returned data to users who have been assigned a specific voice policy, or users who have not
been assigned a specific voice policy.
The Filter parameter uses the same Windows PowerShell filtering syntax that is used by the Where-Object cmdlet.
For example, a filter that returns only users who have been enabled for Enterprise Voice would look like this, with
EnterpriseVoiceEnabled representing the Active Directory Domain Services attribute, -eq representing the
comparison operator (equal to), and $True (a built-in Windows PowerShell variable) representing the filter value:
{EnterpriseVoiceEnabled -eq $True}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be retrieved. You can specify a user's identity using one of four formats:
1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon name, in
the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory Domain Services
display name (for example, Ken Myer). You can also references a user account by using the user's Active Directory
distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users with a display name that ends with the string value " Smith".
Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LdapFilter
Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are
not specific to Skype for Business Server 2015). For example, you can limit returned data to users who work in a
specific department, or users who have a specified manager or job title.
The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns
only users who work in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L )
representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and
"Redmond" representing the filter value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResultSize
Enables you to limit the number of records returned by a command. For example, to return seven users (regardless
of how many users are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that
there is no way to guarantee which 7 users will be returned. If you set the ResultSize to 7 but you have only three
users in your forest, the command will return those three users, and then complete without error.
The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will
run, but no data will be returned.

Type: Microsoft.Rtc.Management.ADConnect.Core.Unlimited`1[System.UInt32]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Inputs
String. The Get-CsUserAcp cmdlet accepts a pipelined string value representing the Identity of a user account that
has been enabled for Skype for Business Server 2015.

Outputs
System.Object
Outputs
The Get-CsUserAcp cmdlet returns instances of the Microsoft.Rtc.Management.ADConnect.Schema.ADUserAcp
object.

Related Links
Remove-CsUserAcp
Set-CsUserAcp
minutes to read • Edit Online

Get-CsUserDatabaseState
In ths Article

Returns information about the online status (True or False) of one or more Skype for Business Server 2015 user
databases. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsUserDatabaseState [[-Identity] <String>] [<CommonParameters>]

Get-CsUserDatabaseState [-RegistrarPool <Fqdn>] [<CommonParameters>]

Description
Skype for Business Server employs the user database (also known as the user store) to maintain presence and
routing information for Skype for Business Server users. The Get-CsUserDatabaseState cmdlet provides a way to
verify the current status (either online or offline) for any of the user databases currently in use in your organization.
Note that, by default, the firewall exceptions for SQL Server Express are not enabled when you install the Standard
Edition of Skype for Business Server. In turn, that means that you will not be able to run the Get-
CsUserDatabaseState cmdlet from a remote instance of Windows PowerShell. That's because your command will
not be able to traverse the firewall and access the SQL Server Express database. You can still run the cmdlet locally
(that is, on the Standard Edition server itself). However, to run the Get-CsUserDatabaseState cmdlet remotely you
will need to manually enable the firewall exceptions for SQL Server Express.

Examples
-------------------------- EXAMPLE --------------------------

Get-CsUserDatabaseState

The command shown in Example 1 returns the online status of each user database configured for use in your
organization.
-------------------------- EXAMPLE --------------------------

Get-CsUserDatabaseState -Identity "UserDatabase:atl-sql-001.litwareinc.com"

The command shown in Example 2 returns the online status of a single user database: the database with the
Identity UserDatabase:atl-sql-001.litwareinc.com.
-------------------------- EXAMPLE --------------------------
Get-CsUserDatabaseState -RegistrarPool "atl-cs-001.litwareinc.com"\

In Example 3, status information is returned for all the user databases located in the Registrar pool atl-cs-
001.litwareinc.com.
-------------------------- EXAMPLE --------------------------

Get-CsUserDatabaseState | Where-Object {$_.Online -eq $True}

In Example 4, information is returned for all the user databases that are currently online. To do this, the command
first calls the Get-CsUserDatabaseState cmdlet without any parameters. That returns a collection of all the user
databases in use in the organization. That collection is then piped to the Where-Object cmdlet, which picks out only
those databases where the Online property is equal to True.

Parameters
-Identity
Unique identifier of the user database whose online status is to be returned. For example:
-Identity "UserDatabase:atl-sql-001.litwareinc.com"
You cannot use both Identity and RegistrarPool in the same command, nor can you use wildcards with either
parameter. If both parameters are omitted the Get-CsUserDatabaseState cmdlet returns information about all the
user databases currently in use.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegistrarPool
Fully qualified domain name of the Registrar pool hosting the user databases whose online status is to be returned.
For example:
-RegistrarPool "atl-cs-001.litwareinc.com"
You cannot use both Identity and RegistrarPool in the same command, nor can you use wildcards with either
parameter. If both parameters are omitted the Get-CsUserDatabaseState cmdlet returns information about all of
the user databases currently in use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsUserDatabaseState cmdlet does not accept pipelined input.
Outputs
The Get-CsUserDatabaseState cmdlet returns instances of the Microsoft.Rtc.Management.Xds.UserStoreState
object.

Related Links
Set-CsUserDatabaseState
Update-CsUserDatabase
minutes to read • Edit Online

Get-CsUserLocationStatus
In ths Article

With `Get-CsUserLocationStatus` you can track the progress of the regionally hosted meetings cross region move
and determine when it has completed.

Syntax
Get-CsUserLocationStatus [[-Tenant] <Guid>] [[-Identity] <UserIdParameter>] [-Confirm] [-WhatIf] [-AsJob]
[<CommonParameters>]

Description
With regionally hosted meetings, you can take advantage of Microsoft Office 365 data centers located all over the
world, and you can choose where your users are located in the Microsoft cloud. Your users log in to local data
centers and therefore benefit from regional performance for meetings within the cloud.
The Get-CsUserLocationStatus tracks the progress of the cross region move and determine when it has completed.

Examples
-------------------------- EXAMPLE 1 --------------------------

PS C:\> Get-CsUserLocationStatus -Identity PilarA@contoso.com

This example tracks the progress of the cross region move for PilarA@contoso.com account.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be verified. User Identities can be specified using one of four formats:
1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon name, in
the form domain\logon (for example, litwareinc\kenmyer) 4) the user's Active Directory display name (for example,
Ken Myer), (only available if using the on-premises cmdlets) User Identities can also be referenced by using the
user's Active Directory distinguished name. You can use the asterisk (*) wildcard character when using the display
name as the user Identity. For example, the Identity "*Smith" returns all the users who have a display name that
ends with the string value "Smith".

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsUserPoolInfo
In ths Article

Returns information about the Registrar pool, backup Registrar pool, and User Services pool that a user has been
assigned to. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsUserPoolInfo [-Identity] <UserIdParameter> [-LocalStore] [<CommonParameters>]

Description
When a user is enabled for Skype for Business Server, he or she must be homed on a Registrar pool. This pool is
responsible for authenticating the user and for keeping track of his or her current status and location. If you need to
know the Registrar pool that a user has been assigned to you can retrieve that information by using a command
similar to this:
'Get-CsUser "Ken Myer" | Select-Object RegistrarPool'
In many cases, simply knowing a user's Registrar pool might be all the information you need. In other cases,
however, you might also want to know such things as the backup Registrar pool the user has been assigned to (that
is, the pool to be used if the primary Registrar pool is unavailable); the names of the individual computers that
make up these pools; and the User Services pool the user has been assigned to. That type of detailed information
can be returned by running the Get-CsUserPoolInfo cmdlet.
For Skype for Business Server, the Get-CsUserPoolInfo cmdlet has been modified to return information about a
user's primary Front End servers in his or her primary pool and in his or her replica pool. When a pool has multiple
Front End servers, each user is assigned to a routing group which, in turn, is assigned to primary Front End server
and a replica Front End server. When a user logs on, by default he or she is registered with the primary Front End
server; in the Get-CsUserPoolInfo output that server is listed as the PrimaryPoolPrimaryRegistrar. If the user's
primary pool has been failed over, then that user will be registered with the primary Front End server on the
backup (replica) pool. That server is listed in the output as the BackupPoolPrimaryRegistrar.
Note that replica information will be shown only if the user's primary pool has been assigned a backup pool.

Examples
-------------------------- EXAMPLE --------------------------

Get-CsUserPoolInfo "sip:kenmyer@litwareinc.com"

This command returns user pool information for a single user: the user with the SIP address
sip:kenmyer@litwareinc.com.
-------------------------- EXAMPLE --------------------------
Get-CsUser | Get-CsUserPoolInfo

In Example 2, user pool information is returned for all the users who have been enabled for Skype for Business
Server 2015. To carry out this task, the command first calls the Get-CsUser cmdlet without any parameters in order
to return a collection of all the Skype for Business Server 2015-enabled users. This collection is then piped to the
Get-CsUserPoolInfo cmdlet, which displays pool information for each user in the collection.
-------------------------- EXAMPLE --------------------------

Get-CsUser | Where-Object {$_.RegistrarPool -ne $Null} | Get-CsUserPoolInfo

The command shown in Example 3 is a variation of the command used in Example 2. In Example 2, pool
information is returned for all the users who have been enabled for Skype for Business Server 2015. However, it is
possible to have users who have been enabled for Skype for Business Server 2015 but have not been assigned a
Registrar pool. The command shown in Example 2 displays an error message for each user who meets those
criteria; those error messages are suppressed in Example 3.
To suppress the error message, Example 3 again uses the Get-CsUser cmdlet to return a collection of all the Skype
for Business Server-enabled users. This time, however, the collection is piped to the Where-Object cmdlet, which
picks out only users where the RegistrarPool property is not equal to a null value. (In other words, users who have
been assigned a Registrar pool.) That filtered collection is then piped to the Get-CsUserPoolInfo cmdlet, which
displays pool information for each user in the filtered collection.
-------------------------- EXAMPLE --------------------------

Get-CsUser -Filter {RegistrarPool -eq "redmond-cs-001.litwareinc.com"} | Get-CsUserPoolInfo

In Example 4, pool information is displayed for all the users who have been assigned the primary pool redmond-cs-
001.litwareinc.com. To do this, the Get-CsUser cmdlet is called along with the Filter parameter; the filter value
{RegistrarPool -eq "redmond-cs-001.litwareinc.com"} returns only those users where the fully qualified domain
name of the RegistrarPool property is equal to redmond-cs-001.litwareinc.com. That collection is then piped to the
Get-CsUserPoolInfo cmdlet, which retrieves pool information for each user in the collection.
-------------------------- EXAMPLE --------------------------

Get-CsUser | Get-CsUserPoolInfo | Where-Object {$_.BackupPoolFqdn -eq $Null}

The command shown in Example 5 returns pool information for all the users who have not been assigned a backup
Registrar pool. To carry out this task, the command first calls the Get-CsUser cmdlet to return a collection of all the
users who have been enabled for Skype for Business Server 2015. That information is then piped to the Get-
CsUserPoolInfo cmdlet, which retrieves pool information for each user in the collection. Finally, that pool
information is piped to the Where-Object cmdlet, which displays data only for those users where the
BackupPoolFqdn property is equal to a null value.
-------------------------- Example ------------------------ (Lync Server 2010)

Get-CsUserPoolInfo "Ken Myer" | Select-Object -Expand PrimaryPoolMachinesInPreferredOrder

In Example 6, information is reported about the individual computers that make up Ken Myer's Registrar pool. To
retrieve this information, Get-CsUserPoolInfo is first called in order to return the relevant data for Ken Myer's user
account. This data is then piped to the Select-Object cmdlet. Select-Object uses the Expand parameter to "expand"
information stored in the PrimaryPoolMachinesInPreferredOrder property. Expanding a property means that all of
the values stored in that property are displayed onscreen in easy-to-read format.

Parameters
-Identity
Indicates the Identity of the user whose user pool information is to be retrieved. Identities can be specified using
one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name
and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
Domain Services display name (for example, Ken Myer). You can also reference a user account by using the user's
Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns information for users who have a last name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LocalStore
Retrieves the user pool information from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Get-CsUserPoolInfo cmdlet accepts a
pipelined string value representing the SamAccountName of a user account that has been enabled for Skype for
Business Server 2015. The cmdlet also accepts pipelined instances of the Active Directory user object.

Outputs
The Get-CsUserPoolInfo cmdlet returns instances of the
Microsoft.Rtc.Management.Xds.GetOCsUserPoolInfoCmdlet+UserInformation object.
minutes to read • Edit Online

Get-CsUserPstnSettings
In ths Article

Use the Get-CsUserPstnSettings cmdlet to retrieve a voice-enabled user's public switched telephone network
(PSTN ) settings.

Syntax
Get-CsUserPstnSettings [-Identity] <UserIdParameter> [-Tenant <Guid>] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Hybrid PSTN sites are created, retrieved, modified, and deleted by the CsHybridPSTNSite cmdlet group (New, Get,
Set, and Remove .) The hybrid PSTN sites can be reviewed in your hybrid configuration by using the Get-
CsTenantHybridConfiguration cmdlet. However, you can't create or modify hybrid PSTN sites through the
CsTenantHybridConfiguration cmdlets, you must use the CsHybridPSTNSite cmdlets to manage hybrid PSTN
sites.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "<DesiredCmdletName>"}

Examples
-------------------------- Example --------------------------

Get-CsUserPstnSettings -Identity jphillips@contoso.com -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

This example returns the PSTN settings for the specified user and tenant.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the target user. Acceptable values include:
Example: jphillips@contoso.com
Example: sip:jphillips@contoso.com
Example: 98403f08-577c-46dd-851a-f0460a13b03d

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the global unique identifier (GUID ) of the Skype for Business Online tenant account on which the cmdlet
will operate. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308".
You can find the tenant ID for your Skype for Business Online tenants by running this command: Get-CsTenant |
Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will be determined by your connection and
credentials. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The Get-CsUserPstnSettings cmdlet returns instances of the UserPstnSettings object.
minutes to read • Edit Online

Get-CsUserReplicatorConfiguration
In ths Article

Returns information about the User Replicator configuration settings currently employed in your organization. The
User Replicator periodically retrieves up-to-date user account information from Active Directory and then
synchronizes the new information with the current user data stored by Skype for Business Server. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsUserReplicatorConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsUserReplicatorConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Although Skype for Business Server maintains its own database of user accounts and user account data, Skype for
Business Server still relies on Active Directory as the ultimate source for user information. For example, when a
new Active Directory user account is created, you must supply basic information about the user account (such as
the Active Directory display name). When a user is enabled for Skype for Business Server, however, you do not
need to specify a new display name for that user. That's because Skype for Business Server uses the display name
already stored in Active Directory Domain Services.
Of course, user account information (including the Active Directory display name) is subject to change over time.
For example, a user who gets married might change her last name and, in turn, need to change her display name as
well. In order to ensure that the Skype for Business Server database and Active Directory remain in synch Skype
for Business Server must periodically check in with Active Directory, retrieve the latest user account updates, and
then modify its own user database accordingly. This synchronization between Active Directory and Skype for
Business Server is carried out by the User Replicator.
When you install Skype for Business Server a global set of User Replicator configuration settings is created for you.
By default, these settings are used to manage the User Replicator on an organization-wide basis. Management of
the User Replicator consists of identifying the domains that Skype for Business Server needs to synch with as well
as indicating how often the User Replicator checks Active Directory for user account updates. By default, the User
Replicator discovers and synchs with all available domains. However, by using the AdDomainNamingContextList
property you can restrict synchronization to a specific set of domains: the domains that appear in the
AdDomainNamingContextList property.
If you are working with Skype for Business Server you can also use the CsUserReplicatorConfiguration cmdlets to
create and manage configuration settings at the service scope. However, with the on-premises version of Skype for
Business Server you are limited to a single collection of configuration settings assigned to the global scope.
The Get-CsUserReplicatorConfiguration cmdlet enables administrators to return information about all the User
Replicator settings currently employed in their organization.
Examples
-------------------------- Example 1 --------------------------

Get-CsUserReplicatorConfiguration

The command shown in Example 1 returns information about all the User Replicator configuration settings
currently in use in your organization.

Parameters
-Filter
Enables you to use wildcards when specifying the collection (or collections) of User Replicator configuration
settings to be returned. For example, this command returns all the settings configured at the service scope:
-Filter "service:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the User Replicator configuration settings to be returned. To return settings at the service
scope, use syntax similar to this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"
Note that service scope settings are available only if you are running Skype for Business Online. To return the
global settings, use this syntax:
-Identity global
If this parameter is not specified then all the User Replicator configurations settings currently in use in your
organization will be returned.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the User Replicator configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsUserReplicatorConfiguration cmdlet does not accept pipelined input.

Outputs
The Get-CsUserReplicatorConfiguration cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.UserReplicatorConfiguration object.

Related Links
New -CsUserReplicatorConfiguration
Remove-CsUserReplicatorConfiguration
Set-CsUserReplicatorConfiguration
minutes to read • Edit Online

Get-CsUserServicesConfiguration
In ths Article

Returns information about the User Services configuration settings in use in your organization. The User Services
service helps maintain presence information and manage conferencing. This cmdlet was introduced in Lync Server
2010.

Syntax
Get-CsUserServicesConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsUserServicesConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Skype for Business Server relies on the User Services service to help maintain presence information for users and
to manage meetings and conferences. In turn, the CsUserServicesConfiguration cmdlets are used to administer
User Services settings at the global, site, and service scope. (Note that the only service that can host User Services
configuration settings is the User Services itself.) These settings help determine such things as the number of
contacts a user can have, the number of meetings a user can have scheduled at any one time, and the length of time
that a given meeting can remain active.
The Get-CsUserServicesConfiguration cmdlet provides a way for administrators to retrieve information about any
(or all) of the User Services configuration settings currently in use.

Examples
-------------------------- Example 1 --------------------------

Get-CsUserServicesConfiguration

The command shown in Example 1 returns a collection of all the User Services configuration settings currently in
use in the organization. This is achieved by calling the Get-CsUserServicesConfiguration cmdlet without any
additional parameters.
-------------------------- Example 2 --------------------------

Get-CsUserServicesConfiguration -Identity site:Redmond

In Example 2, only one collection of User Services configuration settings is returned: the collection with the Identity
site:Redmond. Because identities must be unique, this command can never return more than one item.
-------------------------- Example 3 --------------------------
Get-CsUserServicesConfiguration -Filter "service:*"

Example 3 returns a collection of all the User Services configuration settings that have been applied at the service
scope. This is done by calling the Get-CsUserServicesConfiguration cmdlet along with the -Filter parameter; the
filter value "service:*" limits the returned data to settings where the Identity begins with the characters "service:". By
definition, those are settings configured at the service scope.
-------------------------- Example 4 --------------------------

Get-CsUserServicesConfiguration | Where-Object {$_.MaxContacts -gt 250}

Example 4 returns all the User Services configuration settings that allow users to have more than 250 contacts. To
do this, the command first calls the Get-CsUserServicesConfiguration cmdlet without any additional parameters in
order to return a collection of all the User Services configuration settings currently in use. That collection is then
piped to the Where-Object cmdlet, which picks out only those settings where the MaxContacts property is greater
than 250.
-------------------------- Example 5 --------------------------

Get-CsUserServicesConfiguration | Where-Object {$_.AnonymousUserGracePeriod -gt "00:10:00"}

In Example 5, information is reported for those User Services configuration settings where the anonymous user
grace period is longer than 10 minutes. To carry out this task, the command first calls the Get-
CsUserServicesConfiguration cmdlet without any additional parameters; this returns a collection of all the User
Services configuration settings being used in the organization. The returned collection is then piped to the Where-
Object cmdlet, which selects only the settings where the AnonymousUserGracePeriod property is greater than 10
minutes (00 hours: 10 minutes: 00 seconds).

Parameters
-Filter
Enables you to use wildcards when retrieving one or more collections of User Services configuration settings. For
example, to return all the settings configured at the site scope, use this syntax:
-Filter "site:*"

To return all the settings configured at the service scope, use this syntax:
-Filter "service:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the User Services configuration settings to be returned. To return the global settings, use this
syntax:.
-Identity global
To return settings configured at the site scope, use syntax similar to this:
-Identity site:Redmond

To return settings at the service level, use syntax like this:


-Identity service:UserServer:atl-cs-001.litwareinc.com

If this parameter is omitted then the Get-CsUserServicesConfiguration cmdlet returns all the User Services
configuration settings currently in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the User Services configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsUserServicesConfiguration cmdlet does not accept pipelined input.

Outputs
The Get-CsUserServicesConfiguration cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserServicesSettings object.

Related Links
New -CsUserServicesConfiguration
Remove-CsUserServicesConfiguration
Set-CsUserServicesConfiguration
minutes to read • Edit Online

Get-CsUserServicesPolicy
In ths Article

Returns information about the User Services policies configured for use in the organization. User Services policies
determine whether or not a user's contacts are stored in Skype for Business Server or in the Unified Contact Store.
The Unified Contact Store provides a way for users to maintain a single set of contacts that can be accessed using
Skype for Business, Outlook, and/or Outlook Web Access. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsUserServicesPolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsUserServicesPolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
The unified contact store introduced in Skype for Business Server gives administrators the option of storing a
user's contacts in Exchange instead of in Skype for Business Server; in turn that allows the user to access the same
set of contacts in Outlook and Outlook Web App as well as in Skype for Business. (Alternatively, you can continue
to store contacts in Skype for Business Server. In that case, users will have to maintain two separate sets of
contacts: one for use with Outlook and Outlook Web App, and one for use with Skype for Business Server.)
In order to take advantage of the unified contact store you must (among other things) assign the user a user
services policy that enables the use of the unified contact store. User service policies (which can be configured at
the global, site, or the per-user scope) contain only a single property: UcsAllowed. When this property is set to True
then (assuming all the other prerequisites have been met) the next time a user logs on to Skype for Business Server
his or her contacts will automatically be migrated to the unified contact store.
If this property is set to False this automatic migration will not take place. However, simply setting UcsAllowed will
not cause a user's contacts to be moved from the unified contact store back to Skype for Business Server. In order
to do that, you must first assign the user a user services policy that does not allow the use of the unified contact
store. After that, you must then use the Invoke-CsUcsRollback cmdlet to "manually" migrate the contacts from the
unified contact store back to Skype for Business Server.
Skype for Business Server Control Panel: The functions carried out by the Get-CsUserServicesPolicy cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsUserServicesPolicy

The command shown in Example 1 returns information about all the User Services policies currently in use in the
organization.
-------------------------- Example 2 --------------------------

Get-CsUserServicesPolicy -Identity "site:Redmond"

In Example 2, information is returned for a single User Services policy: the policy configured for the Redmond site.
-------------------------- Example 3 --------------------------

Get-CsUserServicesPolicy -Filter "site:*"

Example 3 returns information for all the User Services policies configured at the site scope. This is done by
including the Filter parameter and the filter value "site:*".
-------------------------- Example 4 -------------------------- (Skype for Business Server 2015)

Get-CsUserServicesPolicy | Where-Object {$_.UcsAllowed -eq $False}

The command shown in Example 4 returns information about the User Services policies where the use of the
Unified Contact Store has been disabled. To carry out this task, the command first calls the Get-
CsUserServicesPolicy cmdlet without any parameters; this returns a collection of all the User Services policies
configured for use in the organization. That collection is then piped to the Where-Object cmdlet, which picks out
only those policies where the UcsAllowed property has been set to false ($False).

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcards when specifying the policy (or policies) to be retrieved. For example, this syntax
returns all the policies that have been configured at the site scope:
-Filter "site:*"

This syntax returns all the policies that have been configured at the per-user scope:
-Filter "tag:*"
You cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be returned. To return the global policy, use this syntax:
-Identity global

To return a policy configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To return a policy configured at the service scope, use syntax similar to this:
-Identity "UserServer:atl-cs-001.litwareinc.com"

Note that the UserServer service is the only service that can host a user services policy.
Policies can also be configured at the per-user scope. To return one of these policies, use syntax similar to this:
-Identity "RedmondUserServicesPolicy"

If this parameter is not included then all of the user services policies configured for use in your organization will be
returned.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the user services policy data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
When used, retrieves the user services policy for the specified Skype for Business Online tenant. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You should not use the Tenant parameter and the Identity parameter in the same command.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Inputs
None. The Get-CsUserServicesPolicy cmdlet does not accept pipelined input.

Outputs
System.Object

Outputs
The Get-CsUserServicesPolicy cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.UsersServices.UserServicesPolicy object.

Related Links
Grant-CsUserServicesPolicy
New -CsUserServicesPolicy
Remove-CsUserServicesPolicy
Set-CsUserServicesPolicy
minutes to read • Edit Online

Get-CsUserSession
In ths Article

Use the Get-CsUserSession cmdlet to retrieve user session information within a specified date range within the
past 30 days.

Syntax
Get-CsUserSession -StartTime <DateTimeOffset> -User <String> [-EndTime <DateTimeOffset>] [-AsJob]
[<CommonParameters>]

Description
Use the Get-CsUserSession cmdlet to retrieve session information for users within a specified date range within
the past 30 days.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Get-CsUserSession -User "Ken.Myer@Contoso.com" -StartTime "02/22/2016 07:30:15 PM"

This example returns user session information for Ken Myer from "02/22/2016 07:30:15 PM" to the current date.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EndTime
Specifies the end date, time and offset of the date range.

Type: DateTimeOffset
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartTime
Specifies the start date, time and offset of the date range.

Type: DateTimeOffset
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-User
Specifies the user whose session data will be retrieved. The input format is any form of user URI defined in Skype
for Business Online. For instance: -User "Ken.Myer@Contoso.com" .

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The Get-CsUserSession cmdlet returns an instance of the Microsoft.Rtc.Management.Hosted.Data.UserSession
object.
minutes to read • Edit Online

Get-CsVideoInteropServerConfiguration
In ths Article

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.

Syntax
Get-CsVideoInteropServerConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsVideoInteropServerConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
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.
To enable the Video Interop Server (VIS ) you must use Topology Builder to define at least one VIS instance. Each
VIS instance will typically be associated with one or more Video Gateways. Video Gateways route traffic between
internal and external video devices such as an internal Skype for Business endpoint receiving video from an
external PBX supporting 3rd party video teleconferencing systems (VTCs). The Video Gateway and a VIS use a
Session Initiation Protocol (SIP ) trunk to connect video calls between external VTCs and internal endpoints.
You can manage the Video Interop Server (VIS ) by using VIS configuration settings and the
CsVideoInteropServerConfiguration cmdlets. These settings are used to enable or disable the enhanced video
experience (in which a single video stream is converted to multiple streams in order to accommodate the needs of
devices that use different frame rates or video resolutions).
By default, Skype for Business Server ships with a single, global collection of Video Interop Server configuration
settings. You can use the New -CsVideoInteropServerConfiguration cmdlet to create additional settings at the site
or the service scope (for the VIS service only.)
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------
Get-CsVideoInteropServerConfiguration

This example returns information about all the VIS configuration settings in the organization.
-------------------------- Example 2 --------------------------

Get-CsVideoInteropServerConfiguration -Identity "site:Redmond"

This example returns information for the collection of VIS configurations that are scoped to the Redmond site.
-------------------------- Example 3 --------------------------

Get-CsVideoInteropServerConfiguration -Filter "site:*"

This example returns all the VIS collections configured at the site scope by including the Filter value "site:*".
-------------------------- Example 4 --------------------------

Get-CsVideoInteropServerConfiguration | Where-Object {$_.EnableEnhancedVideoExperience -eq $True}

This example returns information about all the VIS configurations where the enhanced video experience has been
enabled. First, all the VIS configurations are returned by using Get-CsVideoInteropServerConfiguration to return a
collection of all the available settings. That collection is then piped to the Where-Object cmdlet, which picks out
only those settings where the EnableEnhancedVideoExperience value is equal to True ($True).

Parameters
-Filter
Enables you to use wildcard characters in order to return one or more collections of VIS configuration settings. For
example, to return all the settings that have been configured at the site scope use the following syntax:
-Filter "site:*"
The Filter and the Identity parameters are mutually exclusive.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identity assigned to the VIS configuration when it was created. VIS settings can be configured at the global,
site, or service scope (for the VideoInteropServer service only). To refer to the global instance, use this syntax:
-Identity "global"
Use this syntax to refer to a collection at the site scope:
-Identity "site:Redmond"
Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for
policies, use the Filter parameter instead.
If neither the Identity nor the Filter parameter is specified, then the Get-CsVideoInteropServerConfiguration cmdlet
returns all the VIS configurations in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the VIS configuration from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsVideoInteropServerConfiguration cmdlet does not accept pipelined input.

Outputs
The Get-CsVideoInteropServerConfiguration cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServer.VideoInteropServerConfiguration object.

Related Links
New -CsVideoInteropServerConfiguration
Remove-CsVideoInteropServerConfiguration
Set-CsVideoInteropServerConfiguration
minutes to read • Edit Online

Get-CsVideoInteropServerSyntheticTransactionConfiguration
In ths Article

Use the Get-CsVideoInteropServerSyntheticTransactionConfiguration cmdlet to retrieve Video Interop Server


(VIS ) synthetic transaction configurations.

Syntax
Get-CsVideoInteropServerSyntheticTransactionConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsVideoInteropServerSyntheticTransactionConfiguration [[-Identity] <XdsIdentity>] [-LocalStore]


[<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Get-CsVideoInteropServerSyntheticTransactionConfiguration -Identity "site:Redmond"

This example returns the Video Interop Server synthetic transaction configuration for the Redmond site.

Parameters
-Filter
Enables you to use wildcard characters in order to return one or more collections of VIS configuration settings. For
example, to return all the settings that have been configured at the site scope use the following syntax:
-Filter "site:*"
The Filter and the Identity parameters are mutually exclusive.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
The Video Interop Server (VIS ) synthetic transaction configuration to be retrieved.
Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for
policies, use the Filter parameter instead.
If neither the Identity nor the Filter parameter is specified, then the Get-CsVideoInteropServerConfiguration cmdlet
returns all the VIS synthetic transaction configurations in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the VIS configuration data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Returns an object array, or single instance (if used with the Identity parameter) of the
VideoInteropServerSyntheticTransactionConfiguration object.

Related Links
Set-CsVideoInteropServerSyntheticTransactionConfiguration
New -CsVideoInteropServerSyntheticTransactionConfiguration
Remove-CsVideoInteropServerSyntheticTransactionConfiguration
Test-CsP2PVideoInteropServerSipTrunkAV
minutes to read • Edit Online

Get-CsVideoInteropServiceProvider
In ths Article

Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The
CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the
connection to the provider.

Syntax
Get-CsVideoInteropServiceProvider [-Tenant <System.Guid>] [[-Identity] <XdsGlobalRelativeIdentity>]
[-LocalStore] [<CommonParameters>]

Get-CsVideoInteropServiceProvider [-Tenant <System.Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The
CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the
connection to the provider.

Examples
Example 1

PS C:\> Get-CsVideoInteropServiceProvider

Get all of the providers that have been configured for use within the organization.

Parameters
-Filter
A regex string filter on the providers that have been set up for use within the organization.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Retrieve the specific provider information by name if is known - returns only those providers that have already
been set within the tenant.
Type: XdsGlobalRelativeIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Internal Microsoft use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Get-CsVideoTrunk
In ths Article

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.

Syntax
Get-CsVideoTrunk [-Filter <String>] [-PoolFqdn <String>] [<CommonParameters>]

Get-CsVideoTrunk [[-Identity] <XdsGlobalRelativeIdentity>] [-PoolFqdn <String>] [<CommonParameters>]

Description
Video trunks are 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.
Trunk information is read-only. You cannot create, delete or modify trunks by using Windows PowerShell. Those
operations can only be carried out by using Skype for Business Server Topology Builder.
To return a list of all the role-based access control (RBAC ) roles that can run this cmdlet (including any custom
RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "Get-CsVideoTrunk"}

Examples
-------------------------- Example 1 --------------------------

Get-CsVideoTrunk

This example returns information about all the video trunks configured for use in the organization.
-------------------------- Example 2 --------------------------

Get-CsVideoTrunk -Identity "VideoTrunk:192.168.0.240"

This example returns information for a single video trunk with the identity "VideoTrunk:192.168.0.240".
-------------------------- Example 3 --------------------------
Get-CsVideoTrunk -Filter "VideoTrunk:192.168*"

This example uses the Filter parameter to return all the video trunks located on the IP subnet 192.168. The filter
value "VideoTrunk:192.168*" limits the returned data to video trunks that having an Identity that begins with the
string value "192.168".

Parameters
-Filter
Enables you to use wildcard characters in order to return a video trunk (or a collection of video trunks).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the video trunk to be returned. For example:
-Identity "VideoTrunk:192.168.0.240"
You cannot use wildcards when specifying an Identity. Use the Filter parameter instead.
If this parameter is not specified, then all the video trunks in the organization are returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the trunk as defined in the topology. For example:
-PoolFqdn "atl-trunk-001.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsVideoTrunk cmdlet does not accept pipelined input.

Outputs
The Get-CsVideoTrunk cmdlet returns instances of the
Microsoft.Rtc.Management.Xds.DisplayVideoGateway#Decorated object.

Related Links
Set-CsVideoGateway
minutes to read • Edit Online

Get-CsVideoTrunkConfiguration
In ths Article

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.

Syntax
Get-CsVideoTrunkConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsVideoTrunkConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
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 infrastructure.
The Video Interop Server is a Skype service that runs on a standalone pool and cannot be co-located on an FE pool.
To enable the Video Interop Server, you must use Topology Builder to define at least one VIS instance. Each VIS
instance will typically be associated with one or more Video Gateways. Video Gateways route traffic between
internal and third party video devices such as an internal Skype endpoint receiving video from an third 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 third party VTCs and internal
endpoints.
Video Trunks settings can be managed by using the CsVideoTrunkConfiguration cmdlets. These settings are used
to manage the following Video Trunk characteristics.
RTCP for active calls for active calls
RTCP for calls on hold
Secure Real-time Transport Protocol (SRTP ) use when Transport Layer Security (TLS ) is used for the SIP signaling
Session timers usage on the Video Interop Server (VIS ) for dialogs associated with a Video Trunk
By default, Skype for Business Server 2015 ships with a single, global collection of Video Trunk configuration
settings. However, administrators can use the New -CsVideoTrunkConfiguration cmdlet to create additional settings
at the site or the service scope (for the Video Gateway service only).

Examples
-------------------------- Example 1 --------------------------
Get-CsVideoTrunkConfiguration

This example returns information about all the Video Trunk configurations in the organization.
-------------------------- Example 2 --------------------------

Get-CsVideoTrunkConfiguration -Identity "site:Seattle"

This example returns information for a collection of Video Trunk configuration settings scoped to the Seattle site.
-------------------------- Example 3 --------------------------

Get-CsVideoTrunkConfiguration -Filter "site:*"

This example returns all the Video Trunk configurations configured at the site scope. This is done by including the
Filter parameter and the filter value "site:*".
-------------------------- Example 4 --------------------------

Get-CsVideoTrunkConfiguration | Where-Object {$_.EnableSessionTimer -eq $True}

This example returns information about all the Video Trunk configurations for which session timers have been
enabled. This is done by first using Get-CsVideoTrunkConfiguration to return a collection of all the available
configurations. That collection is then piped to the Where-Object cmdlet, which filters the output by the
EnableSessionTimer property setting.

Parameters
-Filter
The Filter parameter enables you to use wildcard characters in order to return one or more collections of Video
Interop Server configuration settings. For example, to return all the settings that have been configured at the site
scope use the following syntax: -Filter "site:*"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter specifies the Video Trunk configuration to retrieve. Video Trunk configuration settings can
be configured at the global, site, or service scope (for the VideoGateway service only). To refer to the global
instance, use this syntax: -Identity "global"
To refer to a collection at the site scope: -Identity "site:Redmond"
Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for
policies, use the Filter parameter instead.
If neither the Identity nor the Filter parameter is specified then the Get-CsVideoTrunkConfiguration cmdlet returns
information about all the Video Trunk configurations in your organization.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Video Trunk configuration data from the local copy of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsVideoTrunkConfiguration cmdlet does not accept pipelined input.

Outputs
The Get-CsVideoTrunkConfiguration cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.VideoTrunkConfiguration object.

Related Links
New -CsVideoTrunkConfiguration
Set-CsVideoTrunkConfiguration
Remove-CsVideoTrunkConfiguration
minutes to read • Edit Online

Get-CsVoiceConfiguration
In ths Article

Retrieves the voice configuration object, which contains a full list of all voice test configurations defined for the
Skype for Business Server deployment. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsVoiceConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsVoiceConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Voice test configurations are used to test a phone number against a specific voice policy, route, and dial plan. This
cmdlet is used to retrieve the global instance that holds a list of all voice test configurations defined within the
Skype for Business Server 2015 deployment. To retrieve individual voice test configurations or to retrieve them as
individual objects rather than as a list, use the Get-CsVoiceTestConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsVoiceConfiguration

This example retrieves the voice configuration. To retrieve the voice test configurations, use the Get-
CsVoiceTestConfiguration cmdlet.

Parameters
-Filter
There can only be one instance of this object, so this parameter does nothing.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The scope of the voice configuration to retrieve. The only possible value is Global.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the voice configuration from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet returns an instance of the Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceConfiguration
object.

Related Links
Remove-CsVoiceConfiguration
Set-CsVoiceConfiguration
Get-CsVoiceTestConfiguration
minutes to read • Edit Online

Get-CsVoicemailReroutingConfiguration
In ths Article

Retrieves settings that provide public switched telephone network (PSTN ) phone numbers to access Exchange
Subscriber Access and Auto Attendant features. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsVoicemailReroutingConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsVoicemailReroutingConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet retrieves settings that determine where Auto Attendant and Subscriber Access calls are rerouted to
when IP connectivity from Skype for Business Server in the branch site to the Exchange Server located in the data
center is not available.
Auto Attendant and Subscriber Access are features of Exchange. The Auto Attendant feature provides voice
recognition and touch-tone control (dual-tone multifrequency, or DTMF ) so that outside callers can navigate a
company's phone system to reach the department or employee they want or, in Message Taking Mode, to accept
messages for users. (Voice rerouting for Message Taking Mode is recommended.) Subscriber Access allows internal
users to access their Microsoft Outlook mailbox from a phone. The numbers provided by these settings allow
callers to leave voice mail messages for Enterprise Voice users (the AutoAttendantNumber setting) and for those
users to retrieve voice mail even if the IP connectivity from the Skype for Business Server deployment at a remote
site to Exchange in the data center is unavailable (the SubscriberAccessNumber setting).
Calling this cmdlet with no parameters will return all voice mail rerouting configurations.

Examples
-------------------------- Example 1 --------------------------

Get-CsVoicemailReroutingConfiguration

This example retrieves all of the voice mail rerouting configuration settings defined in this deployment of Skype for
Business Server 2015. For example, if there are three branch offices where a Survivable Branch Appliance is
deployed, this command will return three voice mail rerouting configuration sets.
-------------------------- Example 2 --------------------------

Get-CsVoicemailReroutingConfiguration -Identity site:BranchOffice_Portland

This example retrieves the voice mail rerouting configuration settings for the site BranchOffice_Portland.
-------------------------- Example 3 --------------------------

Get-CsVoicemailReroutingConfiguration -Filter *:BranchOffice*

This example retrieves all the voice mail rerouting settings for all sites with site names beginning with the string
BranchOffice (for example, BranchOffice_Portland, BranchOffice_Sacramento).
-------------------------- Example 4 --------------------------

Get-CsVoicemailReroutingConfiguration | Where-Object {$_.Enabled -eq $False}

This example retrieves all the voice mail rerouting configurations that are not enabled. The first part of this
command is a call to the Get-CsVoicemailReroutingConfiguration cmdlet, which retrieves a collection of all the
voice mail rerouting configurations. That collection is then piped to the Where-Object cmdlet. The Where-Object
cmdlet narrows that collection down to include only the configurations that have an Enabled property equal to (-eq)
False.

Parameters
-Filter
The Filter parameter allows you to retrieve configuration settings for a particular set of sites based on wildcard
matching.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the configuration you want to retrieve. For this cmdlet the Identity will be either Global or
Site:<site name>, where <site name> is the name of the site to which the settings are applied.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the voice mail rerouting configuration from the local replica of the Central Management store, rather than
the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None.

Outputs
Retrieves one or more objects of type
Microsoft.Rtc.Management.WritableConfig.Settings.ExumRouting.VoicemailReroutingConfiguration.

Related Links
New -CsVoicemailReroutingConfiguration
Remove-CsVoicemailReroutingConfiguration
Set-CsVoicemailReroutingConfiguration
minutes to read • Edit Online

Get-CsVoiceNormalizationRule
In ths Article

Returns information about the voice normalization rules used in your organization. Voice normalization rules
convert telephone dialing requirements (for example, dialing 9 to access an outside line) to the E.164 phone
number format used by Skype for Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsVoiceNormalizationRule [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore]
[<CommonParameters>]

Get-CsVoiceNormalizationRule [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet returns a named voice normalization rule or a collection of voice normalization rules. These rules are a
required part of phone authorization and call routing. They define the requirements for converting--or translating--
numbers from an internal Skype for Business Server format to a standard (E.164) format. An understanding of
regular expressions is helpful in order to define number patterns that will be translated.
The same rules accessed by this cmdlet can also be accessed through the NormalizationRules property returned by
a call to the Get-CsDialPlan cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsVoiceNormalizationRule

This example retrieves all voice normalization rules defined for the organization.
-------------------------- Example 2 --------------------------

Get-CsVoiceNormalizationRule -Filter site*

Example 2 retrieves all voice normalization rules specified for all sites.
-------------------------- Example 3 --------------------------

Get-CsVoiceNormalizationRule -Filter *s*

Example 3 retrieves all voice normalization rules with the letter s anywhere in the scope. For example, this will
return all site- and service-level rules, as well as per-user rules with an s in the scope name, such as
RedmondEastUsers.
-------------------------- Example 4 --------------------------

Get-CsVoiceNormalizationRule | Where-Object {$_.Name -match "seattle"}

The Filter parameter used in Examples 2 and 3 matches only on the scope portion of the Identity. This example
performs a match on the name portion to return all rules with a Name containing the string "seattle". To do this, we
first call the Get-CsVoiceNormalizationRule cmdlet to retrieve all the normalization rules for the organization. We
then pipe this collection to the Where-Object cmdlet to find all the items in the collection where the Name property
matches the string "seattle".

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Uses wildcard strings to return a collection of normalization rules based on Identity. Note that Filter works only on
the scope portion of the Identity, not on the name. For example, the filter value lob will return all rules at the global
scope (scopes that contain the letters lob), but not a rule with the identity site:Redmond/lobby, where lob is only in
the name portion of the identity, not the scope.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the rule. If a value is specified for this parameter, it must be in the format scope/name; for
example, site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the voice normalization rule from the local replica of the Central Management store, rather than the
Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
System.Object

Outputs
The Get-CsVoiceNormalizationRule cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule object.

Related Links
New -CsVoiceNormalizationRule
Remove-CsVoiceNormalizationRule
Set-CsVoiceNormalizationRule
Test-CsVoiceNormalizationRule
Get-CsDialPlan
minutes to read • Edit Online

Get-CsVoicePolicy
In ths Article

Returns information about one or more voice policies configured for your organization. This cmdlet was introduced
in Lync Server 2010.

Syntax
Get-CsVoicePolicy [-Tenant <Guid>] [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsVoicePolicy [-Tenant <Guid>] [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet retrieves voice policy information. Voice policies are used to manage such Enterprise Voice-related
features as simultaneous ringing (the ability to have a second phone ring each time someone calls your office
phone) and call forwarding. Use this cmdlet to retrieve the settings that enable and disable many of these features.

Examples
-------------------------- Example 1 --------------------------

Get-CsVoicePolicy

This example displays all the voice policies that have been defined for an organization along with the settings for
each.
-------------------------- Example 2 --------------------------

Get-CsVoicePolicy -Identity UserPolicy1

This example uses the Identity parameter to retrieve the voice policy settings for the per-user policy named
UserPolicy1.
-------------------------- Example 3 --------------------------

Get-CsVoicePolicy -Filter tag*

This example uses the Filter parameter to retrieve all the voice policy settings that can be assigned to users. All per-
user voice policies have an Identity in the format tag:<UserVoicePolicy>, so we filter on tag to retrieve all user voice
policies.

Parameters
-Filter
This parameter accepts a wildcard string and returns all voice policies with identities matching that string. For
example, a Filter value of tag:* will return all voice policies defined at the per-user level.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier specifying the scope and, in some cases the name, of the policy. If this parameter is omitted, all
voice policies for the organization are returned.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the voice policy from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Office 365 tenant account whose voice policy is to be retrieved. For
example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None.

Outputs
This cmdlet returns instances of the Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoicePolicy object.

Related Links
New -CsVoicePolicy
Remove-CsVoicePolicy
Set-CsVoicePolicy
Grant-CsVoicePolicy
Test-CsVoicePolicy
minutes to read • Edit Online

Get-CsVoiceRoute
In ths Article

Returns information about the voice routes configured for use in an organization. This cmdlet was introduced in
Lync Server 2010.

Syntax
Get-CsVoiceRoute [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsVoiceRoute [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Use this cmdlet to retrieve one or more existing voice routes. Voices routes contain instructions that tell Skype for
Business Server how to route calls from Enterprise Voice users to phone numbers on the public switched telephone
network (PSTN ) or a private branch exchange (PBX).
This cmdlet can be used to retrieve voice route information such as which PSTN gateways the route is associated
with (if any), which PSTN usages are associated with the route, the pattern (in the form of a regular expression) that
identifies the phone numbers to which the route applies, and caller ID settings. The PSTN usage associates the
voice route to a voice policy.

Examples
-------------------------- Example 1 --------------------------

Get-CsVoiceRoute

Retrieves the properties for all voice routes defined within the organization.
-------------------------- Example 2 --------------------------

Get-CsVoiceRoute -Identity Route1

Retrieves the properties for the Route1 voice route.


-------------------------- Example 3 --------------------------

Get-CsVoiceRoute -Filter *test*

This command displays voice route settings where the Identity contains the string "test" anywhere within the value.
To find the string test only at the end of the Identity, use the value *test. Similarly, to find the string test only if it
occurs at the beginning of the Identity, specify the value test*.
-------------------------- Example 4 --------------------------

Get-CsVoiceRoute | Where-Object {$_.PstnGatewayList.Count -eq 0}

This command retrieves all voice routes that have not had any PSTN gateways assigned. First all voice routes are
retrieved using the Get-CsVoiceRoute cmdlet. These voice routes are then piped to the Where-Object cmdlet. The
Where-Object cmdlet narrows down the results of the Get operation. In this case we look at each voice route (that's
what the $_ represents) and check the Count property of the PstnGatewayList property. If the count of PSTN
gateways is 0, the list is empty and no gateways have been defined for the route.

Parameters
-Filter
This parameter filters the results of the Get operation based on the wildcard value passed to this parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string that uniquely identifies the voice route. If no identity is provided, all voice routes for the organization are
returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the voice route from the local replica of the Central Management store, rather than the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet returns instances of the Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route object.
Related Links
New -CsVoiceRoute
Remove-CsVoiceRoute
Set-CsVoiceRoute
Test-CsVoiceRoute
minutes to read • Edit Online

Get-CsVoiceRoutingPolicy
In ths Article

Returns information about the voice routing policies configured for use in your organization. Voice routing policies
manage PSTN usages for users of hybrid voice. Hybrid voice enables users homed on Skype for Business Online to
take advantage of the Enterprise Voice capabilities available in an on-premises installation of Skype for Business
Server. This cmdlet was introduced in Lync Server 2013.

Syntax
Get-CsVoiceRoutingPolicy [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsVoiceRoutingPolicy [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Voice routing policies are used in "hybrid" scenarios: when some of your users are homed on the on-premises
version of Skype for Business Server and other users are homed on Skype for Business Online. Assigning your
Skype for Business Online users a voice routing policy enables those users to receive and to place phones calls to
the public switched telephone network by using your on-premises SIP trunks.
Note that simply assigning a user a voice routing policy will not enable them to make PSTN calls via Skype for
Business Online. Among other things, you will also need to enable those users for Enterprise Voice and will need to
assign them an appropriate voice policy and dial plan.
The functions carried out by the Get-CsVoiceRoutingPolicy cmdlet are not available in the Skype for Business
Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsVoiceRoutingPolicy

The command shown in Example 1 returns information for all the voice routing policies configured for use in the
organization.
-------------------------- Example 2 --------------------------

Get-CsVoiceRoutingPolicy -Identity "RedmondVoiceRoutingPolicy"

In Example 2, information is returned for a single voice routing policy: the policy with the Identity
RedmondVoiceRoutingPolicy.
-------------------------- Example 3 --------------------------

Get-CsVoiceRoutingPolicy -Filter "tag:*"

The command shown in Example 3 returns information about all the voice routing policies configured at the per-
user scope. To do this, the command uses the Filter parameter and the filter value "tag:*"; that filter value limits the
returned data to policies that have an Identity that begins with the string value "tag:".
-------------------------- Example 4 --------------------------

Get-CsVoiceRoutingPolicy | Where-Object {$_.PstnUsages -contains "Long Distance"}

In Example 4, information is returned only for those voice routing policies that include the PSTN usage "Long
Distance". To carry out this task, the command first calls Get-CsVoiceRoutingPolicy without any parameters; that
returns a collection of all the voice routing policies configured for use in the organization. This collection is then
piped to the Where-Object cmdlet, which picks out only those policies where the PstnUsages property includes (-
contains) the usage "Long Distance".
-------------------------- Example 5 --------------------------

Get-CsVoiceRoutingPolicy | Where-Object {$_.PstnUsages -notcontains "Long Distance"}

Example 5 is a variation on the command shown in Example 4; in this case, however, information is returned only
for those voice routing policies that do not include the PSTN usage "Long Distance". In order to do that, the
Where-Object cmdlet uses the -notcontains operator, which limits returned data to policies that do not include the
usage "Long Distance".

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcards when retrieving one or more voice routing policies. For example, to return all the
policies configured at the per-user scope, use this syntax:
-Filter "tag:*"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the voice routing policy to be retrieved. To return the global policy, use this syntax:
-Identity global
To return a policy configured at the per-user scope, use syntax like this:
-Identity "RedmondVoiceRoutingPolicy"
You cannot use wildcard characters when specifying the Identity.
If neither the Identity nor the Filter parameters are specified, then Get-CsVoiceRoutingPolicy returns all the voice
routing policies configured for use in the organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the voice policy data from the local replica of the Central Management store rather than from the Central
Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsVoiceRoutingPolicy cmdlet does not accept pipelined input.

Outputs
The Get-CsVoiceRoutingPolicy cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceRoutingPolicy object.

Related Links
Grant-CsVoiceRoutingPolicy
New -CsVoiceRoutingPolicy
Remove-CsVoiceRoutingPolicy
Set-CsVoiceRoutingPolicy
minutes to read • Edit Online

Get-CsVoiceTestConfiguration
In ths Article

Retrieves a test scenario you can use to test phone numbers against specified routes and rules. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsVoiceTestConfiguration [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsVoiceTestConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
This cmdlet retrieves the voice route, usage, dial plan, and voice policy against which to test a specified phone
number. Before implementing voice routes and voice policies, it's a good idea to test them out on various phone
numbers to ensure the results are what you're expecting. You can do this testing by retrieving a test configuration
with this cmdlet, and then running that scenario with the Test-CsVoiceConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

Get-CsVoiceTestConfiguration

Retrieves all the voice test configuration settings.


-------------------------- Example 2 --------------------------

Get-CsVoiceTestConfiguration | Select-Object Identity, DialedNumber, ExpectedTranslatedNumber

This example retrieves all the voice test configuration settings, displaying only the Identity, DialedNumber, and
ExpectedTranslatedNumber parameter of each. The settings returned by the Get-CsVoiceTestConfiguration cmdlet
are piped to the Select-Object cmdlet, where the output is narrowed down to the Identity, DialedNumber, and
ExpectedTranslatedNumber properties.
-------------------------- Example 3 --------------------------

Get-CsVoiceTestConfiguration -Filter *test*

This example uses the Filter parameter to retrieve all the voice test configuration settings with Identities that
contain the string "test". The wildcard characters (*) at the beginning and end of the filter value indicate that the
string "test" can be located anywhere within the Identity, with any characters before or after that string. For
example, this command would return voice test configurations with names such as TestConfig, VoiceNumberTest,
and VoiceTest1.

Parameters
-Filter
This parameter provides a way to do a wildcard search of the defined voice test configurations. (For details, see the
examples in this topic.)

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string uniquely identifying the test configuration you want to retrieve.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the voice test configuration from the local replica of the Central Management store, rather than the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Returns one of more objects of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration.

Related Links
New -CsVoiceTestConfiguration
Remove-CsVoiceTestConfiguration
Set-CsVoiceTestConfiguration
Test-CsVoiceTestConfiguration
minutes to read • Edit Online

Get-CsWatcherNodeConfiguration
In ths Article

Returns information about the watcher node configuration settings in use in your organization. Watcher nodes are
computers that periodically use Microsoft System Center Operations Manager and Skype for Business Server
synthetic transactions to verify that Skype for Business Server components are working as expected. The watcher
node configuration settings let you know which pools have been associated with a watcher node. This cmdlet was
introduced in Lync Server 2013.

Syntax
Get-CsWatcherNodeConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsWatcherNodeConfiguration [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Description
If you are using Microsoft System Center Operations Manager to monitor Skype for Business Server then you
have the option of setting up "watcher nodes": computers that periodically, and automatically, run synthetic
transactions in order to verify that Skype for Business Server is working as expected. Watcher nodes are assigned
to pools, and are managed using the CsWatcherNodeConfiguration cmdlets. Note that you do not need to install
watcher nodes if you are using System Center Operations Manager. You can still monitor your system without
using watcher nodes; the only difference is that any synthetic transactions you want to run will need to be invoked
manually rather than automatically invoked by Operations Manager.
The Get-CsWatcherNodeConfiguration cmdlet returns information about all the watcher nodes that have been
configured for use in your organization.
Skype for Business Server Control Panel: The functions carried out by the Get-CsWatcherNodeConfiguration
cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsWatcherNodeConfiguration

The command shown in Example 1 returns information about all the watcher nodes currently configured for use in
the organization.
-------------------------- Example 2 --------------------------

Get-CsWatcherNodeConfiguration -Identity "atl-cs-001.litwareinc.com"


In Example 2, information is returned for the watcher node associated with the pool.
-------------------------- Example 3 --------------------------

Get-CsWatcherNodeConfiguration | Where-Object {$_.TestUsers -contains "sip:kenmyer@litwareinc.com"}

The command shown in Example 3 returns information about all the watcher nodes where the test users include
the user with the SIP address sip:kenmyer@litwareinc.com. To do this, the command first uses the Get-
CsWatcherNodeConfiguration cmdlet to return a collection of all the watcher nodes in the organization. That
collection is then piped to the Where-Object cmdlet, which picks out only those nodes where the TestUsers
property contains the SIP address sip:kenmyer@litwareinc.com.
-------------------------- Example 4 --------------------------

Get-CsWatcherNodeConfiguration | Where-Object {$_.ExtendedTests -match "TestType=PSTN"}

In Example 4, information is returned for all the watcher nodes that include the PSTN test type. To carry out this
task, the command first calls the Get-CsWatcherNodeConfiguration cmdlet in order to return a collection of all the
watcher nodes in the organization. That collection is then piped to the Where-Object cmdlet, which selects only
those watcher nodes where the ExtendedTests property includes (-matches) the string value "TestType=PSTN".

Parameters
-Filter
Enables you to use wildcard characters in order to return one or more watcher nodes. For example, to return all of
the watcher nodes for the domain litwareinc.com use this syntax:
-Filter "*.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name of the pool that the watcher node has been assigned to. For example:
-Identity "atl-cs-001.litwareinc.com"
If this parameter is not specified then the Get-CsWatcherNodeConfiguration cmdlet will return information about
all the watcher nodes configured for use in your organization.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the watcher node configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsWatcherNodeConfiguration cmdlet does not accept pipelined input.

Outputs
The Get-CsWatcherNodeConfiguration cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool#Decorated object.

Related Links
New -CsWatcherNodeConfiguration
Remove-CsWatcherNodeConfiguration
Set-CsWatcherNodeConfiguration
Test-CsWatcherNodeConfiguration
minutes to read • Edit Online

Get-CsWebServiceConfiguration
In ths Article

Returns information about all the Web Services configuration settings in use in your organization. This cmdlet was
introduced in Lync Server 2010.

Syntax
Get-CsWebServiceConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Get-CsWebServiceConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Description
Many Skype for Business Server components are web-based: these components either use web services or
webpages to carry out their tasks. For example, users employ a web service when searching for new contacts in the
Address Book or when using group expansion to view the individual members of a distribution group. Likewise,
components ranging from dial-in conferencing to Skype for Business Server Control Panel use webpages as the
interface between Skype for Business Server and users.
The CsWebServiceConfiguration cmdlets enable administrators to manage Web Services configuration settings
throughout the organization; this includes managing group expansion, certificate settings, and allowed
authentication methods. Because you can configure different settings at the global, site, and service scope (albeit for
the only the Web Services service), you can customize Web Services capabilities for different users and different
locations.
The Get-CsWebServiceConfiguration cmdlet enables you to return detailed information about the Web Services
configuration settings currently in use in your organization.

Examples
-------------------------- Example 1 ------------------------

Get-CsWebServiceConfiguration

Example 1 returns information about all the Web Services configuration settings currently in use in the
organization.
-------------------------- Example 2 ------------------------

Get-CsWebServiceConfiguration -Identity site:Redmond

The command shown in Example 2 returns information about the Web Services configuration settings that have
the Identity site:Redmond.
-------------------------- Example 3 ------------------------

Get-CsWebServiceConfiguration -Filter "site:*"

Example 3 returns all the Web Services configuration settings that have been assigned at the site scope. To do this,
the Filter parameter is included when calling the Get-CsWebServiceConfiguration cmdlet; the filter value "site:*"
ensures that only those settings that have an Identity that begins with the string value "site:" are returned.
-------------------------- Example 4 ------------------------

Get-CsWebServiceConfiguration | Where-Object {$_.UsePinAuth -eq $False}

In Example 4, the command returns all the Web Services configuration settings that do not allow personal
identification number (PIN ) authentication. This is done by first calling the Get-CsWebServiceConfiguration cmdlet
to return all the Web Services configuration settings currently in use. This collection is then piped to the Where-
Object cmdlet, which picks out only those settings where the UsePinAuth property is equal to False.
-------------------------- Example 5 ------------------------

Get-CsWebServiceConfiguration | Where-Object {$_.MaxGroupSizeToExpand -gt 100}

Example 5 returns all the Web Services configuration settings where the maximum group expansion size is greater
than 100. To do this, the command first uses the Get-CsWebServiceConfiguration cmdlet to return all the Web
Services configuration settings currently in use. This information is then piped to the Where-Object cmdlet, which
selects only those settings where the MaxGroupSizeToExpand property is greater than 100.

Parameters
-Filter
Enables you to use wildcards when specifying the Web Services configuration settings collection (or collections) to
be returned. For example, this syntax returns all the settings configured at the site scope:
-Filter "site:*"
You cannot use both the Filter and the Identity parameters in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Web Services configuration settings to be returned. To return the global settings, use this
syntax:
-Identity global
To return settings configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"
Service-scope settings can be returned using syntax like this:
-Identity "service:WebServer:atl-cs-001.litwareinc.com"
You cannot use both the Filter and the Identity parameters in the same command. If you do not specify either
parameter, the Get-CsWebServiceConfiguration cmdlet will return all the Web Services settings collections
currently in use in your organization.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the Web Services configuration data from the local replica of the Central Management store rather than
from the Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsWebServiceConfiguration cmdlet does not accept pipelined input.

Outputs
The Get-CsWebServiceConfiguration cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Web.WebServiceSettings object.

Related Links
New -CsWebServiceConfiguration
Remove-CsWebServiceConfiguration
Set-CsWebServiceConfiguration
minutes to read • Edit Online

Get-CsWindowsService
In ths Article

Get-CsWindowsService returns detailed information about Skype for Business Server components that run as
Windows services. This cmdlet was introduced in Lync Server 2010.

Syntax
Get-CsWindowsService [[-Name] <String>] [-ComputerName <String>] [-ExcludeActivityLevel] [-Report <String>]
[<CommonParameters>]

Description
Many Skype for Business Server components run as standard Windows services; for example, the Skype for
Business Server Conferencing Attendant application is actually a service named RTCCAA. The Get-
CsWindowsService cmdlet enables you to retrieve detailed information about these Skype for Business Server
services and only these services. That's because the cmdlet has been designed to ignore any service that is not part
of Skype for Business Server.
The fact that the Get-CsWindowsService cmdlet automatically filters out non-Skype for Business Server services is
one advantage the cmdlet offers over the generic Get-Service cmdlet that ships as part of Windows PowerShell. In
addition to that, there is another reason to use the Get-CsWindowsService cmdlet if you need to retrieve
information for a Skype for Business Server service: the Get-CsWindowsService cmdlet returns useful data that the
Get-Service cmdlet does not return. For example, when returning information about the Skype for Business Server
Conferencing Attendant service, the Get-CsWindowsService cmdlet reports back the number of concurrent calls
being handled by the service (the service activity level). The Get-Service cmdlet does not.
By default the Get-CsWindowsService cmdlet runs against the local computer. However, by including the
ComputerName parameter you can return information about the Skype for Business Server services running on a
remote computer.

Examples
-------------------------- Example 1 ------------------------

Get-CsWindowsService

The command shown in Example 1 returns information about all the Skype for Business Server services installed
on the local computer. This is done by calling the Get-CsWindowsService cmdlet without any parameters.
-------------------------- Example 2 ------------------------

Get-CsWindowsService | Format-List

Example 2 also returns information about the Skype for Business Server services on the local computer; in this
case, however, the data is displayed in list format. (Among other things, this enables you to view all the property
values for each service. In the default, tabular view, only a subset of property values is displayed.) To carry out this
task, the Get-CsWindowsService cmdlet is first called, then the resulting information is piped to the Format-List
cmdlet.
-------------------------- Example 3 ------------------------

Get-CsWindowsService -Name "RTCSrv"

Example 3 returns information for a single Skype for Business Server service: the service with the name RTCSrv.
-------------------------- Example 4 ------------------------

Get-CsWindowsService -Name "RTCSrv" | Select-Object -ExpandProperty RoleName

In Example 4, detailed information is displayed for all the service roles handled by the RTCSrv service. To perform
this task, the Get-CsWindowsService cmdlet is first used to return information about the RTCSrv service. This
information is then piped to the Select-Object cmdlet, which uses the ExpandProperty parameter to display all the
roles handled by the RTCSrv service. Note that this command will return an error message if a service does not
have a role name.
-------------------------- Example 5 ------------------------

Get-CsWindowsService -Computer atl-cs-001.litwareinc.com

The command shown in Example 5 returns information about the Skype for Business Server services installed on
the remote computer atl-cs-001.litwareinc.com. This is done by including the ComputerName parameter followed
by the FQDN of the remote computer.
-------------------------- Example 6 ------------------------

Get-CsWindowsService -Report C:\Logs\Services.html

Example 6 returns information about all the Skype for Business Server services installed on the local computer. In
addition, the Report parameter is included in order to save error information to a file named C:\Logs\Services.html.
If the Get-CsWindowsService cmdlet encounters any problems in retrieving service data, information about that
problem will be recorded in Services.html.
-------------------------- Example 7 ------------------------

Get-CsWindowsService | Where-Object {$_.Status -eq "Running"}

In Example 7, information is returned only for the Skype for Business Server services on the local computer that
are currently running. To accomplish this, the command first calls the Get-CsWindowsService cmdlet to return a
collection of all the Skype for Business Server services, running or not running. This collection is then piped to the
Where-Object cmdlet, which picks out only those services where the Status property is equal to Running.
-------------------------- Example 8 ------------------------

Get-CsWindowsService | Where-Object {$_.DisplayName -like "*Application Sharing*"}

Example 8 shows how you can retrieve information for a particular service even if you do not know the actual
name of that service (in this case, RTCASMCU ). To perform this task, the Get-CsWindowsService cmdlet is first
called without any parameters; that returns a collection of all the Skype for Business Server services on the local
computer. This collection is then piped to the Where-Object cmdlet, which selects the one service where the
DisplayName property includes (-like) the string value "Application Sharing". The end result: information is
displayed for the Skype for Business Server Application Sharing Conferencing service.
-------------------------- Example 9 ------------------------

Get-CsWindowsService | Where-Object {$_.RoleName -contains "ApplicationServer"}

Example 9 returns information about any services that host the Application Server role. To do this, the command
first calls the Get-CsWindowsService cmdlet to return a collection of all the Skype for Business Server services on
the local computer. This collection is then piped to the Where-Object cmdlet, which selects those services where the
RoleName property includes (-contains) ApplicationServer.

Parameters
-ComputerName
Name of the remote computer from which service information is to be retrieved; if this parameter is not included,
the Get-CsWindowsService cmdlet will return information about the Skype for Business Server services running
on the local computer. The remote computer should be referenced by using its fully qualified domain name
(FQDN ); for example, atl-mcs-001.litwareinc.com.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeActivityLevel
If included, this parameter causes the Get-CsWindowsService cmdlet to return only the service status and not the
service activity level.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name of the service you want to return information for. Note that you must use the service name (for example,
RTCCAA) and not the service display name. You can only pass a single service name to the Name parameter; in
addition you cannot use wildcards in the service name.
Note, too that the Get-CsWindowsService cmdlet can only return information for Skype for Business Server
services; you cannot use this cmdlet to return information for other Windows services. For those services, you
might be able to use the Windows PowerShell Get-Service cmdlet.
If you do not include this parameter, the Get-CsWindowsService cmdlet will return information about all your
Skype for Business Server services.
Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Path to an HTML file where error information can be stored. If this parameter is included, any errors that occur
during the running of this cmdlet will be logged to the specified file (for example, C:\Logs\Service_report.html).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsWindowsService cmdlet does not accept pipelined input.

Outputs
The Get-CsWindowsService cmdlet returns instances of the
Microsoft.Rtc.Management.Deployment.Core.NTService object.

Related Links
Start-CsWindowsService
Stop-CsWindowsService
minutes to read • Edit Online

Get-CsXmppAllowedPartner
In ths Article

Returns information about XMPP partners authorized to communicate with your organization. The extensible
Messaging and Presence Protocol (XMPP ) is an open-standard communications protocol for exchanging messages
using XML. Allowed partners are IM and presence providers that have been authorized to exchange instant
messages and presence information with your Skype for Business Server users. This cmdlet was introduced in Lync
Server 2013.

Syntax
Get-CsXmppAllowedPartner [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsXmppAllowedPartner [[-Identity] <XdsGlobalRelativeIdentity>] [-LocalStore] [<CommonParameters>]

Description
The Extensible Messaging and Presence Protocol (XMPP ) is a standard communications protocol (based on XML )
used for sending messages across the Internet. XMPP was originally named Jabber, and is supported by a number
of Internet messaging and communication applications, including Google Talk and Facebook Chat.
In order for your users to be able to exchange instant messages and presence information with users on an XMPP
network, that network must be configured as an XMPP allowed partner. (You must also assign your users an
external access policy that allows XMPP access.) By design, your users will be allowed to communicate with users
on any XMPP network that is listed on the allowed partners list. If you do not want users communicating with users
from a given network then you must delete that network from the allowed partners list.
To view information about your XMPP allowed partners in the Skype for Business Server Control Panel, click
External User Access and then click XMPP Federated Partners.

Examples
-------------------------- Example 1 --------------------------

Get-CsXmppAllowedPartner

The command shown in Example 1 returns information about all the XMPP allowed partners configured for use in
the organization.
-------------------------- Example 2 --------------------------

Get-CsXmppAllowedPartner -Identity "xmpp.contoso.com"

In Example 2, information is returned for a single XMPP allowed partner: the partner with the Identity
xmpp.contoso.com.
-------------------------- Example 3 --------------------------

Get-CsXmppAllowedPartner - Filter "*.org"

Example 3 returns information for all the XMPP allowed partners that have an Identity that ends in the string value
".org" (for example, xmpp.contoso.org and xmpp.fabrikam.org).
-------------------------- Example 4 --------------------------

Get-CsXmppAllowedPartner | Where-Object {$_.SaslNegotiation -eq "Required"}

The command shown in Example 4 returns information about all the XMPP allowed partners where Simple
Authentication and Security Layer negotiation is required. In order to do this, the command first uses the Get-
CsXmppAllowedPartner cmdlet to return information about all the allowed XMPP allowed partners. The returned
partners are then piped to the Where-Object cmdlet, which selects only those partners where the SaslNegotiation
property is equal to Required.

Parameters
-Filter
Enables you to use wildcards when specifying the Identities of the XMPP allowed partner (or partners) to be
returned. For example the filter value "*.org" returns a collection of all the XMPP allowed partners that have an
Identity that ends with the string value ".org".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the XMPP allowed partner to be returned (for example, fabrikam.com). If
neither this parameter nor the Filter parameter is specified, then all the XMPP partners configured for use in your
organization are returned.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the XMPP allowed partner data from the local replica of the Central Management store rather than from
the Central Management store itself.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsXmppAllowedPartner cmdlet does not accept pipelined input.

Outputs
The Get-CsXmppAllowedPartner cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner#Decorated object.

Related Links
New -CsXmppAllowedPartner
Remove-CsXmppAllowedPartner
Set-CsXmppAllowedPartner
minutes to read • Edit Online

Get-CsXmppGatewayConfiguration
In ths Article

Returns information about the XMPP gateway configuration settings in use in the organization. The extensible
Messaging and Presence Protocol (XMPP ) is an open-standard communications protocol for exchanging messages
using XML. XMPP gateways enable Skype for Business Server users to exchange instant message and presence
information with users belonging to IM and presence providers that employ XMPP. This cmdlet was introduced in
Lync Server 2013.

Syntax
Get-CsXmppGatewayConfiguration [-Filter <String>] [-LocalStore] [<CommonParameters>]

Get-CsXmppGatewayConfiguration [[-Identity] <XdsIdentity>] [-LocalStore] [<CommonParameters>]

Description
The Extensible Messaging and Presence Protocol (XMPP ) is a standard communications protocol (based on XML )
used for sending messages across the Internet. XMPP was originally named Jabber, and is supported by a number
of Internet messaging and communication applications, including Google Talk and Facebook Chat.
The XMPP gateway that enables Skype for Business to communicate with users on an XMPP network was
originally released as an add-on to Microsoft Lync Server 2010; in Skype for Business Server, this functionality is
built into the software. This means that your users can communicate with XMPP users provided that you:
Configure the XMPP gateway settings.
Configure the other XMPP network (for example, Google Talk) as an allowed XMPP partner.
Note that Skype for Business Server provides only a single, global set of XMPP configuration settings: you cannot
selectively enable or disable XMPP for a given site or a given Registrar pool. In fact you cannot enable or disable
XMPP at all: XMPP is always enabled. If you do not want users communicating with XMPP networks then you
should remove all the allowed XMPP partners. Users can only communicate with an XMPP network if that network
has been configured as an allowed partner.
Skype for Business Server Control Panel: The functions carried out by the Get-CsXmppGatewayConfiguration
cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Get-CsXmppGatewayConfiguration

In Example 1, information is returned for the XMPP gateway settings currently in use in the organization. Because
Skype for Business Server 2015 only allows for a single, global collection of gateway settings you do not need to
include the Identity parameter in order to get back information for the global settings.

Parameters
-Filter
Enables you to use wildcard values when referencing a collection of XMPP gateway configuration settings. Because
you can only have a single, global instance of these settings there is no reason to use the Filter parameter. However,
if you prefer you can use the following syntax to reference the global settings:
-Filter "g*"
That syntax brings back all the XMPP gateway configuration settings that have an Identity that begins with the
letter "g".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the XMPP gateway configuration settings. Because you can only have a single, global instance
of these settings, you do not need to specify an Identity when calling the Get-CsXmppGatewayConfiguration
cmdlet. If you prefer, however, you can use the following syntax to reference the global settings:
-Identity global

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves the XMPP gateway data from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsXmppGatewayConfiguration cmdlet does not accept pipelined input.

Outputs
The Get-CsXmppGatewayConfiguration cmdlet returns instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppGatewaySettings object.

Related Links
Set-CsXmppGatewayConfiguration
minutes to read • Edit Online

Grant-CsArchivingPolicy
In ths Article

Enables you to assign instant messaging (IM ) session archiving policies to users or sets of users. These policies give
you the ability to archive all IM sessions that take place between internal users, and/or to archive all IM sessions
that take place between internal users and external partners. This cmdlet was introduced in Lync Server 2010.

Syntax
Grant-CsArchivingPolicy [-Identity] <UserIdParameter> [[-PolicyName] <String>] [-DomainController <Fqdn>]
[-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Many organizations find it useful to keep an archive of all the IM sessions that their users take part in; other
organizations are legally required to keep such an archive. In order to archive IM sessions with Skype for Business
Server, you must perform two steps. First, you need to enable archiving at the global and/or the site scope by using
the Set-CsArchivingConfiguration cmdlet. This gives you the ability to archive IM sessions; however, it does not
automatically begin archiving those sessions.
To actually save transcripts of your IM sessions, you must complete step 2: create one or more IM session archiving
policies. These policies determine which users will have their IM sessions recorded as well as which type of IM
sessions (internal and/or external) will be archived. Internal IM sessions are sessions where all the participants are
authenticated users who have Active Directory accounts within your organization. By comparison, external IM
sessions are sessions where at least one participant is an unauthenticated user who does not have an Active
Directory account within your organization. You can choose to archive only internal sessions, only external sessions,
or both internal and external sessions.
Archiving policies can be assigned to the global scope or to the site scope. In addition, these policies can be
assigned to the per-user scope and then applied to a specific user or a specific set of users. For example, suppose
your global policy only archives only internal IM sessions. In that case, you might create a second policy, one that
archives both internal and external sessions and apply that policy only to your sales staff. Because per-user policies
take precedence over global and site policies, members of the sales staff will have all their IM sessions archived.
Other users (users who are not part of the sales department and are not affected by the sales policy) will have only
their internal IM sessions archived.
The Grant-CsArchivingPolicy cmdlet is used to assign per-user archiving policies to a user or specified set of users.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsArchivingPolicy -Identity "Ken Myer" -PolicyName RedmondArchivingPolicy

In Example 1, the archiving policy RedmondArchivingPolicy is assigned to the user with the display name "Ken
Myer". Note that, with the Grant-CsArchivingPolicy cmdlet, the Identity property refers to the Identity of the user,
not the Identity of the archiving policy. Instead, the policy to be assigned is specified by using the PolicyName
parameter; the parameter value is the policy Identity (minus the "tag:" prefix).
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -OU "OU=Redmond,dc=litwareinc,dc=com" | Grant-CsArchivingPolicy -PolicyName RedmondArchivingPolicy

In Example 2, all of the users with accounts in the Redmond organizational unit (OU ) are assigned the archiving
policy RedmondArchivingPolicy. To do this, the Get-CsUser cmdlet and the OU parameter are used to return a
collection of all the users who have accounts in the OU with the distinguished name
"OU=Redmond,dc=litwareinc,dc=com". This collection is then piped to the Grant-CsArchivingPolicy cmdlet, which
assigns the policy RedmondArchivingPolicy to each user in the collection.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUser -LdapFilter "l=Redmond" | Grant-CsArchivingPolicy -PolicyName RedmondArchivingPolicy

The command shown in Example 3 assigns the policy RedmondArchivingPolicy to all the users who work in
Redmond. To carry out this task, the Get-CsUser cmdlet is called along with the LdapFilter parameter; the LDAP
filter value "l=Redmond" returns a collection of all the users who work in the city of Redmond. (In the LDAP query
language, l, a lowercase L, is short for "locality", or city.) This collection is then piped to the Grant-CsArchivingPolicy
cmdlet, which assigns the RedmondArchivingPolicy policy to each user in the collection.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -Filter {RegistrarPool -eq "atl-cs-001.litwareinc.com"} | Grant-CsArchivingPolicy -PolicyName


RedmondArchivingPolicy

In Example 4 all the users homed on the Registrar pool atl-cs-001.litwareinc.com are assigned the policy
RedmondArchivingPolicy. To do this, the Get-CsUser cmdlet is first used to return all the users who have been
enabled for Skype for Business Server. This collection is then piped to the Where-Object cmdlet, which selects only
those users who have a RegistrarPool that is equal to atl-cs-001-litwareinc.com. This filtered collection is then piped
to the Grant-CsArchivingPolicy cmdlet, which assigns the policy RedmondArchivingPolicy to each user in the
collection.
-------------------------- EXAMPLE 5 --------------------------

Get-CsUser -Filter {ArchivingPolicy -eq "RedmondArchivingPolicy"} | Grant-CsArchivingPolicy -PolicyName


"NorthAmericaArchivingPolicy"

Example 5 locates all the users who have been assigned the policy RedmondArchivingPolicy and then assigns each
of these users a different policy: NorthAmericaArchivingPolicy. To perform this task, the Get-CsUser cmdlet is used
to return a collection of all the users who have been enabled for Skype for Business Server; the Filter parameter
and the filter value {ArchivingPolicy -eq "RedmondArchivingPolicy"} limit the returned data to accounts where the
ArchivingPolicy is equal to "RedmondArchivingPolicy". The filtered collection is then piped to the Grant-
CsArchivingPolicy cmdlet, which assigns the policy NorthAmericaArchivingPolicy to each user in the collection.
-------------------------- EXAMPLE 6 --------------------------

Get-CsUser -Filter {ArchivingPolicy -eq "RedmondArchivingPolicy"} | Grant-CsArchivingPolicy -PolicyName $Null

Example 6 is a variation of Example 5. This time, however, the policy RedmondArchivingPolicy is unassigned from
all the users who were previously assigned that policy: calling the Grant-CsArchivingPolicy cmdlet with a
PolicyName equal to $Null removes any previously assigned per-user policies.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify a domain controller to connect to when assigning the policy. If this parameter is not included
then the cmdlet will use the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified by using
one of four formats: 1) The user's SIP address; 2) the user principal name (UPN ); 3) the user's domain name and
logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory
distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users who have a display name that ends in the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By
default, the Grant-CsArchivingPolicy cmdlet does not pass objects through the pipeline.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the scope designator
"tag:". For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondArchivingPolicy has a PolicyName equal to RedmondArchivingPolicy.
To remove a per-user policy that has been assigned to a user, set PolicyName to a null value:
-PolicyName $Null

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Grant-CsArchivingPolicy
cmdlet accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
The Grant-CsArchivingPolicy cmdlet does not return a value or object. Instead, the cmdlet assigns instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.IM.ImArchivingPolicy object to users or groups of users.
However, if you include the PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact.

Related Links
Get-CsArchivingPolicy
New -CsArchivingPolicy
Remove-CsArchivingPolicy
Set-CsArchivingPolicy
minutes to read • Edit Online

Grant-CsBroadcastMeetingPolicy
In ths Article

Use the Grant-CsBroadcastMeetingPolicy cmdlet to assign a broadcast meeting policy to a user.

Syntax
Grant-CsBroadcastMeetingPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Broadcast meeting functionality is managed by broadcast meeting configurations at the tenant level, and broadcast
meeting policies at the user level. Broadcast meeting policies are predefined in Skype for Business. The defined
settings for each policy can be displayed by using the Get-CsBroadcastMeetingPolicy cmdlet with no parameters.
New policies can't be created, and existing policies can't be modified. They can only be granted, or assigned to
users.

Examples
-------------------------- Example 1 --------------------------

Grant-CsBroadcastMeetingPolicy -Identity jphillips@contoso.com -PolicyName BroadcastMeetingPolicyAllEnabled

This example grants the BroadcastMeetingPolicyAllEnabled policy to a user identified by User Principal Name
(UPN.)

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the target user. Acceptable values include:
Example: jphillips@contoso.com
Example: sip:jphillips@contoso.com
Example: 98403f08-577c-46dd-851a-f0460a13b03d

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being assigned the policy.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
Specifies the name of the policy to be assigned to a user. A list of the policies for your organization can be retrieved
using Get-CsBroadcastMeetingPolicy. The PolicyName is the policy identity minus the policy scope (the "tag:"
prefix). For example, a policy with the identity "Tag:BroadcastMeetingPolicyDisabled" has a PolicyName equal to
"BroadcastMeetingPolicyDisabled". To unassign a previously assigned policy, set PolicyName to $Null.
Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
minutes to read • Edit Online

Grant-CsCallerIdPolicy
In ths Article

Provide the topic introduction here.

Syntax
Grant-CsCallerIdPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Online )

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DomainController
PARAMVALUE: Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: UserIdParameter

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
PARAMVALUE: String

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Grant-CsCallingLineIdentity
In ths Article

Use the `Grant-CsCallingLineIdentity` cmdlet to apply a Caller ID policy to a user account.

Syntax
Grant-CsCallingLineIdentity [[-Identity] <UserIdParameter>] [[-PolicyName] <String>] [-Confirm] [-
DomainController <Fqdn>] [-PassThru] [-Tenant <Guid>] [-WhatIf] [-AsJob] [<CommonParameters>]

Description
You can either change or block the Caller ID (also called a Calling Line ID ) for a user. By default, the Skype for
Business Online user's phone number can be seen when that user makes a call to a PSTN phone, or when a call
comes in. You can create a Caller ID policy to provide an alternate displayed number, or to block any number from
being displayed; you can then apply the Caller ID policy to a specific user.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Grant-CsCallingLineIdentity -Identity "Ken Myer" -PolicyName CallerIDRedmond

This example assigns the Caller ID policy with the Identity CallerIDRedmond to the user with the display name Ken
Myer.
-------------------------- Example 2 --------------------------

Grant-CsCallingLineIdentity -PolicyName Anonymous -Identity "amos.marble@contoso.com"

This example grants the Caller ID policy "Anonymous" to the user Amos Marble.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity (unique identifier) of the user to whom the policy is being assigned. User Identities can be specified
using one of the following formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); or, 3) the
user's Active Directory display name (for example, Ken Myer).
You can use the asterisk (*) wildcard character when using the Display Name as the user Identity. For example, the
Identity "*Smith" returns all the users who have a display name that ends with the string value "Smith".

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Returns the results of the command. By default, this cmdlet does not generate any output.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The name (Identity) of the Caller ID policy to be assigned to the user. (Note that this includes only the name portion
of the Identity. Per-user policy identities include a prefix of tag: that should not be included with the PolicyName).

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Set-CsCallingLineIdentity
Get-CsCallingLineIdentity
Remove-CsCallingLineIdentity
New -CsCallingLineIdentity
minutes to read • Edit Online

Grant-CsCallViaWorkPolicy
In ths Article

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.

Syntax
Grant-CsCallViaWorkPolicy [-Identity] <UserIdParameter> [-PolicyName] <String> [-Confirm]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Server 2015)

Grant-CsCallViaWorkPolicy -Identity "Ken Myer" -PolicyName StandardUserCvW

This example assigns the policy named "StandardUserCvW" to "Ken Myer".

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify the fully qualified domain name (FQDN ) of a domain controller to be contacted when
assigning the new policy. If this parameter is not specified, then the Grant-CsCallViaWorkPolicy cmdlet will contact
the first available domain controller.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies a unique identifier of the user account the policy should be assigned to. User identities can be specified by
using one of four formats.
SIP address
User Principal Name (UPN )
Domain name and logon name, in the form domain\logon
Active Directory display name (Ken Myer), or distinguished name
In addition, you can use the asterisk () wildcard character when using the display name as the user Identity. For
example, the Identity " Smith" grants the policy all users who have a display name that ends in the string value "
Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsCallViaWorkPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope
("tag:"). A policy that has an identity of "Tag:Redmond" has a PolicyName of "Redmond". A policy with the identity
"Tag:RedmondCalloutPolicy" has a PolicyName of "RedmondCalloutPolicy". If you set PolicyName to a null value,
then the command will unassign any individual policy assigned to the user. For example:
Grant-CsCallViaWorkPolicy -Identity "Ken Myer" -PolicyName $Null

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
None.

Related Links
Remove-CsCallViaWorkPolicy
Set-CsCallViaWorkPolicy
New -CsCallViaWorkPolicy
Get-CsCallViaWorkPolicy
minutes to read • Edit Online

Grant-CsClientPolicy
In ths Article

Assigns a client policy to a user or a group of users. Among other things, client policies help determine the features
of Skype for Business Server that are available to users; for example, you might give some users the right to
transfer files while denying this right to other users. This cmdlet was introduced in Lync Server 2010.

Syntax
Grant-CsClientPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsClientPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>] [-PassThru]


[-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Client policies are applied each time a user accesses the system, regardless of where the user logs on from and
regardless of the type of device the user logs on with. In addition, client policies, like other Skype for Business
Server policies, can readily be targeted to selected groups of users. You can even create a custom policy that gets
assigned to a single user.
Client policies can be configured at the global, site, and per-user scopes. In order to assign per-user policies to
users, you must use the Grant-CsClientPolicy cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsClientPolicy -Identity "Ken Myer" -PolicyName SalesPolicy

In Example 1, the client policy SalesPolicy is assigned to the user with the Identity Ken Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -LDAPFilter "Department=Sales" | Grant-CsClientPolicy -PolicyName SalesPolicy

In Example 2, all the users who belong to the Sales department are assigned the SalesPolicy client policy. The
command first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a collection of all the users who
are members of the Sales department. This collection of users is then piped to the Grant-CsClientPolicy cmdlet,
which assigns the policy SalesPolicy to each user in the collection.
-------------------------- EXAMPLE 3 --------------------------
Get-CsUser -LDAPFilter "(&(Title=Accountant)(l=Redmond))" | Grant-CsClientPolicy -PolicyName
RedmondAccountingPolicy

In Example 3, the client policy RedmondAccountingPolicy is assigned to all the users who meet two criteria: 1) the
user must have the job title Accountant; and, 2) the user must work in the city of Redmond. To do this, the
command first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a collection of all the users who
work in Redmond and have the job title Accountant. The filter value "(&(Title=Accountant)(l=Redmond))" limits the
returned data to users who have the job title Accountant (Title=Accountant) and (&) who work in Redmond
(l=Redmond). (The "l" is a lowercase L, and represents the user's locality.)

The resulting collection is then piped to the Grant-CsClientPolicy cmdlet, which assigns the policy
RedmondAccountingPolicy to each user in the collection.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -LdapFilter "(|(Title=Accountant)(Title=Senior Accountant))" | Grant-CsClientPolicy -PolicyName


AccountingPolicy

Example 4 assigns the policy AccountingPolicy to all the users who meet one of two criteria: either the user has the
job title Accountant or the user has the job title Senior Accountant. To carry out this task, the Get-CsUser cmdlet
and the LdapFilter parameter are used to return a collection of users with the job title Accountant or Senior
Accountant. The filter value "(|(Title=Accountant)(Title=Senior Accountant))" limits the returned data to users with
the job title Accountant (Title=Accountant) or (|) users with the job title Senior Accountant (Title=Senior
Accountant). This filtered collection is then piped to the Grant-CsClientPolicy cmdlet, which assigns the client policy
AccountingPolicy to each user in the collection.
-------------------------- EXAMPLE 5 --------------------------

Get-CsUser -Filter {RegistrarPool -eq "atl-cs-001.litwareinc.com"} | Grant-CsClientPolicy -PolicyName


AtlantaBranchPolicy

In Example 5 all the users with accounts on the Registrar pool atl-cs-001.litwareinc.com are assigned the client
policy AtlantaBranchPolicy. To do this, the Get-CsUser cmdlet is first called to return the appropriate user accounts;
the Filter parameter and the filter value {RegistrarPool -eq "atl-cs-001.litwareinc.com"} ensure that only user
accounts homed on the Registrar pool atl-cs-001.litwareinc.com will be returned. This collection is then piped to the
Grant-CsClientPolicy cmdlet, which assigns each user the client policy AtlantaBranchPolicy.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify a domain controller to connect to when assigning the policy. If this parameter is not included
then the cmdlet will use the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified by using
one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name
and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory
distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users who have a display name that ends in the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By
default, the Grant-CsClientPolicy cmdlet does not pass objects through the pipeline.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:").
For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy.
If you set PolicyName to a null value, then the command will unassign any per-user policy assigned to the user. For
example:
Grant-CsClientPolicy -Identity "Ken Myer" -PolicyName $Null

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose hybrid configuration settings are being returned. For
example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return your tenant ID by running this command:


Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Grant-CsClientPolicy cmdlet
accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
By default, the Grant-CsClientPolicy cmdlet returns no objects or values. However, if you include the PassThru
parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.

Related Links
Get-CsClientPolicy
New -CsClientPolicy
Remove-CsClientPolicy
Set-CsClientPolicy
minutes to read • Edit Online

Grant-CsClientVersionPolicy
In ths Article

Assigns a client version policy at the global, site, service, or per-user scope. Client version policies enable you to
specify which clients (such as Microsoft Office Communicator 2007 R2) will be able to log on to your Skype for
Business Server system. This cmdlet was introduced in Lync Server 2010.

Syntax
Grant-CsClientVersionPolicy [-Identity] <UserIdParameter> [[-PolicyName] <String>] [-PassThru] [-WhatIf]
[-Confirm] [-DomainController <Fqdn>] [<CommonParameters>]

Description
Client version policies represent a collection of client version rules; in turn, client version rules are used to
determine which client applications are allowed to log on to Skype for Business Server. When a user attempts to
log on to Skype for Business Server his or her client application sends a SIP header to the server; this header
includes detailed information about the application itself, including the software's major version, minor version, and
build number. The version information included in the SIP header is then checked against a collection of client
version rules to see if any rules apply to that particular application. If such a rule exists, Skype for Business Server
will then take the action specified by the rule. For example, the rule might tell Skype for Business Server to allow
the logon, to block it, or to allow the logon but then silently update the client application to the latest version (for
example, update Office Communicator 2007 R2 to Skype for Business).
Client version policies, which can be applied at the global scope, the site scope, the service scope (Registrar service
only), or the per-user scope, give you flexibility in determining which client applications can be used to access the
system. For example, you might want to prevent users from logging on to Skype for Business Server by using
Communicator 2007 R2 because this older client application does not support the same features and capabilities as
Skype for Business. However, due to hardware or software conflicts, you might also have a select group of users
who cannot upgrade to Skype for Business. In that case, you can create a separate rule -- and a separate client
version policy -- that allows those users to log on from within Communicator 2007 R2.
The Grant-CsClientVersionPolicy cmdlet enables you to assign client version policies to individual users. When you
create a per-user policy, that policy is not automatically assigned to anyone; assignment does not take place until
you call the Grant-CsClientVersionPolicy cmdlet to explicitly assign the policy to a user or set of users.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.

Examples
-------------------------- EXAMPLE 1 --------------------------
Grant-CsClientVersionPolicy -Identity "Ken Myer" -PolicyName "RedmondClientVersionPolicy"

In Example 1, the client version policy RedmondClientVersionPolicy is assigned to user Ken Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -LdapFilter "l=Redmond" | Grant-CsClientVersionPolicy -PolicyName "RedmondClientVersionPolicy"

The command shown in Example 2 assigns the client version policy RedmondClientVersionPolicy to all the users
who work in the city of Redmond. To do this, the command first uses the Get-CsUser cmdlet and the LdapFilter
parameter to retrieve the appropriate collection of user accounts; the filter value "l=Redmond" (where "l" is the
lowercase letter L, the LDAP attribute name for "locality") limits data retrieval to users who work in the city of
Redmond. This collection is then piped to the Grant-CsClientVersionPolicy cmdlet, which assigns the specified
policy to each user in the collection.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUser -OU "ou=Redmond,ou=North America,dc=litwareinc,dc=com" | Grant-CsClientVersionPolicy -PolicyName


"RedmondClientVersionPolicy"

In Example 3, all the users in a specific organizational unit (OU ) are assigned the client version policy
RedmondClientVersionPolicy. To accomplish this task, the command first calls the Get-CsUser cmdlet and the OU
parameter; the parameter value represents the distinguished name of the OU in which users are to be assigned the
client version policy (ou=Redmond,ou=North America,dc=litwareinc,dc=com). After the user accounts have been
retrieved, the collection is piped to the Grant-CsClientVersionPolicy cmdlet, which assigns
RedmondClientVersionPolicy to each of those users.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -Filter {VoicePolicy -eq "RedmondVoicePolicy"} | Grant-CsClientVersionPolicy -PolicyName


"RedmondClientVersionPolicy"

Example 4 assigns the client version policy RedmondClientVersionPolicy to all of the users who have previously
been assigned the voice policy RedmondVoicePolicy. To do this, the command first calls the Get-CsUser cmdlet
along with the Filter parameter; the filter value {VoicePolicy -eq "RedmondVoicePolicy"} ensures that the only user
accounts returned are those where the VoicePolicy property is equal to "RedmondVoicePolicy". The resulting user
accounts are then piped to the Grant-CsClientVersionPolicy cmdlet and assigned the client version policy
RedmondClientVersionPolicy.
-------------------------- EXAMPLE 5 --------------------------

Get-CsUser | Grant-CsClientVersionPolicy -PolicyName $Null

In Example 5, all the users in the organization are unassigned any per-user client version policies previously
assigned to them. To do this, the command first uses the Get-CsUser cmdlet to return a collection of all the users in
the organization who have been enabled for Skype for Business Server. This collection is then piped to the
Remove-CsClientVersionPolicy cmdlet, which removes any per-user client version policies assigned to those users.
This is done by setting the parameter value of PolicyName to $null.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify a domain controller to connect to when assigning the policy. If this parameter is not
included, then the cmdlet will use the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified by using
one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name
and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory
distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users who have a display name that ends with the string value "
Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By
default, the Grant-CsClientVersionPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:").
For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity
tag:RedmondClientVersionPolicy has a PolicyName equal to RedmondClientVersionPolicy. To unassign a per-user
policy previously assigned to a user, set the PolicyName to a null value ($null).

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Grant-CsClientVersionPolicy
cmdlet accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
By default, the Grant-CsClientVersionPolicy cmdlet does not return objects or values. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.

Related Links
Get-CsClientVersionPolicy
New -CsClientVersionPolicy
Remove-CsClientVersionPolicy
Set-CsClientVersionPolicy
minutes to read • Edit Online

Grant-CsCloudMeetingPolicy
In ths Article

Grants Skype Meetings polices for a user.

Syntax
Grant-CsCloudMeetingPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The Grant-CsCloudMeetingPolicy cmdlet enables or disables automatic scheduling of Skype Meetings features for
a specified user. The default is disbaled.
To enable automatic scheduling for all users in a tenant, use the Set-CsCloudMeetingPolicy cmdlet.
Note that the policies to use this cmdlet are not available unless the Set-CsCloudMeetingConfiguration cmdlet has
been run to enable Skype Meetings polices for a tenant.

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Online )

Grant-CsCloudMeetingPolicy -PolicyName AutoScheduleEnabled -Identity "JaneC"

This example enables Skype Meetings automatic scheduling for a user.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter are either the fully qualified domain name (FQDN ) or the computer name.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the hybrid public switched telephone network (PSTN ) site. For example:
-Identity "SeattlePSTN".

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
@{Text=}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
Specifes the policy for all users automatic Skype Meeting Ready scheduling. Can be either AutoScheduleEnabled or
AutoScheduleDisabled.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online,
you do not have to include the Tenant parameter. The tenant ID will be determined by your connection and
credentials. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Grant-CsConferencingPolicy
In ths Article

Assigns a conferencing policy at the per-user scope. Conferencing policies determine the features and capabilities
that can be used in a conference. This includes everything from whether or not the meeting can include IP audio
and video to the maximum number of people who can attend a meeting. This cmdlet was introduced in Lync Server
2010.

Syntax
Grant-CsCloudMeetingPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Conferencing is an important part of Skype for Business Server : conferencing enables groups of users to come
together online to view slides and video, share applications, exchange files, and otherwise communicate and
collaborate.
It's important for administrators to maintain control over conferences and conference settings. In some cases, there
might be security concerns: by default, anyone, including unauthenticated users, can participate in meetings and
save any of the slides or handouts distributed during those meetings. In other cases, there might be bandwidth
concerns: having a multitude of simultaneous meetings, each involving hundreds of participants and each featuring
video feeds and file sharing, has the potential to cause problems with your network. In addition, there might be
occasional legal concerns. For example, by default meeting participants are allowed to make annotations on shared
content; however, these annotations are not saved when the meeting is archived. If your organization is required to
keep a record of all electronic communication, you might need to disable annotations.
Of course, needing to manage conferencing settings is one thing; actually managing these settings is another. In
Skype for Business Server conferences are managed by using conferencing policies. (In previous versions of the
software, these were known as meeting policies.) As noted, conferencing policies determine the features and
capabilities that can be used in a conference, including everything from whether or not the conference can include
IP audio and video to the maximum number of people who can attend a meeting. Conferencing policies can be
configured at the global scope, at the site scope, or at the per-user scope. This provides administrators with
enormous flexibility when it comes to deciding which capabilities will be made available to which users.
When you create a site policy that policy is automatically assigned to the appropriate site at the time of creation.
This is not the case with per-user policies: per-user policies are not assigned to anyone at the time they are created.
Instead, you must use the Grant-CsConferencingPolicy cmdlet to explicitly assign per-user conferencing policies to
a user or set of users.

Examples
-------------------------- EXAMPLE 1 --------------------------
Grant-CsConferencingPolicy -identity "Ken Myer" -PolicyName SalesConferencingPolicy

In Example 1, the Grant-CsConferencingPolicy cmdlet is used to assign the policy SalesConferencingPolicy to the
user with the Identity "Ken Myer".
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -OU "ou=Finance,dc=litwareinc,dc=com" | Grant-CsConferencingPolicy -PolicyName


FinanceConferencingPolicy

In Example 2, the conferencing policy FinanceConferencingPolicy is assigned to all the users who have accounts in
the Finance organizational unit. To assign the same policy to all the users in a given organizational unit (OU ), the
Get-CsUser cmdlet is used to retrieve all the accounts in that OU. After the user accounts have been retrieved, that
information is then piped to the Grant-CsConferencingPolicy cmdlet, which assigns the FinanceConferencingPolicy
policy to each user in the collection.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUser -OU "ou=Finance,dc=litwareinc,dc=com" | Grant-CsConferencingPolicy -PolicyName $Null

Example 3 represents a variation of Example 2: in this case, however, any per-user conferencing policies previously
assigned to the users in the Finance OU are unassigned from these users. To do this, the command calls the Grant-
CsConferencingPolicy cmdlet and specifies a null value ($Null) as the parameter value for the parameter
PolicyName.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -LdapFilter "Department=Human Resources" | Grant-CsConferencingPolicy -PolicyName


HRConferencingPolicy

In Example 4, the policy HRConferencingPolicy is assigned to all the users who work in the Human Resource
Departments. This is done by calling the Get-CsUser cmdlet and the LdapFilter parameter to retrieve the
appropriate set of users; the parameter value "Department=Human Resources" limits the returned items to user
accounts where the Department attribute has been set to "Human Resources". After the user accounts have been
retrieved, that collection is piped to the Grant-CsConferencingPolicy cmdlet, which, assigns the policy
HRConferencingPolicy to each user in the collection.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify the fully qualified domain name (FQDN ) of a domain controller to be contacted when
assigning the new policy. If this parameter is not specified then the Grant-CsConferencingPolicy cmdlet will contact
the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using
one of four formats: 1) the user's SIP address; 2) the user principal name (UPN ); 3) the user's domain name and
logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory
distinguished name.
Note that you can use the asterisk () wildcard character when specifying the user Identity. For example, the Identity
" Smith" returns all the users with a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsConferencingPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy.
To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null.
Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. Grant-CsConferencingPolicy
accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Grant-CsConferencingPolicy
cmdlet accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
By default, Grant-CsConferencingPolicy returns no objects or values. However, if you include the PassThru
parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.

Outputs
System.Object
Outputs
By default, the Grant-CsConferencingPolicy cmdlet returns no objects or values. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.

Related Links
Get-CsConferencingPolicy
New -CsConferencingPolicy
Remove-CsConferencingPolicy
Set-CsConferencingPolicy
minutes to read • Edit Online

Grant-CsDialoutPolicy
In ths Article

Use the `Grant-CsDialoutPolicy` cmdlet to assign a per-user outbound calling restriction policy to one or more
users.

Syntax
Grant-CsDialoutPolicy [[-Identity] <UserIdParameter>] [[-PolicyName] <string>] [-Confirm] [-DomainController
<Fqdn>]
[-PassThru] [-Tenant <Guid>] [-WhatIf] [-AsJob] [<CommonParameters>]

Description
In Skype for Business Online, outbound calling restriction policies are used to restrict the type of audio
conferencing and end user PSTN calls that can be made by users in your organization. To get all the available
policies in your organization run Get-CSOnlineDialOutPolicy .

Examples
-------------------------- Example 1 --------------------------

PS C:\> Grant-CsDialoutPolicy -Identity "ken.myer@contoso.com" -PolicyName "DialoutCPCandPSTNInternational"

This example assigns the per-user outbound calling restriction policy DialoutCPCandPSTNInternational to the user
with the User Principal Name "ken.myer@contoso.com".
-------------------------- Example 2 --------------------------

PS C:\> Grant-CsDialoutPolicy -Identity "ken.myer@contoso.com" -PolicyName $Null

In this example, any per-user outbound calling restriction policy previously assigned to the user
ken.myer@contoso.com is unassigned from that user; as a result, Ken Myer will be managed by the global
outbound calling restriction policy. To unassign a per-user policy, set the PolicyName to a null value ($Null).
-------------------------- Example 3 --------------------------

PS C:\> Get-CsOnlineUser | Grant-CsDialoutPolicy -PolicyName "DialoutCPCInternationalPSTNDisabled"

This example assigns the per-user outbound calling restriction policy DialoutCPCInternationalPSTNDisabled to all
the users in your organization.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon
name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name
(for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished
name.

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Returns the results of the command. By default, this cmdlet does not generate any output.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy
with the Identity tag:RedmondPolicy has a PolicyName equal to RedmondPolicy.
To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null).

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object

Related Links
Get-CSOnlineDialOutPolicy
minutes to read • Edit Online

Grant-CsDialPlan
In ths Article

Assigns a dial plan to one or more users or groups. This cmdlet was introduced in Lync Server 2010.

Syntax
Grant-CsDialPlan [-Identity] <UserIdParameter> [[-PolicyName] <String>] [-DomainController <Fqdn>] [-PassThru]
[-WhatIf] [-Confirm] [-Tenant <Guid>] [-AsJob] [<CommonParameters>]

Description
This cmdlet assigns an existing user-specific dial plan to a user. Dial plans provide information required to enable
Enterprise Voice users to make telephone calls. Users who do not have a valid dial plan will not be enabled to make
calls by using Enterprise Voice. A dial plan determines such things as how normalization rules are applied and
whether a prefix must be dialed for external calls.
You can check whether a user has been granted a per-user dial plan by calling a command in this format:
Get-CsUser "\<user name\>" | Select-Object DialPlan. For example:

Get-CsUser "Ken Myer" | Select-Object DialPlan

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsDialPlan -Identity "Ken Myer" -PolicyName RedmondDialPlan

In the example, the Grant-CsDialPlan cmdlet is used to assign the dial plan RedmondDialPlan to the user with the
Identity (in this case the display name) Ken Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -LDAPFilter "l=Redmond" | Grant-CsDialPlan -PolicyName RedmondDialPlan

In Example 2, the RedmondDialPlan dial plan is assigned to all the users who have offices in the city of Redmond.
To do this, the Get-CsUser cmdlet is invoked in order to retrieve a collection of all the users who have an office in
the city of Redmond; this is done by using the LdapFilter parameter and the LDAP query l=Redmond. (In the LDAP
query language used by Active Directory Domain Services, the l indicates a user's locality, or city.) This collection is
then piped to the Grant-CsDialPlan cmdlet, which assigns the Redmond dial plan to each user in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity (unique identifier) of the user to whom the dial plan is being assigned.
User identities can be specified using one of four formats: 1) The user's SIP address; 2) the user's user principal
name (UPN ); 3) the user's domain name and logon name, in the form domain\logon (for example,
litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer).
Note that you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" would return all the users with the last name Smith.
Full data type: Microsoft.Rtc.Management.AD.UserIdParameter

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Returns the results of the command. By default, this cmdlet does not generate any output.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The Identity value of the dial plan to be assigned to the user. (Note that this includes only the name portion of the
Identity. Per-user dial plan identities include a prefix of tag: that should not be included with the PolicyName.)
Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String. Accepts a pipelined string value representing the Identity of a user account to which the dial plan is being
granted.

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
When used with the PassThru parameter, returns an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADUserOrAppContact.

Outputs
System.Object

Related Links
New -CsDialPlan
Remove-CsDialPlan
Set-CsDialPlan
Get-CsDialPlan
Test-CsDialPlan
Get-CsUser
minutes to read • Edit Online

Grant-CsExternalAccessPolicy
In ths Article

Enables you to assign an external access policy to a user or a group of users. External access policies determine
whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP ) accounts with
a federated organization; 2) communicate with users who have SIP accounts with a public instant messaging (IM )
provider such as MSN; and, 3) access Skype for Business Server over the Internet, without having to log on to your
internal network. This cmdlet was introduced in Lync Server 2010.

Syntax
Grant-CsExternalAccessPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
When you install Skype for Business Server your users are only allowed to exchange instant messages and
presence information among themselves: by default, they can only communicate with other people who have SIP
accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business
Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on
to Skype for Business Server.
That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external
access policies to extend the ability of your users to communicate and collaborate. External access policies can grant
(or revoke) the ability of your users to do any or all of the following:

1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation
will not automatically provide users with this capability. Instead, you must enable federation, and then assign users
an external access policy that gives them the right to communicate with federated users.
2. Communicate with people who have SIP accounts with a public instant messaging service such as MSN.
3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This
enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or
other remote location.
When you install Skype for Business Server, a global external access policy is automatically created for you. In
addition to this global policy, you can use the New -CsExternalAccessPolicy cmdlet to create additional external
access policies configured at either the site or the per-user scope.
When a policy is created at the site scope, it is automatically assigned to the site in question; for example, an
external access policy with the Identity site:Redmond will automatically be assigned to the Redmond site. By
contrast, policies created at the per-user scope are not automatically assigned to anyone. Instead, these policies
must be explicitly assigned to a user or a group of users. Assigning per-user policies is the job of the Grant-
CsExternalAccessPolicy cmdlet.
Note that per-user policies always take precedent over site policies and the global policy. For example, suppose you
create a per-user policy that allows communication with federated users, and you assign that policy to Ken Myer. As
long as that policy is in force, Ken will be allowed to communicate with federated users even if this type of
communication is not allowed by Ken's site policy or by the global policy. That's because the settings in the per-user
policy take precedence.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsExternalAccessPolicy -Identity "Ken Myer" -PolicyName RedmondAccessPolicy

Example 1 assigns the external access policy RedmondAccessPolicy to the user with the Active Directory display
name Ken Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -LdapFilter "l=Redmond" | Grant-CsExternalAccessPolicy -PolicyName RedmondAccessPolicy

The command shown in Example 2 assigns the external access policy RedmondAccessPolicy to all the users who
work in the city of Redmond. To do this, the command first uses the Get-CsUser cmdlet and the LdapFilter
parameter to return a collection of all the users who work in Redmond; the filter value "l=Redmond" limits returned
data to those users who work in the city of Redmond (the l in the filter, a lowercase L, represents the locality). That
collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy
RedmondAccessPolicy to each user in the collection.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUser -LdapFilter "Title=Sales Representative" | Grant-CsExternalAccessPolicy -PolicyName


SalesAccessPolicy

In Example 3, all the users who have the job title "Sales Representative" are assigned the external access policy
SalesAccessPolicy. To perform this task, the command first uses the Get-CsUser cmdlet and the LdapFilter
parameter to return a collection of all the Sales Representatives; the filter value "Title=Sales Representative"
restricts the returned collection to users who have the job title "Sales Representative". This filtered collection is then
piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy SalesAccessPolicy to each user in the
collection.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -Filter {ExternalAccessPolicy -eq $Null} | Grant-CsExternalAccessPolicy -PolicyName


BasicAccessPolicy

The command shown in Example 4 assigns the external access policy BasicAccessPolicy to all the users who have
not been explicitly assigned a per-user policy. (That is, users currently being governed by a site policy or by the
global policy.) To do this, the Get-CsUser cmdlet and the Filter parameter are used to return the appropriate set of
users; the filter value {ExternalAccessPolicy -eq $Null} limits the returned data to user accounts where the
ExternalAccessPolicy property is equal to (-eq) a null value ($Null). By definition, ExternalAccessPolicy will be null
only if users have not been assigned a per-user policy.
-------------------------- EXAMPLE 5 --------------------------

Get-CsUser -OU "ou=US,dc=litwareinc,dc=com" | Grant-CsExternalAccessPolicy -PolicyName USAccessPolicy


Example 5 assigns the external access policy USAccessPolicy to all the users who have accounts in the US
organizational unit (OU ). The command starts off by calling the Get-CsUser cmdlet and the OU parameter; the
parameter value "ou=US,dc=litwareinc,dc=com" limits the returned data to user accounts found in the US OU. The
returned collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy
USAccessPolicy to each user in the collection.
-------------------------- EXAMPLE 6 --------------------------

Get-CsUser | Grant-CsExternalAccessPolicy -PolicyName $Null

Example 6 unassigns any per-user external access policy previously assigned to any of the users enabled for Skype
for Business Server. To do this, the command calls the Get-CsUser cmdlet (without any additional parameters) in
order to return a collection of all the users enabled for Skype for Business Server. That collection is then piped to
the Grant-CsExternalAccessPolicy cmdlet, which uses the syntax " -PolicyName $Null " to remove any per-user
external access policy previously assigned to these users.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify the fully qualified domain name (FQDN ) of a domain controller to be contacted when
assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will
contact the first available domain controller.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Identity of the user account the policy should be assigned to. User Identities can be specified by using one of four
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon
name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name
(for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished
name.
In addition, you can use the asterisk () wildcard character when specifying the user Identity. For example, the
Identity " Smith" returns all the users with a display name that ends with the string value " Smith."

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy.
To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. Grant-CsExternalAccessPolicy
accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Grant-CsExternalAccessPolicy
cmdlet accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
By default, Grant-CsExternalAccessPolicy does not return a value or object. However, if you include the PassThru
parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.

Outputs
System.Object

Outputs
By default, the Grant-CsExternalAccessPolicy cmdlet does not return a value or object. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.

Related Links
Get-CsExternalAccessPolicy
New -CsExternalAccessPolicy
Remove-CsExternalAccessPolicy
Set-CsExternalAccessPolicy
minutes to read • Edit Online

Grant-CsExternalUserCommunicationPolicy
In ths Article

Provide the topic introduction here.

Syntax
Grant-CsExternalUserCommunicationPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String>
[-Tenant <Guid>] [-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsExternalUserCommunicationPolicy [-PolicyName] <String> [-Tenant <Guid>]


[-DomainController <Fqdn>] [-PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
PARAMVALUE: Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: UserIdParameter

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
PARAMVALUE: String

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Grant-CsGraphPolicy
In ths Article

Use the Grant-CsGraphPolicy cmdlet to assign a previously defined graph policy to a user or to your organization.
Graph policies determine whether users can pre-load content or files that are attached to an Outlook meeting
invitation into a Skype for Business Online meeting,

Syntax
Grant-CsGraphPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsGraphPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>] [-PassThru]


[-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Online supports a Global CsGraphPolicy that is set by default to enable Outlook content pre-
load in Skype for Business Online meetings. The Global policy can't be changed by you. Use the Grant-
CsGraphPolicy cmdlet to assign a predefined graph policy to users in your organization.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Grant-CsGraphPolicy -PolicyName "GraphDisabled" -Identity Ken.Myer

This example grants the "GraphDisabled" policy to Ken Myer.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter are either the fully qualified domain name (FQDN ) or the computer name.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the user who will be granted the graph policy.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being assigned the policy.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
Specifies the name of the graph policy to grant to the tenant or user. The two options are:
Graph Enabled: Granting this policy will enable the pre-loading content or files that are attached to an Outlook
meeting invitation into a Skype for Business Online meeting. For example,
Grant-CsGraphPolicy -PolicyName "Graph Enabled".

Graph Disabled: Granting this policy will disable the pre-loading of content, files or attachments attached to an
Outlook meeting invitation into a Skype for Business Online meeting. For example,
Grant-CsGraphPolicy -PolicyName "Graph Disabled".

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Grant-CsGraphPolicy cmdlet accepts a pipelined string value representing the Identity of a user account to
which the graph policy is being granted.

Outputs
The Grant-CsGraphPolicy cmdlet returns an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADUserOrAppContact when used with the PassThru
parameter.
minutes to read • Edit Online

Grant-CsHostedVoicemailPolicy
In ths Article

Assigns a hosted voice mail policy at the per-user scope. (The per-user scope enables you to assign policies to
individual users or groups.) This cmdlet was introduced in Lync Server 2010.

Syntax
Grant-CsHostedVoicemailPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet assigns an existing user-specific hosted voice mail policy to a user. A hosted voice mail policy specifies
how to route unanswered calls to a user to a hosted Exchange Unified Messaging (UM ) service.
You can check whether a user has been granted a per-user hosted voice mail policy by calling a command in this
format: Get-CsUser "\<user name\>" | Select-Object HostedVoicemailPolicy. For example:
Get-CsUser "Ken Myer" | Select-Object HostedVoicemailPolicy

If you assign to a user a hosted voice mail policy that does not include a destination, you cannot enable that user for
hosted voice mail.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsHostedVoicemailPolicy -Identity "Ken Myer" -PolicyName ExRedmond

This example assigns the hosted voice mail policy with the Identity ExRedmond to the user with the display name
Ken Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -OU "ou=Finance,ou=North America,dc=litwareinc,dc=com" | Grant-CsHostedVoicemailPolicy -PolicyName


ExRedmond

This example assigns the hosted voice mail policy with the Identity ExRedmond to all users in the Finance
organizational unit (OU ): OU=Finance,OU=NorthAmerica,DC=litwareinc,DC=com. The first part of the command
calls the Get-CsUser cmdlet to retrieve all users who are enabled for Skype for Business Server from the specified
OU. This collection of users is then piped to the Grant-CsHostedVoicemailPolicy cmdlet, which assigns the policy
ExRedmond to each of these users.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity (unique identifier) of the user to whom the hosted voice mail policy is being assigned.
User identities can be specified using one of four formats: 1) The user's SIP address; 2) the user's user principal
name (UPN ); 3) the user's domain name and logon name, in the form domain\logon (for example,
litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer).
Note that you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" would return all the users with the last name Smith.
Full data type: Microsoft.Rtc.Management.AD.UserIdParameter

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Returns the results of the command. By default, this cmdlet does not generate any output.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The name (Identity) of the hosted voice mail policy to be assigned to the user. (Note that this includes only the
name portion of the Identity. Per-user hosted voice mail policy identities include a prefix of tag: that should not be
included with the PolicyName.)

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String. Accepts a pipelined string value representing the Identity of a user account to which the hosted voice mail
policy is being granted.

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
When used with the PassThru parameter, returns an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADUserOrAppContact.
Outputs
System.Object

Related Links
New -CsHostedVoicemailPolicy
Remove-CsHostedVoicemailPolicy
Set-CsHostedVoicemailPolicy
Get-CsHostedVoicemailPolicy
Get-CsUser
minutes to read • Edit Online

Grant-CsIPPhonePolicy
In ths Article

Use the Grant-CsIPPhonePolicy cmdlet to assign an Internet Protocol (IP ) phone policy to a user or a group of
users. IP phone policies determine the features of Skype for Business Online that are available to users. For
example, you might enable the Better Together Over Ethernet feature for some users while disabling it for others.

Syntax
Grant-CsIPPhonePolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsIPPhonePolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>] [-PassThru]


[-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Online uses IP phone policies to determine the features and capabilities that are available to
users. IP phone policies are applied each time a user accesses the system, regardless of where the user logs on
from.

Examples
-------------------------- Example 1 --------------------------

Grant-CsIPPhonePolicy -Identity "Ken Myer" -PolicyName SkypePolicy

This example assigns the IP phone policy "SkypePolicy" to the user with the identity "Ken Myer".
-------------------------- Example 2 --------------------------

Get-CsUser -LDAPFilter "Department=Sales" | Grant-CsIPPhonePolicy -PolicyName SalesPolicy

This example assigns all the users in the "Sales" department to the "SalesPolicy" IP phone policy. The command
first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a collection of all the users who are
members of the "Sales" department. This collection of users is piped to the Grant-CsIPPhonePolicy cmdlet, which
assigns "SalesPolicy" to each user in the collection.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the target user. Acceptable values include:
Example: jphillips@contoso.com
Example: sip:jphillips@contoso.com
Example: 98403f08-577c-46dd-851a-f0460a13b03d

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Including this switch enables you to pass a user object through the pipeline that represents the user account being
assigned the voice routing policy. By default, the Grant-CsIPPhonePolicy cmdlet does not pass objects through the
pipeline.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
Specifies the name of the policy to be assigned. The PolicyName is the policy Identity minus the policy scope
("tag:"). For example, a policy that has the identity "tag:Redmond" has a PolicyName equal to "Redmond". If you set
PolicyName to a null value, then the command will unassign any per-user policy assigned to the user. For example:
Grant-CsIPPhonePolicy -Identity "Ken Myer" -PolicyName $Null

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Grant-CsIPPhonePolicy cmdlet accepts pipelined input of
Microsoft.Rtc.Management.ADConnect.Schema.ADUser objects.

Outputs
By default, the Grant-CsIPPhonePolicy cmdlet returns no objects or values. However, if you include the PassThru
parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.
Related Links
Get-CsIPPhonePolicy
Set-CsIPPhonePolicy
minutes to read • Edit Online

Grant-CsLocationPolicy
In ths Article

Assigns an Enhanced 9-1-1 (E9-1-1) location policy to individual users or groups. The E9-1-1 service enables those
who answer 911 calls to determine the caller's geographic location. This cmdlet was introduced in Lync Server
2010.

Syntax
Grant-CsLocationPolicy [-Identity] <UserIdParameter> [[-PolicyName] <String>] [-DomainController <Fqdn>]
[-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The location policy is used to apply settings that relate to E9-1-1 functionality. The location policy determines
whether a user is enabled for E9-1-1, and if so, what the behavior is of an emergency call. For example, you can use
the location policy to define what number constitutes an emergency call (911 in the United States), whether
corporate security should be automatically notified, and how the call should be routed. This cmdlet grants a location
policy to a specific user or group.
IMPORTANT: The location policy behaves differently from other policies in Skype for Business Server in terms of
order of scope. For all other policies, if a policy is defined at the per-user scope, the policy is applied to any user
granted that policy. If the user has not been granted a per-user policy, the site policy is applied. If there is no site
policy, the global policy is applied. Location policies are applied in the same way, with one exception: a per-user
location policy can also be assigned to a network site. (A network site consists of a group of subnets.) If the user is
making the emergency call from a location that is mapped to a network site within the organization, the user-level
policy assigned to that network site is used. This functionality will override a per-user policy that has been granted
to that user. If the user calls from a location that is unknown or unmapped in the organization, the standard policy
scoping will be applied.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsLocationPolicy -Identity "Ken Myer" -PolicyName Reno

In Example 1, the Grant-CsLocationPolicy cmdlet is used to assign the Reno location policy to user Ken Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -LDAPFilter "Department=Accounting" | Grant-CsLocationPolicy -PolicyName AccountingArea

In Example 2, the AccountingArea policy is assigned to all the users who are in the Accounting department. To
return a collection of all the users in the Accounting department, the Get-CsUser cmdlet is used along with the
LDAPFilter parameter. The query value passed to LDAPFilter--"Department=Accounting"--returns all the users
who have an Active Directory Department setting of Accounting. This collection is then passed to the Grant-
CsLocationPolicy cmdlet, which proceeds to assign the AccountingArea policy to each user in the collection.
-------------------------- EXAMPLE 3 --------------------------

Grant-CsLocationPolicy -Identity "Ken Myer" -PolicyName Reno -PassThru | Select-Object DisplayName,


LocationPolicy

This example grants the location policy Reno to the user with the Identity (in this case, the display name) Ken Myer.
In addition, the example includes the parameter PassThru, which will cause the user information for user Ken Myer
to be displayed after the location policy has been granted. However, rather than immediately displaying the user
information to the console, that information is piped to the Select-Object cmdlet, which will display only the
DisplayName and LocationPolicy properties of the user.
One thing to notice with this example is that the newly granted location policy will appear in the output under
LocationPolicy, but it will appear as an Anchor value rather than as a policy name. (An Anchor value is a numeric
value automatically assigned to a policy at the time it is created.) To see that the policy name has been applied, run
the command Get-CsUser -Identity "Ken Myer" | Select-Object DisplayName, LocationPolicy.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account the policy should be assigned to. User identities can be specified using
one of four formats: 1) The user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name
and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). Note that the SAMAccountName cannot be used as an identity.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" would grant the policy to all the users with the last name Smith.
Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Including this parameter (which does not take a value) displays the user information when the cmdlet completes.
Normally there is no output when this cmdlet is run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The Identity of the location policy to apply to the user.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String. Accepts a pipelined string value representing the Identity of a user account to which the location policy is
being granted.

Outputs
When used with the PassThru parameter, returns an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADUserOrAppContact.

Related Links
New -CsLocationPolicy
Remove-CsLocationPolicy
Set-CsLocationPolicy
Get-CsLocationPolicy
Test-CsLocationPolicy
Get-CsUser
minutes to read • Edit Online

Grant-CsMobilityPolicy
In ths Article

Grants a per-user mobility policy to a user or group of users. Mobility policies determine whether or not a user can
use a mobile device (such as a cell phone) to connect to Skype for Business Server. These policies also manage a
user's ability to employ Call via Work, a feature that enables users to make and receive phone calls on their mobile
phone by using their work phone number instead of their mobile phone number. Mobility policies can also be used
to require Wi-Fi connections when making or receiving calls. This cmdlet was introduced in the cumulative update
for Lync Server 2010: November 2011.

Syntax
Grant-CsMobilityPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Mobile is a client application that enables users to run Skype for Business Server on their
mobile phones. Call via Work provides a way for users to make calls on their mobile phone and yet have it appear
as though the call originated from their work phone number instead of their mobile phone number. Users who
have been enabled for Call via Work can achieve this either by dialing directly from their mobile phone or by using
the dial-out conferencing option. With dial-out conferencing, a user effectively asks the Mobility Service server to
make a call for them. The server will set up the call, and then call the user back on their mobile phone. After the
user has answered, the server will then dial the party being called. Both of these capabilities can be managed by
using mobility policies.
With Skype for Business Server, mobile devices can make or receive phone calls by using either the standard
cellular phone network. or by using Wi-Fi connections. Mobility policies can be used to require Wi-Fi connections
and to prevent calls over the cellular network.
When you install Skype for Business Server, you will have a single, global mobility policy that applies to all your
users. However, administrators can use the New -CsMobilityPolicy cmdlet to create custom policies at either the site
or the per-user scope.
If you create a new policy at the site scope that policy will automatically be assigned to the appropriate site.
However, if you create a mobility policy at the per-user scope, that policy will exist but will not automatically be
assigned to any users. Instead, you must use the Grant-CsMobilityPolicy cmdlet to specifically assign a per-user
policy to one or more users.
Note that mobility policies do not appear by default when you run the Get-CsUser cmdlet. Because of that, you
cannot see the per-user mobility policy assigned to a user by running a command similar to this:
Get-CsUser "Ken Myer"

Instead, you will need to use a command like this to see all the property values (including the mobility policy) for a
user:
Get-CsUser "Ken Myer" | Select-Object *

Alternatively, you can use a command similar to this one to view just the display name and mobility policy for the
user:
Get-CsUser "Ken Myer" | Select-Object DisplayName, MobilityPolicy

Who can run this cmdlet: By default, members of the following groups are authorized to run the Grant-
CsMobilityPolicy cmdlet locally: RTCUniversalServerAdmins.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsMobilityPolicy -Identity "Ken Myer" -PolicyName "RedmondMobilityPolicy"

The command shown in Example 1 assigns the per-user mobility policy RedmondMobilityPolicy to a single user:
Ken Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -Filter {MobilityPolicy -eq "NorthAmericaMobilityPolicy"} | Grant-CsMobilityPolicy -PolicyName


"RedmondMobilityPolicy"

In Example 2, the mobility policy RedmondMobilityPolicy is assigned to users currently managed by the policy
NorthAmericaMobilityPolicy. To do this, the command first uses the Get-CsUser cmdlet and the Filter parameter to
retrieve all those users assigned the policy NorthAmericaMobilityPolicy; this is done by using the filter value
{MobilityPolicy -eq "NorthAmericaMobilityPolicy"}. After retrieving the collection of user accounts, those accounts
are then piped to the Grant-CsMobilityPolicy cmdlet, which assigns each user the policy RedmondMobilityPolicy.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUser -LdapFilter "l=Redmond" | Grant-CsMobilityPolicy -PolicyName "RedmondMobilityPolicy"

Example 3 assigns the mobility policy RedmondMobilityPolicy to all the users located in the city of Redmond. To
perform this task, the command first calls the Get-CsUser cmdlet along with the LdapFilter parameter; the filter
value "l=Redmond" returns all the users located in Redmond. (The "l" represents the Active Directory attribute
"locality".) After the user accounts have been retrieved, those accounts are piped to the Grant-CsMobilityPolicy
cmdlet; in turn, the Grant-CsMobilityPolicy cmdlet assigns each user the policy RedmondMobilityPolicy.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -Filter {RegistrarPool -eq "atl-cs-001.litwareinc.com"} | Grant-CsMobilityPolicy -PolicyName


"RedmondMobilityPolicy"

In Example 4, RedmondMobilityPolicy is assigned to users who have Skype for Business Server accounts homed
on atl-cs-001.litwareinc.com. To do this, the command first uses the Get-CsUser cmdlet and the Filter parameter to
retrieve all the user accounts homed on the specified Registrar pool; this can be done by using the filter value
{RegistrarPool -eq "atl-cs-001.litwareinc.com"}. After retrieving the collection of user accounts, those accounts are
then piped to the Grant-CsMobilityPolicy cmdlet, which assigns each user the policy RedmondMobilityPolicy.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify the fully qualified domain name (FQDN ) of a domain controller to be contacted when
assigning the new policy. If this parameter is not specified then the Grant-CsMobilityPolicy cmdlet will contact the
first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be assigned the per-user mobility policy. User Identities are typically
specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's
domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's
Active Directory display name (for example, Ken Myer). User Identities can also be specified by using the user's
Active Directory distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" will assign the policy to all the users who have a display name that ends with the
string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsMobilityPolicy cmdlet does not pass objects through the pipeline.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondUsersMobilityPolicy has a PolicyName equal to RedmondUsersMobilityPolicy. To assign a
per-user policy use syntax like this:
-PolicyName RedmondUsersMobilityPolicy

To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null):
-PolicyName $Null

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Grant-CsMobilityPolicy accepts pipelined input of string values representing the Identity of a user account. The
cmdlet also accepts pipelined input of user objects.

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Inputs
The Grant-CsMobilityPolicy cmdlet accepts pipelined input of string values representing the Identity of a user
account. The cmdlet also accepts pipelined input of user objects.

Outputs
By default, Grant-CsMobilityPolicy does not return any objects or values. However, if you include the PassThru
parameter, the cmdlet will be able to pipeline instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.

Outputs
System.Object

Outputs
By default, the Grant-CsMobilityPolicy cmdlet does not return any objects or values. However, if you include the
PassThru parameter, the cmdlet will be able to pipeline instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object.
minutes to read • Edit Online

Grant-CsOnlineVoicemailPolicy
In ths Article

Provide the topic introduction here.

Syntax
Grant-CsOnlineVoicemailPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Online )

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DomainController
PARAMVALUE: Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: UserIdParameter

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
PARAMVALUE: String

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Grant-CsOnlineVoiceRoutingPolicy
In ths Article

Assigns a per-user online voice routing policy to one or more users. Online voice routing policies manage online
PSTN usages for Phone System users.

Syntax
Grant-CsOnlineVoiceRoutingPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsOnlineVoiceRoutingPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]


[-PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Skype
for Business Online users an online voice routing policy enables those users to receive and to place phones calls to
the public switched telephone network by using your on-premises SIP trunks.
Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Skype
for Business Online or Teams. Among other things, you will also need to enable those users for Phone System and
will need to assign them an appropriate online voice policy.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Grant-CsOnlineVoiceRoutingPolicy -Identity "Ken Myer" -PolicyName "RedmondOnlineVoiceRoutingPolicy"

The command shown in Example 1 assigns the per-user online voice routing policy
RedmondOnlineVoiceRoutingPolicy to the user with the display name "Ken Myer".
-------------------------- Example 2 --------------------------

PS C:\> Grant-CsOnlineVoiceRoutingPolicy -Identity "Ken Myer" -PolicyName $Null

In Example 2, any per-user online voice routing policy previously assigned to the user Ken Myer is unassigned from
that user; as a result, Ken Myer will be managed by the global online voice routing policy. To unassign a per-user
policy, set the PolicyName to a null value ($Null).
-------------------------- Example 3 --------------------------

PS C:\> Get-CsOnlineUser | Grant-CsOnlineVoiceRoutingPolicy -PolicyName "RedmondOnlineVoiceRoutingPolicy"


Example 3 assigns the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy to all the users in
the tenant. To do this, the command first calls the Get-CsOnlineUser cmdlet to get all users accounts enabled for
Skype for Business Online. Those user accounts are then piped to the Grant-CsOnlineVoiceRoutingPolicy cmdlet,
which assigns each user the online voice routing policy RedmondOnlineVoiceRoutingPolicy.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Global
When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a
warning when you do this operation, specify "-Global".

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can
be specified using one of the following formats: 1) the user's SIP address; 2) the user's user principal name (UPN );
or, 3) the user's Active Directory display name (for example, Ken Myer).

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being assigned the online
voice routing policy. By default, the Grant-CsOnlineVoiceRoutingPolicy cmdlet does not pass objects through the
pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy
with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to
RedmondOnlineVoiceRoutingPolicy.
To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null).

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object

Related Links
New -CsOnlineVoiceRoutingPolicy
Get-CsOnlineVoiceRoutingPolicy
Set-CsOnlineVoiceRoutingPolicy
Remove-CsOnlineVoiceRoutingPolicy
minutes to read • Edit Online

Grant-CsOUPermission
In ths Article

Grants Skype for Business Server management rights on an Active Directory organizational unit (OU ). This cmdlet
was introduced in Lync Server 2010.

Syntax
Grant-CsOUPermission -ObjectType <ObjectType> -OU <String> [-Domain <Fqdn>] [-DomainController <Fqdn>]
[-GlobalCatalog <Fqdn>] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
If you have locked down your Active Directory domain (that is, if you have disabled permission inheritance) then
the domain preparation that takes place when you install Skype for Business Server will not be able to add the
rights needed to manage users, computers, contacts, application contacts, and InetOrg persons. (Domain
administrators will still be able to manage these objects, but no one else, including members of the
RTCUniversalUserAdmins group, will have management rights.) In that case, you will need to use the Grant-
CsOUPermission cmdlet to give the required security groups the required rights. This must be done on a container-
by-container basis.
Note that this cmdlet only grants rights to a set of predefined security groups; the cmdlet cannot be used to grant
rights to arbitrary security groups or to individual users.
Rights granted by using the Grant-CsOUPermission cmdlet can later be removed by using the Revoke-
CsOUPermission cmdlet. If you run that cmdlet, then the groups initially granted the OU rights will no longer have
those Skype for Business Server management rights for the specified Active Directory container. In that case, you
will need to be an enterprise administrator or a domain administrator in order to manage Skype for Business
Server or one of its components.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsOUPermission -OU "ou=Redmond,dc=litwareinc,dc=com" -ObjectType "user"

The command shown in Example 1 grants user management rights (-ObjectType "user") to the Redmond OU in the
domain litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------

Grant-CsOUPermission -OU "ou=Redmond,dc=litwareinc,dc=com" -ObjectType "user","contact","inetOrgPerson"

In Example 2, management rights are granted for three different objects (user, contact, inetOrgPerson) for the
Redmond OU in the domain litwareinc.com.
-------------------------- EXAMPLE 3 --------------------------

$x = "ou=Redmond,dc=litwareinc,dc=com", "ou=Dublin,dc=litwareinc,dc=com", "ou=Tokyo,dc=litwareinc,dc=com"

foreach ($i in $x) {Grant-CsOUPermission -OU $i -ObjectType "user"}

In Example 3, user management rights are simultaneously granted for three different OUs: Redmond, Dublin, and
Tokyo. To carry out this task, the first command in the example creates an array variable named $x; this variable
holds the distinguished names of the three Active Directory OUs where rights will be granted. In the second
command, a foreach loop is created that takes each OU stored in the array and runs the Grant-CsOUPermission
cmdlet against that organizational unit. In turn, that command grants user management rights for each OU in the
array.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
Name of the domain where the OU is located. If this parameter is not included, then the Grant-CsOUPermission
cmdlet will look for the OU on the current domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables administrators to specify the fully qualified domain name (FQDN ) of the domain controller to be used
when running the Grant-CsOUPermission cmdlet. If not specified, the cmdlet will use the first available domain
controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
FQDN of a global catalog server in your domain. This parameter is not required if you are running the Grant-
CsOUPermission cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ObjectType
Type of object covered by these rights. Valid values are:
User
Computer
Contact
AppContact
InetOrgPerson
Device (required for creating common area phones)
To assign multiple object types in the same command, separate the object types by using commas:
-ObjectType "user","computer","contact". Note, however, that you can only specify a maximum of three object
types per command.

Type: ObjectType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Distinguished name of the OU where rights are to be granted. For example:
-OU "ou=Redmond,dc=litwareinc,dc=com"

Note that you can only grant rights to a single OU per command.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\OUPermissions.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Grant-CsOUPermission cmdlet does not accept pipelined input.

Outputs
The Grant-CsOUPermission cmdlet does not return any objects or values.

Related Links
Revoke-CsOUPermission
Test-CsOUPermission
minutes to read • Edit Online

Grant-CsPersistentChatPolicy
In ths Article

Assigns a per-user Persistent Chat policy to a user. Persistent Chat policies determine whether or not users are
allowed access to Persistent Chat chat rooms. This cmdlet was introduced in Lync Server 2013.

Syntax
Grant-CsPersistentChatPolicy [-Identity] <UserIdParameter> [[-PolicyName] <String>] [-Confirm]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
By default, users are not granted access to the Persistent Chat service; that access can only be granted if the user is
managed by a Persistent Chat policy that allows for the user of the service. When you install Skype for Business
Server, all your users are managed by a global Persistent Chat policy in which the use of Persistent Chat is disabled.
If you want to give all your users access to the service you can simply set the EnablePersistentChat property in this
global policy to True. Alternatively, you can create additional policies at the site or at the per-user scope, and thus
provide Persistent Chat access to some users while denying this access to other users.
Skype for Business Server Control Panel: To assign a Persistent Chat policy to a user in the Skype for Business
Server Control Panel, double-click the appropriate user account. In the Edit Lync Server User dialog box, select a
policy from the Persistent Chat policy dropdown list and then click Commit.

Examples
-------------------------- Example 1 --------------------------

Grant-CsPersistentChatPolicy -Identity "Ken Myer" -PolicyName "RedmondUsersPersistentChatPolicy"

The command shown in Example 1 assigns the per-user policy RedmondUsersPersistentChatPolicy to the user with
the Active Directory display name "Ken Myer".
-------------------------- Example 2 --------------------------

Get-CsUser -LdapFilter "Department=IT" | Grant-CsPersistentChatPolicy -PolicyName


"RedmondUsersPersistentChatPolicy"
In Example 2, the per-user policy RedmondUsersPersistentChatPolicy is assigned to all the users who work in the
IT department. To do this, the command first calls the Get-CsUser cmdlet along with the LdapFilter property; the
filter value "Department=IT" limits the returned data to users who work in the IT department. That collection of
users is then piped to the Grant-CsPersistentChatPolicy cmdlet, which assigns the policy
RedmondUsersPersistentChatPolicy to each user in the collection.
-------------------------- Example 3 --------------------------

Get-CsUser -Filter {PersistentChatPolicy -eq $Null} | Grant-CsPersistentChatPolicy -PolicyName


"RedmondUsersPersistentChatPolicy"

In Example 3, the per-user Persistent Chat policy RedmondUsersPersistentChatPolicy is assigned to all the users
who do not currently have a per-user Persistent Chat policy assigned to them. To carry out this task, the command
first employs the Get-CsUser cmdlet and the Filter parameter; the filter value {PersistentChatPolicy -eq $Null}
limits the returned data to user accounts in which the PersistentChatPolicy property is currently null ($Null). That
collection of users is then piped to the Grant-CsPersistentChatPolicy cmdlet, which assigns each user in the
collection the policy RedmondUsersPersistentChatPolicy.
-------------------------- Example 4 --------------------------

Get-CsUser -Filter {PersistentChatPolicy -eq "RedmondUsersPersistentChatPolicy"} | Grant-CsPersistentChatPolicy


-PolicyName $Null

The command shown in Example 4 unassigns the per-user Persistent Chat policy
RedmondUsersPersistentChatPolicy from any user currently assigned that policy. To carry out this task, the
command first uses the Get-CsUser cmdlet and the Filter parameter to return a collection of users currently
assigned the policy RedmondUsersPersistentChatPolicy; the filter value {PersistentChatPolicy -eq
"RedmondUsersPersistentChatPolicy"} restricts the returned items to user accounts where the PersistentChatPolicy
property is equal to RedmondUsersPersistentChatPolicy. That collection is then piped the Grant-
CsPersistentChatPolicy cmdlet, which unassigns the per-user policy by setting the PersistentChatPolicy property to
a null value ($Null).
After the per-user policy has been unassigned, users will have their Persistent Chat capabilities managed by their
Persistent Chat site policy (if it exists) or, if not, by the global Persistent Chat policy.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify the fully qualified domain name of a domain controller to be contacted when assigning the
new policy. If this parameter is not specified then the Grant-CsPersistentChatPolicy cmdlet will contact the first
available domain controller.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be assigned the per-user Persistent Chat policy. User Identities are
typically specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3)
the user's domain name and logon name, in the form domain\logon (four example, litwareinc\kenmyer); and, 4) the
user's Active Directory display name (for example, Ken Myer). User Identities can also be specified by using the
user's Active Directory distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users who have a display name that ends with the string value "
Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsPersistentChatPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondUsersPersistentChatPolicy has a PolicyName equal to RedmondUsersPersistentChatPolicy. To
unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null).

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.WritableConfig.Policy.PersistentChat.PersistentChatPolicy object. The
Grant-CsPersistentChatPolicy cmdlet accepts pipelined input of string values representing the Identity of a user
account. The cmdlet also accepts pipelined input of user objects.

Outputs
By default, the Grant-CsPersistentChatPolicy cmdlet does not return an objects or values. However, if you include
the PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact.

Related Links
Get-CsPersistentChatPolicy
New -CsPersistentChatPolicy
Remove-CsPersistentChatPolicy
Set-CsPersistentChatPolicy
minutes to read • Edit Online

Grant-CsPinPolicy
In ths Article

Assigns a client personal identification number (PIN ) policy to a user or group of users. PIN authentication enables
users to access Skype for Business Server by providing a PIN instead of a user name and password. This cmdlet
was introduced in Lync Server 2010.

Syntax
Grant-CsPinPolicy [-Identity] <UserIdParameter> [[-PolicyName] <String>] [-DomainController <Fqdn>] [-PassThru]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server enables users to connect to the system or to join public switched telephone network
(PSTN ) conferences via telephone. Typically, logging on to the system or joining a conference requires the user to
enter a user name or password; unfortunately, entering a user name and password can be a problem if you are
using a phone that does not have an alphanumeric keypad. Because of that, Skype for Business Server enables you
to supply users with numeric-only PINs; when prompted, users can then log on to the system or join a conference
by entering the PIN instead of a user name and password.
Skype for Business Server uses PIN policies to manage PIN authentication properties; for example, you can specify
the minimum length for a PIN as well as determine whether you will allow PINs that use "common patterns" such
as repeating digits (for example, a PIN like 11223344). PIN policies can be configured at the global or the site
scope; in addition, PIN policies can be configured at the per-user scope and then assigned to a user or a specified
set of users. In order to assign a per-user policy you must use the Grant-CsPinPolicy cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsPinPolicy -Identity "kenmyer@litwareinc.com" -PolicyName RedmondUsersPinPolicy

The command shown in Example 1 assigns the policy RedmondUsersPinPolicy to the user
kenmyer@litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------

Grant-CsPinPolicy -Identity kenmyer@litwareinc.com -PolicyName $Null

Example 2 unassigns any per-user PIN policy previously assigned to the user kenmyer@litwareinc.com. Calling the
Grant-CsPinPolicy cmdlet and setting the policy name to a null value ($Null) removes any per-user policy assigned
to the user.
-------------------------- EXAMPLE 3 --------------------------
Get-CsUser -LdapFilter "l=Redmond" | Grant-CsPinPolicy -PolicyName RedmondUsersPinPolicy

In Example 3, the policy RedmondUsersPinPolicy is assigned to all the users who work in the city of Redmond. To
do this, the Get-CsUser cmdlet first retrieves a collection of all the users who work in Redmond; this is done by
including the LdapFilter parameter and using the filter value "l=Redmond". (With LDAP filters, l, a lowercase L,
represents the user's locality.) That collection of users is then piped to the Grant-CsPinPolicy cmdlet, which assigns
each user the policy RedmondUsersPinPolicy.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -Filter {PinPolicy -eq $Null} | Grant-CsPinPolicy -PolicyName RedmondUsersPinPolicy

In Example 4, the policy RedmondUsersPinPolicy is assigned to all the users who have not been assigned a per-
user PIN policy. To determine which users have not been assigned a PIN policy, the Get-CsUser cmdlet is called,
along with the Filter parameter; the filter value {ClientPinPolicy -eq $Null} returns only those users where the
ClientPinPolicy property is null (that is, no per-user PIN policy has been assigned). That collection of users is then
piped to the Grant-CsPinPolicy cmdlet, which assigns the policy RedmondUsersPinPolicy to each person in the
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify the fully qualified domain name of a domain (FQDN ) controller to be contacted when
assigning the new policy. If this parameter is not specified then the Grant-CsPinPolicy cmdlet will contact the first
available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be assigned the per-user PIN policy. User Identities can be specified
using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain
name and logon name, in the form domain\logon (four example, litwareinc\kenmyer); and, 4) the user's Active
Directory display name (for example, Ken Myer). User Identities can also be specified by using the user's Active
Directory distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users who have a display name that ends with the string value "
Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsPinPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondUsersPinPolicy has a PolicyName equal to RedmondUsersPinPolicy. To unassign a per-user
policy previously assigned to a user, set the PolicyName to a null value ($Null).

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.UserPinService.PinInfoDetails object. The Grant-CsPinPolicy cmdlet
accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
By default, the Grant-CsPinPolicy cmdlet does not return a value or object. However, if you include the PassThru
parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact.

Related Links
Get-CsPinPolicy
New -CsPinPolicy
Remove-CsPinPolicy
Set-CsPinPolicy
minutes to read • Edit Online

Grant-CsPresencePolicy
In ths Article

Grants a per-user presence policy to a user or group of users. This cmdlet was introduced in Lync Server 2010.

Syntax
Grant-CsPresencePolicy [-Identity] <UserIdParameter> [[-PolicyName] <String>] [-DomainController <Fqdn>]
[-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Presence information (which, among other things, lets you know whether a contact is available to take part in an
instant messaging conversation) is invaluable. At the same time, however, there is a cost associated with presence
information: the more presence subscriptions you have the more network bandwidth must be devoted to updating
presence information. If network bandwidth is a concern, you might want to limit the number of presence
subscriptions any one user can have.
The CsPresencePolicy cmdlets enable you to manage two important aspects of presence subscriptions: prompted
subscribers and category subscriptions. When you are added to another person's Skype for Business Contacts list,
the default behavior is for you to receive a pop-up notification informing you that you have been added to that list.
Until you dismiss the pop-up, each notification counts as a prompted subscriber. The presence policy's
MaxPromptedSubscriber property enables you to specify the maximum number of unresolved notification dialogs
a user can have. (If a user reaches the maximum amount, then he or she will not receive new contact notifications,
at least not until some of those dialogs have been resolved.)
Category subscriptions represent a request for a specific category of information; for example, an application that
requests calendar data. The MaxCategorySubscription property enables administrators to place a limit on the
number of category subscriptions a user can have.
Prior to the release of Lync Server, prompted subscriber and category subscriptions were managed on a global
basis. With the CsPresencePolicy cmdlets you can now manage these presence subscriptions at the global scope,
the site scope, or the per-user scope. This enables you to control bandwidth use while, at the same time, ensuring
that users have access to the presence information they need to do their jobs.
When you create a per-user policy, that policy is not automatically assigned to anyone. Instead, per-user presence
policies must be explicitly assigned to users (or groups of users) by running the Grant-CsPresencePolicy cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsPresencePolicy -Identity "Ken Myer" -PolicyName "RedmondPresencePolicy"

The command shown in Example 1 assigns the per-user presence policy RedmondPresencePolicy to a single user:
the user with the Identity Ken Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -OU "OU=Redmond,dc=litwareinc,dc=com" | Grant-CsPresencePolicy -PolicyName "RedmondPresencePolicy"

In Example 2, the presence policy RedmondPresencePolicy is assigned to all the users who have accounts in the
Redmond OU in Active Directory Domain Services. To do this, the command first uses the Get-CsUser cmdlet and
the OU parameter to return a collection of all the user accounts found in the Redmond OU
(OU=Redmond,dc=litwareinc,dc=com). This collection is then piped to the Grant-CsPresencePolicy cmdlet, which
assigns the policy RedmondPresencePolicy to each user in the collection.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUser -LdapFilter "l=Redmond" | Grant-CsPresencePolicy -PolicyName "RedmondPresencePolicy"

Example 3 assigns the policy RedmondPresencePolicy to all the users who work in the city of Redmond. To carry
out this task, the command first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a collection of
all the users who work in Redmond; the filter value "l=Redmond" limits the returned data to users from Redmond.
(In the LDAP query language, l, the lowercase L, is short for "locality.") The retrieved collection is then piped to the
Grant-CsPresencePolicy cmdlet, which assigns the policy RedmondPresencePolicy to each user in the collection.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -LdapFilter "l=Redmond" | Grant-CsPresencePolicy -PolicyName $Null

The command shown in Example 4 unassigns any per-user presence policy previously assigned to users who work
in Redmond. Calling the Grant-CsPresencePolicy cmdlet while setting the PolicyName parameter to a null value
($Null) causes the cmdlet to remove any per-user presence policies assigned to the users affected by the command.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Fully qualified name of the domain (FQDN ) controller to be contacted when assigning the policy. For example:
-DomainController atl-dc-001.litwareinc.com

If not specified, the Grant-CsPresencePolicy cmdlet will contact the nearest available domain controller when
assigning the policy.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be assigned the presence policy. User Identities can be specified using
one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name
and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). User Identities can also be specified by using the user's Active Directory
distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users with display name that ends with the string value "Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsPresencePolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
Identity of the per-user policy to be assigned; for example:
-PolicyName "RedmondPresencePolicy"

The PolicyName is the Identity of the policy minus the "tag:" prefix. For example, a policy with the Identity
"tag:NorthAmericaPresencePolicy" has a PolicyName equal to "NorthAmericaPresencePolicy".

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.WritebleConfig.Policy.Presence.PresencePolicy object. The Grant-
CsPresencePolicy cmdlet accepts pipelined input of string values representing the Identity of a user account. The
cmdlet also accepts pipelined input of user objects.

Outputs
By default, the Grant-CsPresencePolicy cmdlet does not return an objects or values. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact.

Related Links
Get-CsPresencePolicy
New -CsPresencePolicy
Remove-CsPresencePolicy
Set-CsPresencePolicy
minutes to read • Edit Online

Grant-CsSetupPermission
In ths Article

Grants Skype for Business Server setup permissions on an Active Directory organizational unit (OU ). This cmdlet
was introduced in Lync Server 2010.

Syntax
Grant-CsSetupPermission -ComputerOU <String> [-Domain <Fqdn>] [-DomainController <Fqdn>]
[-GlobalCatalog <Fqdn>] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The domain preparation that takes place when you install Skype for Business Server does not automatically add the
permissions that enable members of the RTCUniversalServerAdmins group to run the Enable-CsTopology cmdlet.
That means that, by default, you must be a domain administrator in order to enable a topology. To give members of
the RTCUniversalServerAdmins group the right to enable a topology you must run the Grant-CsSetupPermissions
cmdlet. In addition, you will need to run this cmdlet against each Active Directory container that houses computers
running Skype for Business Server.
Keep in mind that this cmdlet only grants permissions to the RTCUniversalServerAdmins group; the cmdlet cannot
be used to grant permissions to other security groups or to individual users.

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsSetupPermission -ComputerOU "ou=CsServers,dc=litwareinc,dc=com"

The command shown in Example 1 grants setup permissions for the CsServers OU in the domain litwareinc.com.

Parameters
-ComputerOU
Distinguished name of the OU containing the accounts for the computers where Skype for Business Server will be
(or has been) installed. For example: "ou=CsServers,dc=litwareinc,dc=com".

If you prefer you can leave off the domain portion of the distinguished name when specifying the OU. For example:
-ComputerOU "ou=CsServers"
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
Name of the domain where the OU is located. If this parameter is not included, then the Grant-CsSetupPermission
cmdlet will look for the OU in the current domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Fully qualified name of the domain controller to be contacted when assigning the policy. For example:
-DomainController atl-dc-001.litwareinc.com

If not specified, the Grant-CsSetupPermission cmdlet will contact the nearest available domain controller when
assigning the policy.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-GlobalCatalog
Fully qualified name of the global catalog server to be contacted when assigning the policy. For example:
-GlobalCatalog atl-dc-001.litwareinc.com

If not specified, the Grant-CsSetupPermission cmdlet will contact the nearest available global catalog server when
assigning the policy.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\SetupPermissions.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Grant-CsSetupPermission cmdlet does not accept pipelined input.

Outputs
None. The Grant-CsSetupPermission cmdlet does not return any objects or values.

Related Links
Revoke-CsSetupPermission
Test-CsSetupPermission
minutes to read • Edit Online

Grant-CsTeamsCallingPolicy
In ths Article

Cmdlet to assign a specific Teams Calling Policy to a user.

Syntax
Grant-CsTeamsCallingPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsTeamsCallingPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]


[-PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The Teams Calling Policies designate which users are able to use calling functionality within teams and determine
the interoperability state with Skype for Business. This cmdlet allows admins to grant user level policies to
individual users.

Examples
Example 1

PS C:\> Grant-CsTeamsCallingPolicy -identity "Ken Myer" -PolicyName SalesCallingPolicy

Assigns the TeamsCallingPolicy called "SalesCallingPolicy" to the user "Ken Myer"

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Internal Microsoft use
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Global
Internal Microsoft use

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The user object to whom the policy is being assigned.

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as
null.

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object
minutes to read • Edit Online

Grant-CsTeamsCallParkPolicy
In ths Article

The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft
Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on
that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The
Grant-CsTeamsCallParkPolicy cmdlet lets you assign a custom policy to a specific user. NOTE: the call park feature
currently only available in desktop and web clients. Call Park functionality is currently completely disabled in mobile
clients. Supported with TeamsOnly mode

Syntax
Grant-CsTeamsCallParkPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String> [-Tenant <System.Guid>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsTeamsCallParkPolicy [-PolicyName] <String> [-Tenant <System.Guid>] [-DomainController <Fqdn>]


[-PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft
Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on
that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The Grant-
CsTeamsCallParkPolicy cmdlet lets you assign a custom policy to a specific user.

Examples
Example 1

PS C:\> Grant-CsTeamsCallParkPolicy -PolicyName SalesPolicy -Identity "Ken Myer"

Assigns a custom policy "Sales Policy" to the user "Ken Myer"

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Internal Microsoft use only.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Global
Internal Microsoft use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The User Id of the user to whom the policy is being assigned.

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By
default, the cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:").
For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy.
If you set PolicyName to a null value, then the command will unassign any per-user policy assigned to the user.

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object
minutes to read • Edit Online

Grant-CsTeamsInteropPolicy
In ths Article

IMPORTANT: TeamsInteropPolicy has been replaced by TeamsUpgradePolicy. See description for more
information. You can also find more guidance here: Migration and interoperability guidance for organizations using
Teams together with Skype for Business (https://docs.microsoft.com/en-us/MicrosoftTeams/migration-interop-
guidance-for-teams-with-skype). This cmdlet previously determined how calls are routed between Skype for
Business and Microsoft Teams. It is no longer honored, except if TeamsUpgradePolicy mode=Legacy. However,
Legacy mode has been deprecated and can no longer be granted. Any customers with user or tenant policy using
Legacy mode must update their configurations to use a mode other than Legacy.

Syntax
Grant-CsTeamsInteropPolicy [-PassThru] [-Confirm] [[-PolicyName] <Object>] [[-Identity] <Object>]
[-Tenant <Object>] [-DomainController <Object>] [-WhatIf] [-AsJob]

Description
IMPORTANT: TeamsInteropPolicy has been replaced by TeamsUpgradePolicy. It is no longer honored by the
system, except if TeamsUpgradePolicy has mode=Legacy. However, Legacy mode has been deprecated. Granting
mode=Legacy is now blocked. Customers that are still using Legacy mode must update their configurations to use
a mode other than Legacy.
For comprehensive documentation on this policy and its settings, see Microsoft Teams and Skype for Business
Interoperability.

Examples
-------------------------- Example 1 --------------------------

Grant-CsTeamsInteropPolicy -PolicyName DisallowOverrideCallingDefaultChatDefault -Identity user@contoso.com

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
For this cmdlet, the full UserPrincipalName/SIP address is required. If you don't provide the full UPN/SIP and
instead provide an Alias, the cmdlet can throw an "Object reference not set to an instance of an object" error.

Type: Object
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
{{Fill PassThru Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
{{Fill PolicyName Description}}

Type: Object
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object

Notes
This policy has been deprecated and should not be used. Instead, customers should use TeamsUpgradePolicy to
control interop and routing.

Related Links
Migration and interoperability guidance for organizations using Teams together with Skype for Business
minutes to read • Edit Online

Grant-CsTeamsMeetingBroadcastPolicy
In ths Article

Grant-CsTeamsMeetingBroadcastPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <string> [-Tenant <guid>]


[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>] Grant-
CsTeamsMeetingBroadcastPolicy [-PolicyName] <string> [-Tenant <guid>] [-DomainController <Fqdn>] [-
PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Syntax
Grant-CsTeamsMeetingBroadcastPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String>
[-Tenant <Guid>] [-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsTeamsMeetingBroadcastPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]


[-PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use
this cmdlet to assign a policy to a user.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Not applicable to online service.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Global
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using
one of four formats: 1) the user's SIP address; 2) the user principal name (UPN ); 3) the user's domain name and
logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory
distinguished name.

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to
the default tenant policy, you can assign to $Null.

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object
minutes to read • Edit Online

Grant-CsTeamsMeetingPolicy
In ths Article

Assigns a teams meeting policy at the per-user scope. The CsTeamsMeetingPolicy cmdlets enable administrators to
control the type of meetings that users can create or the features that they can access while in a meeting. It also
helps determine how meetings deal with anonymous or external users

Syntax
Grant-CsTeamsMeetingPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Assigns a teams meeting policy at the per-user scope. The CsTeamsMeetingPolicy cmdlets enable administrators to
control the type of meetings that users can create or the features that they can access while in a meeting. It also
helps determine how meetings deal with anonymous or external users

Examples
Example 1

PS C:\> Grant-CsTeamsMeetingPolicy -identity "Ken Myer" -PolicyName StudentMeetingPolicy

In this example, a user with identity "Ken Myer" is being assigned the StudentMeetingPolicy

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using
one of four formats: 1) the user's SIP address; 2) the user principal name (UPN ); 3) the user's domain name and
logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory
distinguished name.

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to
the default tenant policy, you can assign to $Null.

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object
minutes to read • Edit Online

Grant-CsTeamsMessagingPolicy
In ths Article

Assigns a teams messaging policy at the per-user scope. Teams messaging policies determine the features and
capabilities that can be used in messaging within the teams client.

Syntax
Grant-CsTeamsMessagingPolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsTeamsMessagingPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]


[-PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Granular control over which messaging features your users can or cannot use is an important feature for many
organizations. This cmdlet lets you assign a teams messaging policy at the per-user scope. Teams messaging
policies determine the features and capabilities that can be used in messaging within the teams client.

Examples
Example 1

PS C:\> Grant-CsTeamsMessagingPolicy -identity "Ken Myer" -PolicyName StudentMessagingPolicy

In this example, a user with identity "Ken Myer" is being assigned the StudentMessagingPolicy

Parameters
-AsJob

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using
one of four formats: 1) the user's SIP address; 2) the user principal name (UPN ); 3) the user's domain name and
logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory
distinguished name.

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to
the default tenant policy, you can assign to $Null.

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object
minutes to read • Edit Online

Grant-CsTeamsUpgradePolicy
In ths Article

TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams.
IMPORTANT: TeamsUpgradePolicy has replaced TeamsInteropPolicy. However, aspects of TeamsUpgradePolicy are
still in preview mode as described below.

Syntax
Grant-CsTeamsUpgradePolicy [[-Identity] <UserIdParameter>] [-PolicyName] <string> [-Tenant <guid>] [-Confirm]
[<CommonParameters>]

Description
TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. As an
organization with Skype for Business starts to adopt Teams, administrators can manage client behavior for their
end user using the concept of coexistence "mode", which defines in which client chats and calls land. In the future,
mode will also be used to define Teams client behavior in terms of what functionality will be available. In addition,
prior to upgrading to TeamsOnly mode administrators can use TeamsUpgradePolicy to trigger notifications in the
Skype for Business client to inform users of the pending upgrade.
This cmdlet enables admins to apply TeamsUpgradePolicy to either individual users or to set the default for the
entire organization. TeamsUpgradePolicy can be granted either on a per user basis or on a tenant-wide basis.
IMPORTANT: TeamsUpgradePolicy has replaced TeamsInteropPolicy. Components that previously honored
TeamsInteropPolicy have been fully updated to honor TeamsUpgradePolicy instead. TeamsInteropPolicy is not
honored and has been been deprecated. Organizations with users in Legacy mode must update their configurations
to use a different mode.
Office 365 provides all relevant instances of TeamsUpgradePolicy via built-in, read-only policies. The built-in
instances are listed below.

IDENTITY MODE NOTIFYSFBUSERS COMMENTS

Islands Islands False

IslandsWithNotify Islands True

SfBOnly SfBOnly False For now, this mode is


effectively the same as
setting preferred client=SfB.
We expect in the future this
will restrict Teams
functionality.
IDENTITY MODE NOTIFYSFBUSERS COMMENTS

SfBOnlyWithNotify SfBOnly True For now, this mode is


effectively the same as
setting preferred client=SfB.
We expect in the future this
will restrict Teams
functionality.

SfBWithTeamsCollab SfBWithTeamsCollab False This mode exists at the


PowerShell layer but is not
yet exposed in the admin
user experience. From a
routing perspective, this is
the same as SfBOnly mode.
When
TeamsAppPermissionsPolicy
is available, this will only
allow Channels in Teams app.

SfBWithTeamsCollabWithNot SfBWithTeamsCollab True This mode exists at the


ify PowerShell layer but is not
yet exposed in the admin
user experience. From a
routing perspective, this is
the same as SfBOnly mode.
When
TeamsAppPermissionsPolicy
is available, this will only
allow Channels in Teams app.

SfBWithTeamsCollabAndMee SfBWithTeamsCollabAndMee False This mode exists at the


tings tings PowerShell layer but is not
yet exposed in the admin
user experience. From a
routing perspective, this is
the same as SfBOnly mode.
When
TeamsAppPermissionsPolicy
is available, this will allow
Channels and meeting
scheduling in Teams app.

SfBWithTeamsCollabAndMee SfBWithTeamsCollabAndMee True This mode exists at the


tingsWithNotify tings PowerShell layer but is not
yet exposed in the admin
user experience. From a
routing perspective, this is
the same as SfBOnly mode.
When
TeamsAppPermissionsPolicy
is available, this will allow
Channels and meeting
scheduling in Teams app.

UpgradeToTeams TeamsOnly False Use this mode to upgrade


users to Teams and to
prevent chat, calling, and
meeting scheduling in Skype
for Business.
IDENTITY MODE NOTIFYSFBUSERS COMMENTS

Global Islands False

NOTES:
TeamsUpgradePolicy is available in both Office 365 and in on-premises versions of Skype for Business Server, but
there are differences:
In Office 365, admins can specify both coexistence mode and whether to trigger notifications of pending
upgrade.
In on-premises with Skype for Business Server, the only available option is to trigger notifications.
TeamsUpgradePolicy in Office 365 can be granted to users homed on-premises in hybrid deployments of Skype for
Business as follows:
Coexistence mode is honored by users homed on-premises, however on-premises users cannot be granted the
UpgradeToTeams instance (mode=TeamsOnly) of TeamsUpgradePolicy. Users must be either homed in Skype
for Business Online or have no Skype account anywhere to be upgraded to TeamsOnly mode.
The NotifySfBUsers setting of Office 365 TeamsUpgradePolicy is not honored by users homed on-premises.
Instead, the on-premises version of TeamsUpgradePolicy must be used.
In Office 365, all relevant instances of TeamsUpgradePolicy are built into the system, so there is no corresponding
New cmdlet available. In contrast, Skype for Business Server does not contain built-in instances, so the New cmdlet
is available on-premises. Only NotifySfBUsers property is available in on-premises.
Instances with mode set to SfBWithTeamsCollab and SfBWithTeamsCollabAndMeetings are not yet fully functional
in terms of changing Teams client UX. From a routing perspective, this will behave like SfBOnly mode.

Examples
Example 1: Grant Policy to an individual user

PS C:\> Grant-CsTeamsUpgradePolicy -PolicyName UpgradeToTeams -Identity mike@contoso.com

The above cmdlet assigns the "UpgradeToTeams" policy to user Mike@contoso.com. This effectively upgrades the
user to Teams only mode. This command will only succeed if the user does not have an on-premises Skype for
Business account.
Example 2: Grant Policy to the entire tenant

PS C:\> Grant-CsTeamsUpgradePolicy -PolicyName SfBOnly

To grant a policy to all users in the org (except any that have an explicit policy assigned), omit the identity
parameter.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
{{Fill Identity Description}}

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-PolicyName
{{Fill PolicyName Description}}

Type: Object
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object

Notes
Legacy mode in TeamsUprgradePolicy has been deprecated and it is no longer possible to grant legacy mode.
Customers using Legacy mode must update their configuration of TeamsUpgradePolicy to use one of the other
modes.
TeamsInteropPolicy has been replaced by TeamsUpgradePolicy. All components that previously honored
TeamsInteropPolicy have been updated to honor TeamsUpgradePolicy instead. TeamsInteropPolicy is no longer
honored and should not be used for routing.

Related Links
Get-CsTeamsUpgradeConfiguration
Set-CsTeamsUpgradeConfiguration
Get-CsTeamsUpgradePolicy
Migration and interoperability guidance for organizations using Teams together with Skype for Business
minutes to read • Edit Online

Grant-CsTeamsVideoInteropServicePolicy
In ths Article

Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the
TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire
organization.

Syntax
Grant-CsTeamsVideoInteropServicePolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String>
[-Tenant <System.Guid>] [-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsTeamsVideoInteropServicePolicy [-PolicyName] <String> [-Tenant <System.Guid>]


[-DomainController <Fqdn>] [-PassThru] [-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the
TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire
organization. Microsoft provides pre-constructed policies for each of our supported partners that allow you to
designate which of the partners to use for cloud video interop.
The Grant-CsTeamsVideoInteropServicePolicy cmdlet allows you to assign a pre-constructed policy across your
whole organization or only to specific users.

Examples
Example 1

PS C:\> Grant-CsTeamsVideoInteropServicePolicy -PolicyName ServiceProviderDisabled

In this example, Cloud Video Interop has been disabled for the entire tenant, except for those users that have an
explicit policy assigned to them.
Example 2

PS C:\> Grant-CsTeamsVideoInteropServicePolicy -PolicyName ServiceProviderDisabled -Identity bob@contoso.com

In this example, Cloud Video Interop has been disabled only for one user - Bob - but the default tenant policy has
been left on for all other users who do not have an explicit assignment.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Internal Microsoft use only.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Global
Use this flag to override the warning when assigning the global policy for your tenant.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
{{Fill Identity Description}}

Type: UserIdParameter
Required: False
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the
policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy.
Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object
minutes to read • Edit Online

Grant-CsTenantDialPlan
In ths Article

Use the Grant-DsTenantDialPlan cmdlet to assign an existing tenant dial plan to a user.

Syntax
Grant-CsTenantDialPlan [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The Grant-DsTenantDialPlan cmdlet assigns an existing tenant dial plan to a user. Tenant dial plans provide
information that is required for Enterprise Voice users to make telephone calls. Users who do not have a valid
tenant dial plan cannot make calls by using Enterprise Voice. A tenant dial plan determines such things as how
normalization rules are applied, and whether a prefix must be dialed for external calls.
You can check whether a user has been granted a per-user tenant dial plan by calling a command in this format:
Get-CsOnlineUser "\<user name\>" | Select-Object TenantDialPlan.

Examples
-------------------------- Example 1 --------------------------
(Skype for Business Online)

Grant-CsTenantDialPlan -PolicyName Vt1tenantDialPlan9 -Identity (Get-CsOnlineUser Vt1_User1).SipAddress

This example grants the Vt1tenantDialPlan9 dial plan to Vt1_User1.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter are either the fully qualified domain name (FQDN ) or the computer name.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter identifies the user to whom the policy should be assigned.

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The PolicyName parameter is the name of the tenant dial plan to assign to the specified user.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Grant-CsThirdPartyVideoSystemPolicy
In ths Article

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.

Syntax
Grant-CsThirdPartyVideoSystemPolicy [-Identity] <UserIdParameter> [-PolicyName] <String> [-Confirm]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably
audio and video). In Skype for Business Server, 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.
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. The
Grant-CsThirdPartyVideoSystemPolicy cmdlet provides a way for administrators to assign (or unassign) third-party
video system policies created at the per-user scope.
Note that this cmdlet can only be used to assign per-user policies; that's because policies at the global or the site
scope do not need to be assigned. If you want a VTC device to be managed by the global policy or (if available) the
device site policy, simply unassign any per-user policy previously assigned to the device.

Examples
-------------------------- Example 1 --------------------------

Get-CsThirdPartyVideoSystem -Filter {DisplayName -eq "Redmond Video Device"} | Grant-


CsThirdPartyVideoSystemPolicy -PolicyName "RedmondVideoSystemPolicy"

The command shown in Example 1 assigns the third-party video system policy RedmondVideoSystemPolicy to the
VTC device with the Active Directory display name Redmond Video Device. To do this, the command first uses the
Get-CsThirdPartyVideoSystem cmdlet and the Filter parameter to return the device with the display name
Redmond Video Device. This device is then piped to the Grant-CsThirdPartyVideoSystemPolicy cmdlet, which
assigns the device the policy RedmondVideoSystemPolicy.
-------------------------- Example 2 --------------------------
Get-CsThirdPartyVideoSystem -Filter {DisplayName -eq "Redmond Video Device"} | Grant-
CsThirdPartyVideoSystemPolicy -PolicyName $Null

The command shown in Example 2 is effectively the inverse of the command shown in Example 1: in this case, any
per-user policy previously assigned to Redmond Video Device is removed. (Per-user policies can be removed by
setting the PolicyName to a null value.) After the policy has been removed, the device will be managed by using the
appropriate site policy. If no site policy exists then Redmond Video Device will be managed by using the global
policy.
-------------------------- Example 3 --------------------------

Get-CsThirdPartyVideoSystem -Filter {ThirdPartyVideoSystemPolicy -eq $Null} | Grant-


CsThirdPartyVideoSystemPolicy -PolicyName "RedmondVideoSystemPolicy"

Example 3 assigns the per-user video system policy RedmondVideoSystemPolicy to any VTC device that has not
been assigned a per-user policy. To do this, the command first uses the Get-CsUser cmdlet and the Filter parameter
to return a collection of all the devices that have not been assigned a per-user policy. (In other words, all the devices
whose ThirdPartyVideoSystemPolicy property has been set to a null value.) That collection is then piped to the
Grant-CsThirdPartyVideoSystemPolicy cmdlet, which assigns each device the RedmondVideoSystemPolicy policy.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to specify the fully qualified domain name (FQDN ) of a domain controller to be contacted when
assigning the new policy. If this parameter is not specified then the Grant-CsThirdPartyVideoSystemPolicy cmdlet
will contact the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the video system being assigned the per-user policy. Video systems are identified by using the
Active Directory distinguished name (DN ) of the associated contact object. By default, video systems use a GUID
(globally unique identifier) as their common name, which means systems will typically have an Identity similar to
this: CN={ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com. This means you
might find it easier to modify third-party video systems by using the Get-CsThirdPartyVideoSystem cmdlet to
return the devices and then piping those objects to the Grant-CsThirdPartyVideoSystemPolicy cmdlet.
Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a contact object through the pipeline that represents the user being assigned the policy. By
default, the Grant-CsThirdPartyVideoSystemPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the
Identity tag:RedmondUsersVideoPolicy has a PolicyName equal to RedmondUsersVideoPolicy. To unassign a per-
user policy previously assigned to a user, set the PolicyName to a null value ($Null).

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Grant-
CsThirdPartyVideoSystemPolicy cmdlet accepts pipelined input of string values representing the Identity of a user
account. The cmdlet also accepts pipelined input of user objects.

Outputs
By default, the Grant-CsThirdPartyVideoSystemPolicy cmdlet does not return a value or object. However, if you
include the PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ThirdPartyVideoSystem.ThirdPartyVideoSystemPolicy object.
Related Links
Get-CsThirdPartyVideoSystemPolicy
New -CsThirdPartyVideoSystemPolicy
Remove-CsThirdPartyVideoSystemPolicy
Set-CsThirdPartyVideoSystemPolicy
minutes to read • Edit Online

Grant-CsUserServicesPolicy
In ths Article

Assigns a per-user User Services policy to one or more users. User Services policies determine whether or not a
user's contacts are stored in Skype for Business Server or in the Unified Contact Store. The Unified Contact Store
provides a way for users to maintain a single set of contacts that can be accessed using Skype for Business,
Microsoft Outlook, and/or Microsoft Outlook Web Access. This cmdlet was introduced in Lync Server 2013.

Syntax
Grant-CsUserServicesPolicy [-Identity] <UserIdParameter> [[-PolicyName] <String>] [-Confirm]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
The unified contact store introduced in Skype for Business Server gives administrators the option of storing a
user's contacts in Skype for Business instead of in Skype for Business Server; in turn that allows the user to access
the same set of contacts in Microsoft Outlook and Outlook Web Access as well as in Skype for Business.
(Alternatively, you can continue to store contacts in Skype for Business Server. In that case, users will have to
maintain two separate sets of contacts: one for use with Outlook and Outlook Web Access, and one for use with
Skype for Business.)
In order to take advantage of the unified contact store you must (among other things) assign the user a user
services policy that enables the use of the unified contact store. User service policies (which can be configured at
the global, site, or the per-user scope) contain only a single property: UcsAllowed. When this property is set to True
then (assuming all the other prerequisites have been met) the next time a user logs on to Skype for Business Server
his or her contacts will automatically be migrated to the unified contact store.
If this property is set to False this automatic migration will not take place. However, simply setting UcsAllowed will
not cause a user's contacts to be moved from the unified contact store back to Skype for Business Server. In order
to do that, you must first assign the user a user services policy that does not allow the use of the unified contact
store. After that, you must then use the Invoke-CsUcsRollback cmdlet to "manually" migrate the contacts from the
unified contact store back to Skype for Business Server.
Skype for Business Server Control Panel: The functions carried out by the Grant-CsUserServicesPolicy cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Grant-CsUserServicesPolicy -Identity "Ken Myer" -PolicyName "RedmondUserServicesPolicy"

The command shown in Example 1 assigns the per-user User Services policy RedmondUserServicesPolicy to the
user with the Identity (in this example, the Active Directory display name) Ken Myer.
-------------------------- Example 2 --------------------------

Grant-CsUserServicesPolicy -Identity "Ken Myer" -PolicyName $Null

Example 2 unassigns any per-user Users Services policy previously assigned to Ken Myer. Per-user policies are
unassigned by setting the PolicyName parameter to a Null value ($Null).
-------------------------- Example 3 --------------------------

Get-CsUser -Filter {RegistrarPool -eq "atl-cs-001.litwareinc.com"} | Grant-CsUserServicesPolicy -PolicyName


"RedmondUserServicesPolicy"

In Example 3, all the users on the RegistrarPool atl-cs-001.litwareinc.com are assigned the per-user Users Services
policy RedmondUserServicesPolicy. To do this, the Get-CsUser cmdlet is first called along with the Filter parameter;
the filter value {RegistrarPool -eq "atl-cs-001.litwareinc.com" limits the returned data to users who have been
homed on the Registrar pool atl-cs-001.litwareinc.com. This collection of users is then piped to the Grant-
CsUserServicesPolicy cmdlet, which, in turn assigns the policy RedmondUserServicesPolicy to each user in the
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve user information. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-dc-001) or its fully qualified domain name (FQDN ) (for example, atl-dc-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be assigned the per-user user experience policy. User Identities are
typically specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3)
the user's domain name and logon name, in the form domain\logon (four example, litwareinc\kenmyer); and, 4) the
user's Active Directory display name (for example, Ken Myer).
User Identities can also be specified by using the user's Active Directory distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users who have a display name that ends with the string value "
Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being assigned the policy.
By default, the Grant-CsUserServicesPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy
with the Identity tag:RedmondUserExperiencePolicy has a PolicyName equal to RedmondUserExperiencePolicy.
To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null).

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Grant-CsUserServicesPolicy
cmdlet accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
By default, the Grant-CsUserServicesPolicy cmdlet does not return a value or object. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact.

Related Links
Get-CsUserServicesPolicy
New -CsUserServicesPolicy
Remove-CsUserServicesPolicy
Set-CsUserServicesPolicy
minutes to read • Edit Online

Grant-CsVoicePolicy
In ths Article

Assigns a voice policy to one or more users or groups. This cmdlet was introduced in Lync Server 2010.

Syntax
Grant-CsVoicePolicy [[-Identity] <UserIdParameter>] [-PolicyName] <String> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Grant-CsVoicePolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>] [-PassThru]


[-Global] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet assigns an existing per-user voice policy to a user. Voice policies are used to manage such Enterprise
Voice-related features as simultaneous ringing (the ability to have a second phone ring each time someone calls
your office phone) and call forwarding. Use this cmdlet to assign the settings that enable and disable these features
for a specific user.
You can check whether a user has been granted a per-user voice policy by calling a command in this format:
Get-CsUser "\<user name\>" | Select-Object VoicePolicy. For example:

Get-CsUser "Ken Myer" | Select-Object VoicePolicy

Examples
-------------------------- EXAMPLE 1 --------------------------

Grant-CsVoicePolicy -Identity "Ken Myer" -PolicyName VoicePolicyRedmond

This example assigns the voice policy with the Identity VoicePolicyRedmond to the user with the display name Ken
Myer.
-------------------------- EXAMPLE 2 --------------------------

Get-CsUser -OU "ou=Finance,ou=North America,dc=litwareinc,dc=com" | Grant-CsVoicePolicy -PolicyName


VoicePolicyRedmond

This example assigns the voice policy with the Identity VoicePolicyRedmond to all users in the Finance OU:
OU=Finance,OU=NorthAmerica,DC=litwareinc,DC=com. The first part of the command calls the Get-CsUser
cmdlet to retrieve all users enabled for Skype for Business Server from the specified OU. This collection of users is
then piped to the Grant-CsVoicePolicy cmdlet, which assigns the policy VoicePolicyRedmond to each of these users.
Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity (unique identifier) of the user to whom the policy is being assigned.
User identities can be specified by using one of four formats: 1) The user's SIP address; 2) the user principal name
(UPN ); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer);
and, 4) the user's Active Directory display name (for example, Ken Myer).
Note that you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" would return all the users with the last name Smith.
Full Data Type: Microsoft.Rtc.Management.AD.UserIdParameter
Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Returns the results of the command. By default, this cmdlet does not generate any output.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
The name (Identity) of the voice policy to be assigned to the user. (Note that this includes only the name portion of
the Identity. Per-user policy identities include a prefix of tag: that should not be included with the PolicyName.)

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose federation settings are being returned. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return your tenant ID by running this command:


Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String. Accepts a pipelined string value representing the Identity of a user account to which the voice policy is being
granted.

Outputs
When used with the PassThru parameter, returns an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADUserOrAppContact.

Related Links
New -CsVoicePolicy
Remove-CsVoicePolicy
Set-CsVoicePolicy
Get-CsVoicePolicy
Test-CsVoicePolicy
Get-CsUser
Get-CsOnlineUser
minutes to read • Edit Online

Grant-CsVoiceRoutingPolicy
In ths Article

Assigns a per-user voice routing policy to one or more users. Voice routing policies manage PSTN usages for users
of hybrid voice. Hybrid voice enables users homed on Skype for Business Online to take advantage of the
Enterprise Voice capabilities available in an on-premises installation of Skype for Business Server. This cmdlet was
introduced in Lync Server 2013.

Syntax
Grant-CsVoiceRoutingPolicy [-PolicyName] <String> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Identity] <UserIdParameter> [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Voice routing policies are used in "hybrid" scenarios: when some of your users are homed on the on-premises
version of Skype for Business Server and other users are homed on Skype for Business Online. Assigning your
Skype for Business Online users a voice routing policy enables those users to receive and to place phone calls to
the public switched telephone network by using your on-premises SIP trunks.
Note that simply assigning a user a voice routing policy will not enable them to make PSTN calls via Skype for
Business Online. Among other things, you will also need to enable those users for Enterprise Voice and will need to
assign them an appropriate voice policy and dial plan.
Skype for Business Server Control Panel: The functions carried out by the Grant-CsVoiceRoutingPolicy cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Grant-CsVoiceRoutingPolicy -Identity "Ken Myer" -PolicyName "RedmondVoiceRoutingPolicy"

The command shown in Example 1 assigns the per-user voice routing policy RedmondVoiceRoutingPolicy to the
user with the Active Directory display name "Ken Myer".
-------------------------- Example 2 --------------------------

Grant-CsVoiceRoutingPolicy -Identity "Ken Myer" -PolicyName $Null

In Example 2, any per-user voice routing policy previously assigned to the user Ken Myer is unassigned from that
user; as a result, Ken Myer will be managed by the global voice routing policy. To unassign a per-user policy, set the
PolicyName to a null value ($Null).
-------------------------- Example 3 --------------------------
Get-CsUser -OU "OU=Redmond,dc=litwareinc,dc=com" | Grant-CsVoiceRoutingPolicy -PolicyName
"RedmondVoiceRoutingPolicy"

Example 3 assigns the per-user voice routing policy RedmondVoiceRoutingPolicy to all the users in the Redmond
OU in Active Directory. To do this, the command first calls the Get-CsUser cmdlet long with the OU parameter; the
parameter value "OU=Redmond,dc=litwareinc,dc=com" limits the returned data to user accounts in the Redmond
OU. Those user accounts are then piped to the Grant-CsVoiceRoutingPolicy cmdlet, which assigns each user the
voice routing policy RedmondVoiceRoutingPolicy.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve user information. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-dc-001) or its fully qualified domain name (FQDN ) (for example, atl-dc-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be assigned the per-user voice routing policy. User Identities are
typically specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3)
the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the
user's Active Directory display name (for example, Ken Myer).
User Identities can also be specified by using the user's Active Directory distinguished name.
In addition, you can use the asterisk (*) wildcard character when using the Display Name as the user Identity. For
example, the Identity "* Smith" returns all the users who have a display name that ends with the string value "
Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being assigned the voice
routing policy. By default, the Grant-CsVoiceRoutingPolicy cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyName
"Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:"
prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy
with the Identity tag:RedmondVoiceRoutingPolicy has a PolicyName equal to RedmondVoiceRoutingPolicy.
To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null).

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Grant-CsVoiceRoutingPolicy
cmdlet accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
By default, the Grant-CsVoiceRoutingPolicy cmdlet does not return a value or object. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact.

Related Links
Get-CsVoiceRoutingPolicy
New -CsVoiceRoutingPolicy
Remove-CsVoiceRoutingPolicy
Set-CsVoiceRoutingPolicy
minutes to read • Edit Online

Import-CSAnnouncementFile
In ths Article

Imports an announcement file to the Announcement service audio library. This cmdlet was introduced in Lync
Server 2010.

Syntax
Import-CSAnnouncementFile [-Parent] <String> -FileName <String> -Content <Byte[]> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
This cmdlet imports an audio file as a byte array to the Announcement service audio library. This makes the file
available for playback as an announcement for unassigned numbers.
Running this cmdlet imports the audio file to the library. After the file has been imported, the file can be used in an
announcement by calling the New -CsAnnouncement cmdlet or the Set-CsAnnouncement cmdlet and passing the
file name and associated service as parameters. At that point the New -CsUnassignedNumber or Set-
CsUnassignedNumber cmdlet can be called to assign the announcement to a specific range of numbers.
Imported files must be WAV or WMA files.

Examples
-------------------------- EXAMPLE 1 --------------------------

$a = Get-Content ".\GreetingFile.wav" -ReadCount 0 -Encoding Byte

Import-CsAnnouncementFile -Parent ApplicationServer:redmond.litwareinc.com -FileName "WelcomeMessage.wav" -


Content $a

These commands import an audio file into the Announcement service File Store. Because audio files must be
imported as byte arrays, we first need to call the Get-Content cmdlet to retrieve the audio file as an array of
individual bytes. Get-Content is a Windows PowerShell built-in cmdlet to which we pass the name (including path)
of the file we want to use for our announcement. Next we pass a value of 0 to the ReadCount parameter, meaning
we want to read the whole file at once. We then pass a value of Byte to the Encoding parameter, which tells Get-
Content that we want the contents of the file as an array of bytes. We assign that array to the variable $a.
In the second line we call the Import-CsAnnouncementFile cmdlet to actually import the file. We pass the service
Identity ApplicationServer:redmond.litwareinc.com to the Parent parameter, then we pass a name to the FileName
parameter (WelcomeMessage.wav). This can be any valid Windows operating system file name, but it should end
with a .wav or .wma extension. Finally, we pass the variable $a as the value to the Content parameter to read in our
byte array.
-------------------------- EXAMPLE 2 --------------------------
Import-CsAnnouncementFile -Parent ApplicationServer:redmond.litwareinc.com -FileName "WelcomeMessage.wav" -
Content (Get-Content ".\GreetingFile.wav" -ReadCount 0 -Encoding Byte)

Example 2 is identical to Example 1 except that we included the Get-Content command inside parentheses as a
value to the Content parameter rather than calling that command on its own and assigning it to a variable.
-------------------------- EXAMPLE 3 --------------------------

Get-Content ".\GreetingFile.wav" -ReadCount 0 -Encoding Byte | Import-CsAnnouncementFile -Parent


ApplicationServer:redmond.litwareinc.com -FileName "WelcomeMessage.wav"

Example 3 is yet another variation of Example 1. The difference in this example is that rather than use the Content
parameter, we first call the Get-Content cmdlet, then pipe the results to Import-CsAnnouncementFile. This is the
most reliable way of importing an announcement file from a remote session.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Content
The contents of the audio file as a byte array.

Type: Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-FileName
The name that you want the file to have in the File Store. You will use this name in the AudioFilePrompt parameter
in the call to the New -CsAnnouncement or Set-CsAnnouncement cmdlet to assign the file to an announcement.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
The service ID of the Application Server on which the associated Announcement service is running.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Byte[]. Accepts a byte array from an audio file. Byte array must be piped as a single record. See Example 3.

Outputs
This cmdlet does not return a value.
minutes to read • Edit Online

Import-CsAutoAttendantHolidays
In ths Article

Use Import-CsAutoAttendantHolidays cmdlet to import holiday schedules of an existing Auto Attendant (AA) that
were previously exported using the Export-CsAutoAttendantHolidays cmdlet.

Syntax
Import-CsAutoAttendantHolidays -Identity <String> -Input <byte[]> [-Tenant <Guid>] [<CommonParameters>]

Description
The Export-CsAutoAttendantHolidays cmdlet and the Import-CsAutoAttendantHolidays cmdlet enable you to
export holiday schedules in your auto attendant and then later import that information. This can be extremely
useful in a situation where you need to configure same holiday sets in multiple auto attendants.
The Export-CsAutoAttendantHolidays cmdlet returns the holiday schedule information in serialized form (as a byte
array). The caller can then write the bytes to the disk to obtain a CSV file. Similarly, the Import-
CsAutoAttendantHolidays cmdlet accepts the holiday schedule information as a byte array, which can be read from
the aforementioned CSV file. The first line of the CSV file is considered a header record and is always ignored.
NOTE
Each line in the CSV file used by Export-CsAutoAttendantHolidays and Import-CsAutoAttendantHolidays
cmdlet should be of the following format:
HolidayName,StartDateTime1,EndDateTime1,StartDateTime2,EndDateTime2,…,StartDateTime10,EndDateTime10

where
HolidayName is the name of the holiday to be imported.
StartDateTimeX and EndDateTimeX specify a date/time range for the holiday and are optional. If no date-time
ranges are defined, then the holiday is imported without any date/time ranges. They follow the same format as
New -CsOnlineDateTimeRange cmdlet.
EndDateTimeX is optional. If it is not specified, the end bound of the date time range is set to 00:00 of the day
after the start date.
The first line of the CSV file is considered a header record and is always ignored by Import-
CsAutoAttendantHolidays cmdlet.
If the destination auto attendant for the import already contains a call flow or schedule by the same name as one of
the holidays being imported, the corresponding CSV record is skipped.
For holidays that are successfully imported, a default call flow is created which is configured without any greeting
and simply disconnects the call on being executed.

Examples
-------------------------- Example 1 --------------------------
$bytes = [System.IO.File]::ReadAllBytes("C:\Imports\Holidays.csv")
Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -Input $bytes

In this example, the Import-CsAutoAttendantHolidays cmdlet is used to import holiday schedule information from
a file at path “C:\Imports\Holidays.csv” to an auto attendant with Identity of 6abea1cd-904b-520b-be96-
1092cc096432.
-------------------------- Example 2 --------------------------

$bytes = [System.IO.File]::ReadAllBytes("C:\Imports\Holidays.csv")
Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -Input $bytes | Format-Table -
Wrap -AutoSize

In this example, the Import-CsAutoAttendantHolidays cmdlet is used to import holiday schedule information from
a file at path “C:\Imports\Holidays.csv” to an auto attendant with Identity of 6abea1cd-904b-520b-be96-
1092cc096432. The result of the import process is formatted as a table.

Parameters
-Identity
The identity for the AA whose holiday schedules are to be imported.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Input
The Input parameter specifies the holiday schedule information that is to be imported.

Type: System.Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Import-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter.
Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult

Related Links
Export-CsAutoAttendantHolidays
Get-CsAutoAttendantHolidays
minutes to read • Edit Online

Import-CsCertificate
In ths Article

Imports a certificate for use with Skype for Business Server. If a certificate is not acquired by using the Request-
CsCertificate cmdlet, then that certificate must be imported before it can be assigned to a Skype for Business
Server server role. This cmdlet was introduced in Lync Server 2010.

Syntax
Import-CsCertificate -Path <String> [-Password <String>] [-PrivateKeyExportable <Boolean>] [-Force]
[-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Import-CsCertificate [-Identity] <XdsIdentity> -Path <String> -Type <CertType[]> [-Confirm]


[-EffectiveDate <DateTime>] [-Force] [-Password <String>] [-Report <String>] [-Roll] [-WhatIf]
[<CommonParameters>]

Import-CsCertificate -Path <String> [-Confirm] [-EffectiveDate <DateTime>] [-Force] [-Password <String>]


[-PrivateKeyExportable <Boolean>] [-Report <String>] [-Roll] [-WhatIf] [<CommonParameters>]

Description
Skype for Business Server uses certificates as a way for servers and server roles to verify their identities; for
example, an Edge Server uses certificates to verify that the computer it is communicating with really is a Front End
Server and vice versa. In order to fully implement Skype for Business Server you will need to have the appropriate
certificates assigned to the appropriate server roles.
In order for certificates to be assigned to a Skype for Business Server role those certificates must be made known
to Skype for Business Server. The Request-CsCertificate cmdlet enables you to make both online and offline
requests for new certificates. If an online request is made, the certificate will automatically be downloaded and
saved in the local certificate store; equally important, it will be immediately available for use by Skype for Business
Server. If an offline request is made, a certificate file will be sent to you. At that point, you can use the Import-
CsCertificate cmdlet to import the certificate, a process that makes the certificate available for assignment to a
Skype for Business Server server role.

Examples
-------------------------- EXAMPLE 1 --------------------------

Import-CsCertificate -Path "C:\Certificates\WebServer.pfx" -PrivateKeyExportable $True

The command shown in Example 1 imports the certificate C:\Certificates\WebServer.pfx. After the command
completes, the certificate will be available to be assigned to a server role.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EffectiveDate
Date and time when the certificate can first be used. For example, to configure a certificate for first use at 8:00 AM
on July 31, 2012 use this syntax on a server running under the US English Region and Language settings:
-EffectiveTime "7/31/2012 8:00 AM"

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
When set to Global, enables the certificate to function at the global scope. Global certificates will automatically be
copied and distributed to the appropriate computers.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Password
Password associated with the certificate file.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Path
Full path to the certificate file to be imported. For example: -Path "C:\Certificates\WebServer.cer".

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrivateKeyExportable
When set to True, ensures that the private key portion of the certificate can be read by the Network Service
account.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\Certificates.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Roll
Enables you to update the specified certificate at the date and time specified by the EffectiveDate parameter; this
enables you to specify a date and time when the new certificate will become the primary certificate. Note that your
command will fail if you specify the Roll parameter without including the EffectiveDate parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Type of certificate being requested. Certificate types include, but are not limited to, the following:
AccessEdgeExternal
AudioVideoAuthentication
DataEdgeExternal
Default
External
Internal
iPadAPNService
iPhoneAPNService
LogRetentionService
MPNService
OAuthTokenIssuer
PICWebService
ProvisionService
SMPDNSWebService
TenantAdmin
UpgradeEngineService
WebServicesExternal
WebServicesInternal
WsFedTokenTransfer
XMPPServer

Type: CertType[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None. Import-CsCertificate does not accept pipelined input.

Inputs
None. The Import-CsCertificate cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Get-CsCertificate
Remove-CsCertificate
Request-CsCertificate
Set-CsCertificate
minutes to read • Edit Online

Import-CsCompanyPhoneNormalizationRules
In ths Article

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

Syntax
Import-CsCompanyPhoneNormalizationRules [[-Identity] <XdsIdentity>] -FileName <String> [-Confirm] [-Force]
[-WhatIf] [<CommonParameters>]

Import-CsCompanyPhoneNormalizationRules -FileName <String> [-Confirm] [-Force] [-Instance <PSObject>] [-WhatIf]


[<CommonParameters>]

Description
Address Book phone normalization rule configurations have been migrated from the plain text file
Company_Phone_Number_Normalization_Rules.txt to central management configuration in Skype for Business
Server for easier and more convenient manageability. In order for the Skype for Business Server Address Book
service to pick up custom normalization rules, normalization rule definitions must be in the central management
configuration store. The Import-CsCompanyPhoneNormalizationRules cmdlet reads all custom normalization rules
defined in the file specified by the FileName parameter and ensures the same normalization rules exist in the
central management configuration store. Company_Phone_Number_Normalization_Rules.txt and phone
normalization rules defined in central management store must be kept in sync until the environment is fully
migrated to Skype for Business Server.
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.

Examples
-------------------------- Example 1 --------------------------

Import-CsCompanyPhoneNormalizationRules -Filename "C:\Data\Company_Phone_Number_Normalization_Rules.txt" -


Identity Global

This example reads the phone normalization rules at the specified path and applies them globally.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Specifies the full path to the input Company_Phone_Number_Normalization_Rules.txt file. For example:
-FileName "C:\Data\Company_Phone_Number_Normalization_Rules.txt"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the address book normalization configuration settings to be updated. To modify the global
settings, use this syntax:
-Identity global

To modify settings configured at the site scope:


-Identity site:Redmond

To modify settings at the service level:


-Identity service:Registrar:atl-cs-001.litwareinc.com

Note that address book normalization configuration settings can only be applied to the Registrar service. An error
will occur if you try to apply these settings to any other service.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None

Related Links
Set-CsAddressBookNormalizationConfiguration
Remove-CsAddressBookNormalizationConfiguration
New -CsAddressBookNormalizationConfiguration
Get-CsAddressBookNormalizationConfiguration
minutes to read • Edit Online

Import-CsConfiguration
In ths Article

Imports your Skype for Business Server topology, policies, and configuration settings to either the Central
Management store or to the local computer. This cmdlet was introduced in Lync Server 2010.

Syntax
Import-CsConfiguration [-ByteInput] <Byte[]> [-Force] [-LocalStore] [<CommonParameters>]

Import-CsConfiguration [-FileName] <String> [-Force] [-LocalStore] [<CommonParameters>]

Description
Computers that run Skype for Business Server services or server roles must have a copy of the current topology,
current configuration settings, current policies, and so on before they can function in their appointed role. Skype for
Business Server is responsible for ensuring that this information is passed along to each computer that needs it.
The Import-CsConfiguration cmdlet and Export-CsConfiguration cmdlet are used to backup and restore your
Skype for Business Server topology, configuration settings, and policies during a Central Management store
upgrade. The Export-CsConfiguration cmdlet enables you to export data to a .ZIP file; you can then use the Import-
CsConfiguration cmdlet to read that .ZIP file and restore the topology, settings, and policies to the Central
Management store. After that, the Skype for Business Server replication services will replicate the restored
information to computers running services.
The ability to export and import configuration data is also used when initially configuring computers located in
your perimeter network (for example, Edge Server). When configuring a computer located in the perimeter
network, you must first perform a manual replication using the CsConfiguration cmdlets: you will need to export
the configuration data using the Export-CsConfiguration cmdlet and then copy the .ZIP file to the computer in the
perimeter network. After that, you can use the Import-CsConfiguration cmdlet and the LocalStore parameter to
import the data. You only need to do this once; after that, replication will take place automatically.

Examples
-------------------------- EXAMPLE 1 --------------------------

Import-CsConfiguration -FileName "C:\Config.zip"

The command shown in Example 1 imports the current topology, configuration settings, and policies from a file
named C:\Config.zip to the Central Management store.
-------------------------- EXAMPLE 2 --------------------------
Import-CsConfiguration -FileName "C:\Config.zip" -LocalStore

Example 2 shows how data can be initially replicated to a computer located in the perimeter network. In this
example, configuration data has been exported to a file named Config.zip; this file has then been copied to the C:\
folder on the computer located in the perimeter network. Import-CsConfiguration is then used to import that data,
with the LocalStore parameter causing that data to be imported to the local computer instead of the Central
Management store.
-------------------------- EXAMPLE 3 --------------------------

$x = Export-CsConfiguration -AsBytes

Import-CsConfiguration -ByteInput $x -LocalStore

The two commands shown in Example 3 export the current topology, configuration settings, and policies and then
import that data to the local computer, all without using a .ZIP file. To do this, the first command uses the Export-
CsConfiguration cmdlet and the AsBytes parameter to export the current topology, configuration settings, and
policies as a byte array; this byte array is stored in a variable named $x. In the second command, the Import-
CsConfiguration cmdlet and the ByteInput parameter are used to import the information stored in $x. The
LocalStore parameter causes the data to be imported to the local computer instead of the Central Management
store. The net effect is that data is copied from the Central Management store to the local computer.

Parameters
-ByteInput
Reads topology information from a byte array stored in a variable. This byte array is created by using the ByteInput
parameter when calling the Export-CsConfiguration cmdlet.
You cannot use both the ByteInput parameter and the FileName parameter in the same command.

Type: Byte[]
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-FileName
Path to the .ZIP file created by Export-CsConfiguration. For example: -FileName "C:\Config.zip". Note that you
must include either the FileName or the ByteInput parameter, but not both, when calling the Import-
CsConfiguration cmdlet.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Bypasses any prompts that would otherwise appear should a non-fatal error occur when running the command. To
set the Force parameter to True, use this syntax:
-Force:$True

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Copies the configuration data to the local computer rather than the Central Management store.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Import-CsConfiguration cmdlet does not accept pipelined input.

Outputs
The Import-CsConfiguration cmdlet does not return any values or objects.

Related Links
Export-CsConfiguration
minutes to read • Edit Online

Import-CsDeviceUpdate
In ths Article

Imports a set of device update rules downloaded from the Microsoft website. Device update rules associate
firmware version updates with hardware devices running Skype for Business Phone Edition. This cmdlet was
introduced in Lync Server 2010.

Syntax
Import-CsDeviceUpdate [-Identity] <XdsIdentity> -FileName <String> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Periodically, Microsoft releases a new set of device update rules for Skype for Business Phone Edition. These rules
represent firmware updates for devices that run Skype for Business Phone Edition. After these rules have been
imported, administrators can test the firmware updates and then, assuming the tests succeed, can make the
updates available to all the relevant devices used in the organization.
The only way to create new update rules is to download update packs from Microsoft; you cannot create your own
device update rules. To obtain the latest set of device update rules, go to the Help and Support page on the
Microsoft website and search for "Phone Edition". Download the update package and extract the files to a folder on
the computer where the updates are to be uploaded. After the files have been extracted, you can then use the
Import-CsDeviceUpdate cmdlet to import the device update rules found in the extracted .CAB file (which will have
the name UCUpdates.cab).
As noted, updates can only be loaded locally; you will need to copy UCUpdates.cab to any computer running the
Web Services service that needs to host device update rules. Keep in mind as well that device update rules are not
replicated from server-to-server. If you want all the device update rules throughout your organization to remain in
sync you will need to perform the same operation on each server hosting these rules. For example, if you remove a
rule from one Web Services server you will then need to remove that same rule from your other Web Services
servers. Otherwise, your device update rules will no longer be in sync.
Update rules can only be imported to services; they are not applicable at the global, site, or per-user scopes. Note,
however, that the Import-CsDeviceUpdate cmdlet does not automatically add rules and updates to every service in
a site; instead, it loads those rules and updates only to the specified service. For example, if you have three servers
in a site running Web Services, you will need to run the Import-CsDeviceUpdate cmdlet three times, one for each
instance of Web Services. Alternatively, you can use a command like the one shown in Example 3; this one
command retrieves the Identity of all your servers Web Services and then runs the Import-CsDeviceUpdate cmdlet
against each of those servers.

Examples
-------------------------- EXAMPLE 1 --------------------------
Import-CsDeviceUpdate -Identity "service:WebServer:atl-cs-001.litwareinc.com" -FileName
C:\Updates\UCUpdates.cab

The command shown in Example 1 imports device update rules from the file C:\Updates\UCUpdates.cab.
-------------------------- EXAMPLE 2 --------------------------

Import-CsDeviceUpdate -Identity "service:WebServer:atl-cs-001.litwareinc.com" -FileName \\\\atl-fs-


001\Updates\UCUpdates.cab

The command shown in Example 2 imports device update rules from the UNC path \\atl-fs-
001\Updates\UCUpdates.cab.
-------------------------- EXAMPLE 3 --------------------------

Get-CsService -WebServer | ForEach-Object {Import-CsDeviceUpdate -Identity $_.Identity -FileName


C:\Updates\UCUpdates.cab}

Example 3 shows how you can use a single command to import device update rules to all your servers running
Web Services. To do this, the command first calls the Get-CsService cmdlet, along with the WebServer parameter, in
order to return a collection of all of your servers running the Web Services service. This collection is then piped to
the ForEach-Object cmdlet, which loops through each server in the collection and uses the Import-CsDeviceUpdate
cmdlet to update the latest device update rules to those servers. Note that this command will work only if you have
copied UCUpdates.cab to the same location (C:\Updates) on all your servers.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Path to the update file (for example, C:\Updates\UCUpdates.cab).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the service instance where the new update rules will be applied. For example:
-Identity "service:WebServer:atl-cs-001.litwareinc.com".

The Identity should be the fully qualified domain name of the Front End pool where the Web server is installed.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Import-CsDeviceUpdate cmdlet does not accept pipelined input.

Outputs
The Import-CsDeviceUpdate cmdlet imports instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Rule class.

Related Links
Get-CsDeviceUpdateRule
minutes to read • Edit Online

Import-CsLegacyConferenceDirectory
In ths Article

The Import-CsLegacyConferenceDirectory cmdlet enables you to import conference directories from Microsoft
Office Communications Server 2007 R2 to Skype for Business Server. This helps provide interoperability between
Skype for Business Server and Office Communications Server 2007 R2. This cmdlet was introduced in Lync Server
2010.

Syntax
Import-CsLegacyConferenceDirectory [-Report <String>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The Import-CsLegacyConferenceDirectory cmdlet is used in conjunction with the Merge-CsLegacyTopology cmdlet
to enable organizations to migrate from Office Communications Server 2007 R2 to Skype for Business Server. The
Import-CsLegacyConfiguration cmdlet imports conferencing directories from Communications Server 2007 R2 to
Skype for Business Server.
Before you can run the Import-CsLegacyConferenceDirectory cmdlet, you must first install the Windows
Management Instrumentation (WMI) Backward Compatibility interfaces package; this application is installed by
running OCSWMIBC.msi. (OCSWMIBC.msi can be found on the Skype for Business Server installation DVD in the
Setup folder.) After installing the Backward Compatibility interfaces package, you should next run the Merge-
CsLegacyTopology cmdlet.
When the Merge-CsLegacyTopology cmdlet finishes running, you can call the Import-
CsLegacyConferenceDirectory cmdlet. The Import-CsLegacyConferenceDirectory cmdlet first uses WMI to read
legacy data from Communications Server 2007 R2, then takes the retrieved data and creates corresponding objects
in Skype for Business Server: for each conferencing directory found in your installation of Communications Server
2007 R2, a corresponding directory will be created in your new installation of Skype for Business Server.
The Import-CsLegacyConferenceDirectory cmdlet should be rerun anytime conferences directories are added,
deleted, or moved in the Communications Server 2007 R2 environment. The Import-
CsLegacyConferenceDirectory cmdlet should also be run anytime the Merge-CsLegacyTopology cmdlet is run; this
helps to ensure the conference directories and the topology remain in sync.

Examples
-------------------------- EXAMPLE 1 --------------------------

Import-CsLegacyConferenceDirectory

The command shown in Example 1 imports conferencing directories from Communications Server 2007 R2 to
Skype for Business Server.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ImportDirectories.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Import-CsLegacyConferenceDirectory cmdlet does not accept pipelined input.

Outputs
The Import-CsLegacyConferenceDirectory cmdlet does not return any objects or values.

Related Links
Import-CsLegacyConfiguration
Merge-CsLegacyTopology
Move-CsLegacyUser
minutes to read • Edit Online

Import-CsLegacyConfiguration
In ths Article

The Import-CsLegacyConfiguration cmdlet enables you to import a number of configuration settings from
Microsoft Office Communications Server 2007 R2 or Microsoft Office Communications Server 2007 to Skype for
Business Server. This helps provide interoperability between Skype for Business Server and your earlier installation
of Office Communications Server 2007 R2 or Office Communications Server 2007. This cmdlet was introduced in
Lync Server 2010.

Syntax
Import-CsLegacyConfiguration [-ReplaceExisting] [-Force] [-Report <String>] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
The Import-CsLegacyConfiguration cmdlet is used in conjunction with the Merge-CsLegacyTopology cmdlet to
enable organizations to migrate from a previous version of Office Communications Server (either Office
Communications Server 2007 R2 or Office Communications Server 2007) to Skype for Business Server. The
Import-CsLegacyConfiguration cmdlet is used to import voice policies; location profiles (for instance, dial plans);
voice routes; voice normalization rules; meeting policies; external access policies; archiving policies; presence
policies; Communicator Web Access URL settings; and dial-in conferencing access numbers.
Before you can run the Import-CsLegacyConfiguration cmdlet, you must first install the Windows Management
Instrumentation (WMI) Backward Compatibility interfaces package; this application is installed by running
OCSWMIBC.msi. After installing the Compatibility interfaces package, you should next run the Merge-
CsLegacyTopology cmdlet. When the Merge-CsLegacyTopology cmdlet finishes, you should publish the merged
topology by using Topology Builder. After publishing the merged topology, you can then call the Import-
CsLegacyConfiguration cmdlet. The Import-CsLegacyConfiguration cmdlet uses WMI to read legacy data from the
earlier version of Office Communications Server. The Import-CsLegacyConfiguration cmdlet then takes the
retrieved data and creates corresponding objects in Skype for Business Server. For example, for each voice policy
found in your installation of Office Communications Server, a corresponding voice policy will be created in your
new installation of Skype for Business Server.
The Import-CsLegacyConfiguration cmdlet should be re-run whenever you make changes to any of the following
Office Communications Server items: voice policies; location profiles; voice routes; voice normalization rules;
meeting policies; external access policies; archiving policies; presence policies; Communicator Web Access URL
settings; and dial-in conferencing access numbers. By default, only new items added to your Office
Communications Server topology will be imported when you re-run the Import-CsLegacyConfiguration cmdlet. To
import modified objects you must do two things. First, confirm that no changes have been made to the
corresponding item (for example, a voice policy) in the Skype for Business Server copy of the configuration.
Second, run the Import-CsLegacyConfiguration cmdlet along with the ReplaceExisting parameter; this causes the
Import-CsLegacyConfiguration cmdlet to import modified objects and to overwrite the corresponding object
currently in Skype for Business Server. Note that objects deleted from the Communications Server 2007 R2
topology do not result in corresponding deletions in Skype for Business Server. You will need to manually remove
those in Skype for Business Server.
It's important to know that the Move-CsLegacyUser cmdlet relies on information imported by the Import-
CsLegacyConfiguration cmdlet. That means that, when running the Move-CsLegacyUser cmdlet, you might receive
an error message telling you that you must run the Import-CsLegacyConfiguration cmdlet before proceeding. If
that happens you must re-run the Import-CsLegacyConfiguration cmdlet before you will be able to move the
legacy user.

Examples
-------------------------- EXAMPLE 1 --------------------------

Import-CsLegacyConfiguration

The command shown in Example 1 merges voice policies and other settings from Communications Server 2007 or
Communications Server 2007 R2 with an installation of Skype for Business Server.
-------------------------- EXAMPLE 2 --------------------------

Import-CsLegacyConfiguration -ReplaceExisting

The command shown in Example 2 is a variation of the command shown in Example 1. In this case, however, the
ReplaceExisting parameter is included. This parameter instructs the cmdlet to use the imported data to resolve
name collisions. For example, suppose you try to import a voice route named LocalRoute, and a voice route by that
name already exists in your Skype for Business Server installation. Because you included the ReplaceExisting
parameter, the Skype for Business Server route will be replaced by the voice route being imported.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReplaceExisting
If present, this parameter instructs the Import-CsLegacyConfiguration cmdlet to overwrite any previously imported
policies or settings that have changed since the last time the cmdlet was run.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ImportConfiguration.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Import-CsLegacyConfiguration cmdlet does not accept pipelined input.

Outputs
The Import-CsLegacyConfiguration cmdlet does not return any objects or values.

Related Links
Import-CsLegacyConferenceDirectory
Merge-CsLegacyTopology
Move-CsLegacyUser
minutes to read • Edit Online

Import-CsLisConfiguration
In ths Article

Imports an Enterprise Voice Enhanced 9-1-1 (E9-1-1) configuration from a backup file. This cmdlet was introduced
in Lync Server 2010.

Syntax
Import-CsLisConfiguration [-ByteInput] <Byte[]> [<CommonParameters>]

Import-CsLisConfiguration [-FileName] <String> [<CommonParameters>]

Description
Implementing E9-1-1 in an organization can, depending on the size of the organization, involve mapping
thousands of subnets, ports, switches, and wireless access points to locations. An E9-1-1 configuration also includes
information about the Location Information Server (LIS ) provided by the E9-1-1 Network Routing Provider, and
about locations and civic addresses and whether or not they've been validated. Given the volume of information
and settings required to implement E9-1-1, it's highly recommended that you regularly back up the entire
configuration. You can back up the entire E9-1-1 configuration to a file by calling the Export-CsLisConfiguration
cmdlet. Calling the Import-CsLisConfiguration cmdlet will restore the configuration from that file.
Restoring the configuration by calling this cmdlet will not overwrite the existing configuration. It will insert
information that has been removed, but it will not remove existing records that were added after the backup file
was created.
IMPORTANT: Because the import from backup will not replace existing records, any records that have been
changed will be restored and you could be left with orphaned locations. For example, suppose you've defined a
wireless access point (WAP ) with a Location value of Building30/Room10. You call the Export-CsLisConfiguration
cmdlet to back up your configuration. Later, you modify the Location property of that wireless access point to
Building30/Rooms20-40. If you then call the Import-CsLisConfiguration cmdlet to restore the backed-up
configuration, the location for that WAP will be Building30/Room10 (the location before the backup), but the
location for Building30/Rooms20-40 will remain in the location configuration database.

Examples
-------------------------- EXAMPLE 1 --------------------------

Import-CsLisConfiguration -FileName C:\E911Config.bak

This example imports the E9-1-1 configuration from the backup file named E911Config.back to the location
configuration database.
-------------------------- EXAMPLE 2 --------------------------
$lisconfig = Export-CsLisConfiguration -AsBytes

Import-CsLisConfiguration -ByteInput $lisconfig

Example 2 demonstrates how to use the ByteInput parameter of the Import-CsLisConfiguration cmdlet. Line 1
shows a call to the Export-CsLisConfiguration cmdlet with the AsBytes parameter. The output of the command is a
byte array containing the LIS configuration. This array is assigned to the variable $lisconfig. In line 2 the Import-
CsLisConfiguration cmdlet is called. The ByteInput parameter receives a value of $lisconfig, which is the variable
containing the byte array we exported. This will import that byte array back into the location configuration
database.
-------------------------- EXAMPLE 3 --------------------------

$lisconfig = Export-CsLisConfiguration -AsBytes

$listconfig | Set-Content -Path C:\E911Config.bak -Encoding byte

Get-Content -ReadCount 0 -Encoding byte -Path C:\E911Config.bak | Import-CsLisConfiguration

Example 3 is a more complete version of Example 2. The first line is the same, we call the Export-
CsLisConfiguration cmdlet with the AsBytes parameter to store the LIS configuration as an array of bytes in the
variable $lisconfig. The rest of this example shows how to save that configuration to a file and then import it back
into the location configuration database.
In line 2 we pipe the contents of $lisconfig, which is the byte array representing the LIS configuration, to the
Windows PowerShell Set-Content cmdlet. We assign values to two parameters of the Set-Content cmdlet: Path and
Encoding. We assign the full path and file name of the file to which we want to save the configuration to the Path
parameter. We use the Encoding parameter with a value of byte to ensure the configuration is stored as an array of
bytes.
Finally, in line 3 we import the configuration back into the location configuration database. First we call the Get-
Content cmdlet to retrieve the contents from the file. We pass a value of 0 to the ReadCount property, which tells
the Get-Content cmdlet to read all the contents of the file at once rather than one line at a time. We again use the
Encoding parameter with a value of byte to specify what type of data we're reading from the file. Finally we pass the
file name to the Path parameter. The contents of the file that we read with the Get-Content cmdlet is piped to the
Import-CsLisConfiguration cmdlet, which imports the saved configuration into the location configuration database.

Parameters
-ByteInput
The value passed to this parameter is a variable containing a byte array of the LIS configuration that was created by
the Export-CsLisConfiguration cmdlet with the AsBytes parameter.

Type: Byte[]
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-FileName
The name of the backup file from which to import the configuration. You cannot specify a FileName and a
ByteInput. Only one of these two parameters can be used with each call to this cmdlet.
Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Byte[]. Accepts a byte array from an exported LIS configuration. The byte array must be piped as a single record.
See Example 3.

Outputs
This cmdlet does not return a value.

Related Links
Export-CsLisConfiguration
Publish-CsLisConfiguration
Unpublish-CsLisConfiguration
Debug-CsLisConfiguration
Test-CsLisConfiguration
minutes to read • Edit Online

Import-CsOnlineAudioFile
In ths Article

Use the Import-CsOnlineAudioFile cmdlet to upload a new audio file.

Syntax
Import-CsOnlineAudioFile -ApplicationId <OrgAutoAttendant | HuntGroup> -FileName <string> -Content <byte[]>

Description
The Import-CsOnlineAudioFile cmdlet uploads a new audio file for use with the Auto Attendant (AA) or Call Queue
(CQ ) service.

Examples
-------------------------- Example 1 --------------------------

$content = Get-Content "C:\Media\Welcome.wav" -Encoding byte -ReadCount 0


$audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "Hello.wav" -Content $content

This example creates a new audio file using the WAV content that has a filename of Hello.wav to be used with
organizational auto attendants.

Parameters
-ApplicationId
The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the
audio file will be used with an organizational auto attendant, then it needs to be set to "OrgAutoAttendant". If the
audio file will be used with a hunt group (call queue), then it needs to be set to "HuntGroup".
Supported values:
OrgAutoAttendant
HuntGroup

Type: System.string
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Content
The Content parameter represents the content of the audio file. Supported formats are WAV (uncompressed, linear
PCM with 8/16/32-bit depth in mono or stereo), WMA (mono only), and MP3. The audio file content cannot be
more 5MB.

Type: System.Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
The FileName parameter is the name of the audio file. For example, the file name for the file
C:\Media\Welcome.wav is Welcome.wav.

Type: System.string
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile
minutes to read • Edit Online

Import-CsOrganizationalAutoAttendantHolidays
In ths Article

Use Import-CsOrganizationalAutoAttendantHolidays cmdlet to import holiday schedules of an existing Auto


Attendant (AA) that were previously exported using the Export-CsOrganizationalAutoAttendantHolidays cmdlet.

Syntax
Import-CsOrganizationalAutoAttendantHolidays [-PrimaryUri] <Uri> -Input <byte[]> [-Tenant <Guid>]
[<CommonParameters>]

Description
The Export-CsOrganizationalAutoAttendantHolidays cmdlet and the Import-
CsOrganizationalAutoAttendantHolidays cmdlet enable you to export holiday schedules in your auto attendant and
then later import that information. This can be extremely useful in a situation where you need to configure same
holiday sets in multiple auto attendants.
The Export-CsOrganizationalAutoAttendantHolidays cmdlet returns the holiday schedule information in serialized
form (as a byte array). The caller can then write the bytes to the disk to obtain a CSV file. Similarly, the Import-
CsOrganizationalAutoAttendantHolidays cmdlet accepts the holiday schedule information as a byte array, which
can be read from the aforementioned CSV file. The first line of the CSV file is considered a header record and is
always ignored.
NOTE
Each line in the CSV file used by Export-CsOrganizationalAutoAttendantHolidays and Import-
CsOrganizationalAutoAttendantHolidays cmdlet should be of the following format:
HolidayName,StartDateTime1,EndDateTime1,StartDateTime2,EndDateTime2,…,StartDateTime10,EndDateTime10

where
HolidayName is the name of the holiday to be imported.
StartDateTimeX and EndDateTimeX specify a date/time range for the holiday and are optional. If no date-time
ranges are defined, then the holiday is imported without any date/time ranges. They follow the same format as
New -CsOnlineDateTimeRange cmdlet.
EndDateTimeX is optional. If it is not specified, the end bound of the date time range is set to 00:00 of the day
after the start date.
The first line of the CSV file is considered a header record and is always ignored by Import-
CsOrganizationalAutoAttendantHolidays cmdlet.
If the destination auto attendant for the import already contains a call flow or schedule by the same name as one of
the holidays being imported, the corresponding CSV record is skipped.
For holidays that are successfully imported, a default call flow is created which is configured without any greeting
and simply disconnects the call on being executed.
Examples
-------------------------- Example 1 --------------------------

$bytes = [System.IO.File]::ReadAllBytes("C:\Imports\Holidays.csv")
Import-CsOrganizationalAutoAttendantHolidays -PrimaryUri sip:mainoaa@contoso.com -Input $bytes

In this example, the Import-CsOrganizationalAutoAttendantHolidays cmdlet is used to import holiday schedule


information from a file at path “C:\Imports\Holidays.csv” to an auto attendant with Primary URI of
sip:mainoaa@contoso.com.
-------------------------- Example 2 --------------------------

$bytes = [System.IO.File]::ReadAllBytes("C:\Imports\Holidays.csv")
Import-CsOrganizationalAutoAttendantHolidays -PrimaryUri sip:mainoaa@contoso.com -Input $bytes | Format-Table -
Wrap -AutoSize

In this example, the Import-CsOrganizationalAutoAttendantHolidays cmdlet is used to import holiday schedule


information from a file at path “C:\Imports\Holidays.csv” to an auto attendant with Primary URI of
sip:mainoaa@contoso.com. The result of the import process is formatted as a table.

Parameters
-Input
The Input parameter specifies the holiday schedule information that is to be imported.

Type: System.Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
The Primary URI represents the SIP address of the auto attendant in where the holiday schedule information is to
be imported.

Type: System.Uri
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
String
The String is used as the PrimaryUri input.

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult

Related Links
Export-CsOrganizationalAutoAttendantHolidays
Get-CsOrganizationalAutoAttendantHolidays
minutes to read • Edit Online

Import-CsPersistentChatData
In ths Article

Enables administrators to import data exported from a Microsoft Lync Server 2010 Group Chat database into a
Skype for Business Server Persistent Chat database. This data must have previously been exported from the Group
Chat database by using the Export-CsPersistentChatData cmdlet. This cmdlet was introduced in Lync Server 2013.

Syntax
Import-CsPersistentChatData -ByteInput <Byte[]> -DBInstance <String> [-Confirm] [-Report <String>] [-WhatIf]
[<CommonParameters>]

Import-CsPersistentChatData -DBInstance <String> -FileName <String> [-Confirm] [-Report <String>] [-WhatIf]


[<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
If you are currently running Lync Server 2010, you can migrate your current Group Chat implementation by using
the Export-CsPersistentChatData cmdlet to export your existing Group Chat configuration settings, then use the
Import-CsPersistentChatData cmdlet to migrate that information to Lync Server 2013 and the Persistent Chat
service. Note that the Export-CsPersistentChatData cmdlet gives you the option of importing all your Group Chat
settings and data or only a portion of your Group Chat settings and data; for example, you can export (and then
import) your Group Chat categories and chat rooms without exporting all the content associated with those
categories and chat rooms.
Although primarily intended for migration purposes, the CsPersistentChatData cmdlets can also be used to
manage Persistent Chat data on Skype for Business Server.
Skype for Business Server Control Panel: The functions carried out by the Import-CsPersistentChatData cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Import-CsPersistentChatData -DBInstance "atl-sql-001.litwareinc.com\rtc" -FileName


"C:\Logs\PersistentChatExport.zip"
The command shown on Example 1 reads exported Persistent Chat data from the file
C:\Logs\PersistentChatExport.xml and then adds that data to the Persistent Chat database atl-sql-
001.litwareinc.com\rtc (where "atl-sql-001.litwareinc.com" is the fully qualified domain name of the SQL Server
computer and "rtc" is the SQL Server database instance).

Parameters
-ByteInput
When specified, data is imported as a byte array rather than an XML file.

Type: Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DBInstance
Fully qualified domain name and name of the SQL Server instance where the Skype for Business Server Persistent
Chat database is located. For example, this syntax specifies the database found in the RTC database instance on the
server atl-sql-001.litwareinc.com:
-DBInstance "atl-sql-001.litwareinc.com\rtc"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Full path to the XML file being imported. For example:
-FileName "C:\Logs\PersistentChatExport.xml"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\PersistentChatExport.html"

If this file already exists, it will be overwritten when you run the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Import-CsPersistentChatData cmdlet does not accept pipelined input.

Outputs
None.
minutes to read • Edit Online

Import-CsRgsAudioFile
In ths Article

Imports a new audio file for use with the Response Group application. This cmdlet was introduced in Lync Server
2010.

Syntax
Import-CsRgsAudioFile [-Identity] <RgsIdentity> -Content <Byte[]> -FileName <String> [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
The Response Group application can use audio files (.WAV or .WMA formats only) in at least two different ways.
For one, the service can play music (or an announcement of some type) any time callers are placed on hold.
Alternatively, the Response Group application occasionally "talks" to callers; for example, with interactive voice
response (IVR ) the service might ask callers a question such as "Are you calling about an existing order?" You can
have the service read these questions using text-to-speech technology or you can play an audio recording of an
actual person asking the question.
Regardless of how you choose to use audio files, the files themselves must be imported into the Response Group
application by using the Import-CsRgsAudioFile cmdlet. Note that you must run Import-CsRgsAudioFile each time
you want to use an audio file, even if that file is already being used elsewhere in the Response Group application.
For example, suppose Workflow A uses a given audio file as its custom music on hold file and you now want to use
that same audio file as the custom music on hold for Workflow B. Even though the audio file is already used by the
Response Group application you will still need to import the file in order to use it with Workflow B.

Examples
-------------------------- EXAMPLE 1 --------------------------

$x = Import-CsRgsAudioFile -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -FileName


"WhileYouWait.wav" -Content (Get-Content C:\Media\WhileYouWait.wav -Encoding byte -ReadCount 0)

$y = Get-CsRgsWorkflow -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "Help Desk


Workflow"

$y.CustomMusicOnHoldFile = $x

Set-CsRgsWorkflow $y

The commands shown in Example 1 import an audio file (C:\Media\WhileYouWait.wav) and then assign that file to
the CustomMusicOnHold property of a workflow. To perform this task, the first command uses Import-
CsRgsAudioFile to import the audio file to the Response Group application found on ApplicationServer:atl-cs-
001.litwareinc.com. In addition to the Identity parameter (which specifies the service location) the FileName
parameter is used to specify the file name of the file being imported.
At the same time, the Content parameter is used to import the audio file. File importing is carried out by calling the
Get-Content cmdlet followed by the path to the file being imported. Get-Content also requires you to set the
encoding type to byte and the ReadCount to 0. (Setting the ReadCount to 0 ensures that the entire file is read in a
single operation.) The imported file is then stored in a variable named $x.
In the second command, Get-CsRgsWorkflow is used to create an object reference ($y) to the workflow Help Desk
Workflow. After this object reference has been created, command 3 sets the value of the CustomMusicOnHoldFile
property to $x, the variable containing the imported audio file. Finally, the last command in the example uses Set-
CsRgsWorkflow to write these changes to the actual workflow Help Desk Workflow. If you do not call Set-
CsRgsWorkflow, your modifications will exist only in memory, and will disappear as soon as you close Windows
PowerShell or delete the variables $x or $y.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Content
Actual content of the audio file being imported. The Content property is populated by calling the Get-Content
cmdlet. When calling Get-Content, set the Encoding parameter to byte and the ReadCount parameter to 0 (for
details, see the Examples section in this topic).

Type: Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-FileName
File name for the audio file being imported. For example, the file name for the file C:\Media\Welcome.wav is this:
Welcome.wav.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Identity of the service where the audio file is to be imported. (This must be the same service that hosts the
Response Group application.) For example: -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com".

Type: RgsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. Import-CsRgsAudioFile does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.AudioFile object.

Related Links
New -CsRgsWorkflow
Set-CsRgsWorkflow
minutes to read • Edit Online

Import-CsRgsConfiguration
In ths Article

Imports Response Group configuration data that was previously exported using the Export-CsRgsConfiguration
cmdlet. The ability to export and import Response Group configuration data is particularly useful disaster recovery
scenarios. This cmdlet was introduced in Lync Server 2013.

Syntax
Import-CsRgsConfiguration -Destination <RgsIdentity> -FileName <String> [-Force] [-OverwriteOwner]
[-ReplaceExistingRgsSettings] [-ResolveNameConflicts] [<CommonParameters>]

Description
The Export-CsRgsConfiguration cmdlet and the Import-CsRgsConfiguration cmdlet enable you to export data
about your current implementation of the Response Group application (including such things as workflows, queues,
agent groups, holiday sets and business hours, as well as audio files and service configuration settings) and then
later import (or re-import) that information. This can be extremely useful in a disaster recovery scenario (for
example, in a case where the server hosting the Response Group application has failed) or if you simply need to
transfer the Response Group application to a different pool.
Note that the Export-CsRgsConfiguration cmdlet and the Import-CsRgsConfiguration cmdlet are designed to work
only with Lync Server 2013 and Skype for Business Server. If you want to migrate Response Group data from
Microsoft Lync Server 2010 to Skype for Business Server, you should use the Move-CsRgsConfiguration cmdlet
instead.
Skype for Business Server Control Panel: The functions carried out by the Import-CsRgsConfiguration cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Import-CsRgsConfiguration -FileName "C:\Export\RgsExport.zip" -Destination "ApplicationServer:atl-cs-


001.litwareinc.com"

The command shown in Example 1 imports a previously exported collection of Response Group application
settings, and then applies those settings to the Response Group installation hosted by the Application Server on atl-
cs-001.litwareinc.com.

Parameters
-Destination
Identity of the Response Group instance where the configuration settings are being imported. For example:
-Destination "ApplicationServer:atl-rgs-001.litwareinc.com"

Type: RgsIdentity
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Path to the .ZIP file created by the Export-CsRgsConfiguration cmdlet. For example:
-FileName "C:\Exports\RgsConfig.zip"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OverwriteOwner
When present the current owner of the Response Group objects will be overwritten with the service identity of the
new Response Group pool.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReplaceExistingRgsSettings
When specified, all the existing service settings for the destination pool are replaced with the imported settings. If
not specified, then service settings will remain as-is and only Response Group object (such as workflows and agent
groups) will be imported.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ResolveNameConflicts
When present, duplicate names will be resolved by appending a unique identifying number. For example, if there
are two workflows named Help Desk Workflow one of the two will be renamed Help Desk Workflow (2).

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Import-CsRgsConfiguration cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Export-CsRgsConfiguration
minutes to read • Edit Online

Import-CsUserData
In ths Article

Imports user data previously exported by using the Export-CsUserData cmdlet. This cmdlet was introduced in Lync
Server 2013.

Syntax
Import-CsUserData -FileName <String> -Identity <String> [-ConfDirectoryFilter <String>]
[-DomainController <Fqdn>] [-Force] [-LegacyFormat] [-RoutingGroupFilter <String>] [-UserFilter <String>]
[<CommonParameters>]

Import-CsUserData -FileName <String> -PoolFqdn <Fqdn> [-ConfDirectoryFilter <String>]


[-DomainController <Fqdn>] [-Force] [-LegacyFormat] [-RoutingGroupFilter <String>] [-UserFilter <String>]
[<CommonParameters>]

Description
The Import-CsUserData cmdlet is used to import previously-saved user data and/or conference directory data to
Skype for Business Server. Note that this data must have been exported by using the Export-CsUserData cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Import-CsUserData cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Import-CsUserData -PoolFqdn "atl-cs-001.litwareinc.com" -FileName "C:\Logs\ExportedUserData.zip"

The command shown in Example 1 imports user data from a file named C:\Logs\ExportedUserData.zip to the pool
atl-cs-001.litwareinc.com.

Parameters
-ConfDirectoryFilter
When specified, allows you to import conference directory information for the specified conference directory. For
example, to import data from the conference directory with the ID 13 use this syntax:
-ConfDirectoryFilter 13

You can return conference directory IDs by using this command:


Get-CsConferenceDirectory
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables administrators to specify the FQDN of the domain controller to be used when running the Import-
CsUserData cmdlet. If not specified, the cmdlet will use the first available domain controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Full path to the input file containing the exported user data. For example:
-InputFile "C:\Data\ExportedUsers.xml"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service Identity of the user database where the data should be imported. For example:
-Identity "UserDatabase:atl-sql-001.litwareinc.com"

You cannot use both the Identity and the PoolFqdn parameters in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False
-LegacyFormat
Indicates that the data to be imported was exported from a previous version of Lync Server or Office
Communications Server.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the Registrar pool for the user data being imported. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RoutingGroupFilter
Enables you to limit the imported data to users who belong to the same routing group. Routing groups are used by
Skype for Business Server to determine the Front End server that users register with.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserFilter
Enables you to import user data for a single user. To convert data for a specified user (and only for that user), set
the UserFilter parameter to the SIP address of that user, being sure to omit the sip: prefix. For example:
-UserFilter "kenmyer@litwareinc.com"

This parameter allows you to import data one user at a time.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Import-CsUserData cmdlet does not accept pipelined input.
Outputs
None.

Related Links
Convert-CsUserData
Export-CsUserData
Sync-CsUserData
Update-CsUserData
minutes to read • Edit Online

Install-CsAdServerSchema
In ths Article

Extends the Active Directory schema to allow for the installation of Skype for Business Server. This cmdlet was
introduced in Lync Server 2010.

Syntax
Install-CsAdServerSchema [-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>] [-Ldf <String>]
[-Force] [-Report <String>] [-WhatIf] [-Confirm] [-SchemaMaster <Fqdn>] [<CommonParameters>]

Description
Although Skype for Business Server stores most of its configuration information in its own database, the software
also relies on Active Directory Domain Services as a storage location; for example, user-related information is
stored as part of the user's Active Directory account. In order to do this, Skype for Business Server must store these
values in attributes that are not part of the typical Active Directory user account. In turn, that means you must
"extend" your Active Directory schema: the schema must be modified to add custom attributes (and other items)
required by Skype for Business Server.
The easiest way to extend the Active Directory schema is to use the Install-CsAdServerSchema cmdlet. The Install-
CsAdServerSchema cmdlet is typically run as part of the Skype for Business Server setup process but, if need be,
administrators can run the cmdlet at any time. After the cmdlet finishes running, you can then use the Get-
CsAdServerSchema cmdlet to verify that the schema has been updated and that Active Directory is ready for the
next step in the installation process.
Note that, when the Install-CsAdServerSchema cmdlet runs, the cmdlet must have access to the schema master, the
operations master role that manages Active Directory object and attribute definitions. If you are running the Install-
CsAdServerSchema cmdlet on a computer other than the schema master, the computer that hosts the schema
master must allow remote access to the registry. If it does not, then you must run the Install-CsAdServerSchema
cmdlet on the schema master itself.

Examples
-------------------------- EXAMPLE 1 --------------------------

Install-CsAdServerSchema

The command shown in Example 1 determines the location of the .LDF file by reading information from the
registry, then uses that file to update the Active Directory schema.
-------------------------- EXAMPLE 2 --------------------------

Install-CsAdServerSchema -Ldf "C:\Schemas"


In Example 2, the Active Directory schema is updated with information taken from a schema update file located in
the folder C:\Schemas. This folder location is specified by using the Ldf parameter.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
Fully qualified domain name (FQDN ) of a global catalog server in your domain. This parameter is not required if
you are running the Install-CsAdServerSchema cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller in your domain. This parameter is not required if you are running the Install-
CsAdServerSchema cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Ldf
Path to the folder containing the .LDF file to be imported; the .LDF (LDAP Data Interchange Format) file contains
the required updates for the Active Directory schema. If this parameter is not included, the Install-
CsAdServerSchema cmdlet will look for the file in the Skype for Business Server installation path recorded in the
registry. The installation path will typically be C:\Program Files\Skype for Business Server\Deployment\Setup.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ServerSchema.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SchemaMaster
Fully qualified domain name (FQDN ) of the Active Directory schema master for your domain. This parameter is not
required if you are running the Install-CsAdServerSchema cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Install-CsAdServerSchema cmdlet does not accept pipelined input.

Outputs
The Install-CsAdServerSchema cmdlet does not return any values or objects.

Related Links
Get-CsAdServerSchema
minutes to read • Edit Online

Install-CsDatabase
In ths Article

Installs one or more Skype for Business Server databases. This cmdlet was introduced in Lync Server 2010.

Syntax
Install-CsDatabase [-CentralManagementDatabase] [-Clean] [-Collocated] [-DatabasePaths <String[]>]
[-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>] [-SkipPrepareCheck]
[-SqlInstanceName <String>] -SqlServerFqdn <Fqdn> [-Update] [-UseDefaultSqlPaths] [-Force] [-Report <String>]
[-WhatIf] [-Confirm] [-Backup] [-DatabasePathMap <Hashtable>] [-NoReindex] [<CommonParameters>]

Install-CsDatabase [-Clean] [-Collocated] [-DatabasePaths <String[]>] -DatabaseType <DatabaseNameType>


[-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>] [-SkipPrepareCheck]
[-SqlInstanceName <String>] -SqlServerFqdn <Fqdn> [-Update] [-UseDefaultSqlPaths] [-Force] [-Report <String>]
[-WhatIf] [-Confirm] [-DatabasePathMap <Hashtable>] [-NoReindex] [<CommonParameters>]

Install-CsDatabase [-Clean] [-ConfiguredDatabases] [-DatabasePaths <String[]>] [-ExcludeCollocatedStores]


[-ForDefaultInstance] [-ForInstance <String>] [-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>]
[-SkipPrepareCheck] -SqlServerFqdn <Fqdn> [-Update] [-UseDefaultSqlPaths] [-Force] [-Report <String>]
[-WhatIf] [-Confirm] [-DatabasePathMap <Hashtable>] [-NoReindex] [<CommonParameters>]

Install-CsDatabase [-Clean] [-DatabasePaths <String[]>] [-ForDefaultInstance] [-ForInstance <String>]


[-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>] [-LocalDatabases] [-SkipPrepareCheck]
[-Update] [-UseDefaultSqlPaths] [-Force] [-Report <String>] [-WhatIf] [-Confirm]
[-DatabasePathMap <Hashtable>] [-NoReindex] [<CommonParameters>]

Description
Skype for Business Server makes extensive use of SQL Server databases, ranging from the Central Management
store to the Archiving database. As a general rule, these databases are set up at the same time you Skype for
Business Server or at the same time you install a Skype for Business Server role (such as Monitoring Server) that
requires a database back end. After installation has taken place these databases typically will not need to be
reinstalled or moved to new locations.
On rare occasions, however, you might need to manually install a Skype for Business Server database; this could be
because you need to move a database to another server, or because a setup-related problem failed to install the
database for you. The Install-CsDatabase cmdlet provides a way for you to install any of the SQL Server databases
used by Skype for Business Server.
When running the Install-CsDatabase cmdlet there are basically three different ways to handle the configuration of
the database being installed:
Option 1 -- Run the cmdlet without including a parameter that specifies the database paths. When the Install-
CsDatabase cmdlet is run without the DatabasePath or the UseDefaultSqlPath parameter the cmdlet uses a built-
on algorithm to choose the storage location for the database logs and data files. Note that this built-in algorithm
works with a stand-alone SQL Server, it will not work with a SQL Server cluster. To install a database on a SQL
Server cluster your command must include either the DatabasePath or the UseDefaultSqlPath parameter
Option 2 -- Run the cmdlet along with the DatabasePath parameter. When the Install-CsDatabase is cmdlet run
with the DatabasePath parameter the built-in algorithm is not used to choose the storage location for the database
logs and data files. Instead, administrators can select the location for these logs and data files. To install both data
files and SQL Server logs in the same location, simply specify the path to the folder where this data should be
stored. For example:
-DatabasePath C:\SqlData

To store data files in one location and log files in a second location, specify the path to each folder, separating the
two locations by using a comma (be careful not to put a blank space before or after the comma):
-DatabasePath C:\SqlLogs,D:\SqlData

The log files will always be stored on the first location specified, while data files will be stored in the second
location.
In a pool backend, certain log files might be stored on a drive all by themselves. If you have a pool backend with a
single drive, files will be distributed like this:
Drive 1 - Rtcdyn log; Rtc log; other logs; other data.
If you have two drives, files will be distributed like this:
Drive 1 - Rtcdyn log; Rtc log.
Drive 2 - Other logs; other data.
With three drives:
Drive 1 - Rtcdyn log.
Drive 2 - Rtc log.
Drive 3 - Other logs; other data.
And with four drives:
Drive 1 - Rtcdyn log.
Drive 2 - Rtc log.
Drive 3 - Other logs.
Drive 4 - Other data.
Option 3 -- Run the cmdlet along with the UseDefaultSqlPaths parameter. When the Install-CsDatabase cmdlet is
run using the UseDefaultSqlPaths parameter, the built-in algorithm is not used to choose the storage locations for
the database logs and data files. Instead, log and data files are stored in the locations specified by the SQL Server
defaults path (these paths must be configured in advanced by a SQL Server administrator). Data files will be stored
in the default SQL Server data file location while log files will be stored in the default SQL Server log file location.
Before running the Install-CsDatabase cmdlet you should make sure that the RTCUniversalServerAdmins groups
has not been assigned as the database owner. If that group is listed as the owner the group could possibly be
deleted when you call the Install-CsDatabase cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn atl-sql-001.litwareinc.com -DatabasePaths


"E:\CSLog","F:\CSLog","G:\CSDB"

In Example 1, the Install-CsDatabase cmdlet reads in the Skype for Business Server topology, and then installs any
required databases on the pool atl-sql-001.litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------

Install-CsDatabase -CentralManagementDatabase -SqlServerFqdn atl-sql-001.litwareinc.com -SqlInstanceName rtc -


DatabasePaths "G:\CSDB"

The command shown in Example 2 installs the Central Management store on the pool atl-sql-001.litwareinc.com.
The database will be installed in the rtc instance, and make use of the folder G:\CSDB.

Parameters
-Backup
When used, backs up the existing Central Management server database to the specified SQL Server instance.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CentralManagementDatabase
If this parameter is included, the Install-CsDatabase cmdlet will use the SqlServerFqdn parameter to install the
Central Management store on the specified computer. This parameter is typically used only by Topology Builder,
and is generally called just once, during initial setup.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Clean
If this parameter is included, the Install-CsDatabase cmdlet will delete and reinstall databases as needed. If this
parameter is not included, the Install-CsDatabase cmdlet will not overwrite any existing databases. You cannot use
both Clean and Update in the same command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Collocated
If present, additional database roles will be collocated with the Central Management store.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConfiguredDatabases
Reads information from the Skype for Business Server topology, and installs the required databases on the
specified SQL Server computer or SQL Server cluster. Administrators who need to call the Install-CsDatabase
cmdlet will almost always use this parameter when specifying the databases to be installed.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabasePathMap
Enables you to specify custom folder paths for data files and log files; multiple paths should be separated by using a
semicolon (;). For example:
-DatabasePathMap @{"Archiving:DbPath"="\\\\atl-sql-001.litwareinc.com\db";"Archiving:LogPath"="\\\\atl-sql-
002.litwareinc.com\logs"}

Type: Hashtable
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabasePaths
Specifies the drives and folders where data and log files can be stored; for example: -DatabasePaths
"D:\Logs","E:\Data".
Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabaseType
Enables you to install a specific database on a specific SQL Server computer or SQL Server cluster. As a general
rule, administrators should not run the Install-CsDatabase cmdlet with the DatabaseType parameter unless
instructed otherwise by Microsoft support personnel. Instead, administrators should typically use the
ConfiguredDatabases parameter. The DatabaseType parameter requires you to know the exact type and location for
every database used in your topology, and is only required if the Install-CsDatabase cmdlet command fails to run
using the ConfiguredDatabases parameter.
Valid values for DatabaseType are:
ActiveMonitoring
Application
Archiving
CentralMgmt
Edge
Lyss
Monitoring
PersistentChat
PersistentChatCompliance
Provision
Registrar
SigninTelemetry
User

Type: DatabaseNameType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeCollocatedStores
When present, suppresses a warning message telling you that any collocated database stores must be installed on
the local computer.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
When present, forces the installation of the new database even if an existing database of that type is currently in
use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ForDefaultInstance
When specified, instructs the Install-CsDatabase cmdlet to only act against the default SQL Server instance. You
cannot use both ForDefaultInstance and ForInstance in the same command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ForInstance
When specified, instructs the Install-CsDatabase cmdlet to only act against the specified SQL Server instance. You
cannot use both ForInstance and ForDefaultInstance in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
Fully qualified domain name (FQDN ) of a global catalog server in your domain. This parameter is not required if
you are running the Install-CsDatabase cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
Fully qualified domain name (FQDN ) of a domain controller where global settings are stored. If global settings are
stored in the System container in Active Directory Domain Services, then this parameter must point to the root
domain controller. If global settings are stored in the Configuration container, then any domain controller can be
used and this parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalDatabases
If this parameter is included, the Install-CsDatabase cmdlet will read in the Skype for Business Server topology and
install databases and stores as needed on the local computer.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NoReindex
Prevents the index files from being rebuilt when a database is being updated. This parameter can only be used
along with the Update parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\InstallDatabases.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipPrepareCheck
When present, causes the Install-CsDatabase cmdlet to forego its initial preparation checks.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlInstanceName
Name of the database instance where the database is to be installed. A database instance is simply a set of running
processes that provides access to database files. If this parameter is omitted, the Install-CsDatabase cmdlet will use
the default SQL Server instance.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlServerFqdn
Fully qualified domain name (FQDN ) of the computer where the database is to be installed. For example:
-SqlServerFqdn atl-sql-001.litwareinc.com.

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Update
When present, updates the existing database. You cannot use Update and Clean in the same command.
Note that the Update parameter cannot be used against mirrored databases; the command will fail because the
mirror databases cannot be dropped and recreated. To use the Update parameter with mirrored databases you
must first use the Uninstall-CsMirrorDatabase cmdlet to disassociate the mirrored databases. At that point you can
then run Install-CsDatabase and the Update parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseDefaultSqlPaths
When specified, instructs SQL Server to select the drive where data and log files will be stored.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Install-CsDatabase cmdlet does not accept pipelined input.

Outputs
The Install-CsDatabase cmdlet does not return any values or objects.

Related Links
Uninstall-CsDatabase
minutes to read • Edit Online

Install-CsMirrorDatabase
In ths Article

Associates a mirror database with a Skype for Business Server database. A database mirror enables you to
simultaneously maintain two copies of a database, each copy residing on a different server. This cmdlet was
introduced in Lync Server 2013.

Syntax
Install-CsMirrorDatabase [-ConfiguredDatabases] -FileShare <String> -SqlServerFqdn <Fqdn> [-Confirm]
[-DatabasePathMap <Hashtable>] [-DropExistingDatabasesOnMirror] [-ExcludeDatabaseList <String[]>]
[-ForDefaultInstance] [-ForInstance <String>] [-Report <String>] [-WhatIf] [<CommonParameters>]

Install-CsMirrorDatabase -DatabaseType <DatabaseNameType> -FileShare <String> -SqlServerFqdn <Fqdn> [-Confirm]


[-DatabasePathMap <Hashtable>] [-DropExistingDatabasesOnMirror] [-ExcludeDatabaseList <String[]>]
[-Report <String>] [-SqlInstanceName <String>] [-WhatIf] [<CommonParameters>]

Description
Mirror databases enable you to simultaneously maintain two copies of a database: when data is written to Database
A, a copy of that data is also written to its mirror database. This provides the ability to instantly replace Database A
should that database become unavailable: you can "failover" to the mirror database with minimal disruption to your
users and with minimal data loss. After you have installed your primary databases you can then install and
configure mirror databases by using the Install-CsMirrorDatabase cmdlet.
By default, the Install-CsMirrorDatabase cmdlet installs and configures mirror databases for all the Skype for
Business Server databases housed on the specified server. However, you can use the DatabaseType or the
ExcludeDatabaseList parameters to specify exactly which mirror databases should or should not be installed.
DatabaseType enables you to specify only the databases that should be installed; ExcludeDatabaseList lets you
specify the databases that should not be installed.
Skype for Business Server Control Panel: The functions carried out by the Install-CsMirrorDatabase cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Install-CsMirrorDatabase -ConfiguredDatabases -FileShare "\\atl-fs-001.litware.com\DbBackup" -SqlServerFqdn


"atl-primary-001.litwareinc.com" -DropExisitingDatabasesOnMirror

The command shown in Example 1 installs any predefined database. The ConfiguredDatabases parameter causes
the Install-CsMirrorDatabase cmdlet to use the current topology to determine which databases should be.
Parameters
-ConfiguredDatabases
Reads information from the Skype for Business Server topology, and installs the required mirror databases on the
specified SQL Server computer or SQL Server cluster.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabasePathMap
Enables you to specify custom folder paths for data files and log files; multiple paths should be separated by using a
semicolon (;). For example:
-DatabasePathMap @{"Archiving:DbPath"="\\\\atl-sql-001.litwareinc.com\db";"Archiving:LogPath"="\\\\atl-sql-
002.litwareinc.com\logs"}

Type: Hashtable
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabaseType
Type of mirror database to be installed. Allowed values are:
ActiveMonitoring
Application
Archiving
CentralMgmt
Edge
Lyss
Monitoring
PersistentChat
PersistentChatCompliance
Provision
Registrar
SigninTelemetry
User

Type: DatabaseNameType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DropExistingDatabasesOnMirror
When present, deletes any existing copies of the mirrored databases from the server acting as the mirror before
new data is copied to that server.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeDatabaseList
List of databases that should not be included in the mirror database; multiple databases can be specified by
separating those databases using commas. For example:
-ExcludeDatabaseList "RTCCAB","RTCPROV"

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileShare
UNC path to the database shared folder. The file share is used to export of databases from the primary SQL Server
and import those databases onto the mirror.
The shared folder and its contents can be deleted after mirroring is established. The folder should also be deleted if
you decide to disable mirroring.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ForDefaultInstance
When specified, instructs the Install-CsMirrorDatabase cmdlet to only act against the default SQL Server instance.
You cannot use both ForDefaultInstance and ForInstance in the same command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ForInstance
When specified, instructs the Install-CsMirrorDatabase cmdlet to only act against the specified SQL Server
instance. You cannot use both ForInstance and ForDefaultInstance in the same command.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\InstallDatabaseMirror.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlInstanceName
Name of the database instance where the database is to be installed. A database instance is simply a set of running
processes that provides access to database files. If this parameter is omitted, the Install-CsMirrorDatabase cmdlet
will use the default SQL Server instance.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlServerFqdn
Fully qualified domain name (FQDN ) of the primary SQL Server computer. For example:
-SqlServerFqdn atl-sql-001.litwareinc.com
Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Install-CsMirrorDatabase cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Get-CsDatabaseMirrorState
Uninstall-CsMirrorDatabase
minutes to read • Edit Online

Invoke-CsArchivingDatabasePurge
In ths Article

Manually purges records from the Archiving database. This cmdlet was introduced in Lync Server 2013.

Syntax
Invoke-CsArchivingDatabasePurge [-Identity] <XdsIdentity> [-PurgeArchivingDataOlderThanHours] <Int32>
[-PurgeExportedArchivesOnly] <Boolean> [[-MaxArchivingRecordsToDelete] <Int32>] [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Invoke-CsArchivingDatabasePurge [-PurgeArchivingDataOlderThanHours] <Int32>


[-PurgeExportedArchivesOnly] <Boolean> [[-MaxArchivingRecordsToDelete] <Int32>] -SqlServerFqdn <String>
[-Confirm] [-Force] [-SqlInstanceName <String>] [-WhatIf] [<CommonParameters>]

Description
Many organizations find it useful to keep a transcript of all the IM sessions carried out by their users (or a selected
subset of users). For other organizations, it's mandatory to keep such transcripts. For example, many organizations
in the financial world are required by law to keep copies of all their electronic communications.
If you have enabled archiving in your organization and if you have chosen to use Skype for Business Server as your
archiving backend, then your archiving records will be stored in the SQL Server database LcsLog. (Alternatively,
archiving records can be stored using Microsoft Exchange instead. See the help topic for the New -
CsArchivingConfiguration cmdlet for more information.) Over time, the archiving database has the potential to
grow extremely large. Because of that, Skype for Business Server provides two ways for administrators to purge
older records from the database: 1) you can configure Skype for Business Server to automatically delete older
archiving records each day; and/or, 2) you can use the Invoke-CsArchivingDatabasePurge cmdlet at any time to
delete archiving records from the LcsLog database. (The Invoke-CsArchivingDatabasePurge cmdlet does this by
calling the SQL Server stored procedures RtcCleanupTempConference and RtcCleanupDB as well as deleted
stored meeting content.)
When you call the Invoke-CsArchivingDatabasePurge cmdlet you must specify the service location of the archiving
database where the archiving records are stored (for example, ArchivingDatabase:atl-sql-001.litwareinc.com); you
must also indicate the minimum age (in hours) of the archiving records to be deleted. For example, if you specify a
minimum age of 24 hours then all archiving records older than 24 hours will be deleted from the database.
Note that these records will be deleted even if the purging has been disabled for the specified database. (That is, the
EnablePurging property in the archiving configuration settings has been set to False.) The EnablePurging property
only controls the automated purging of archiving records; it has no effect on the Invoke-
CsArchivingDatabasePurge cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsArchivingDatabasePurge
cmdlet are not available in the Skype for Business Server Control Panel.
Examples
-------------------------- Example 1 --------------------------

Invoke-CsArchivingDatabasePurge -Identity "service:ArchivingDatabase:atl-sql-001.litwareinc.com" -


PurgeArchivingDataOlderThanHours 24 -PurgeExportedArchivesOnly $False

The command shown in Example 1 purges all the records more than 24 hours old from the archiving database on
atl-sql-001.litwareinc.com. To ensure that all the records are deleted, including records that have not been exported,
the PurgeExportedArchivesOnly parameter is set to False ($False).
-------------------------- Example 2 --------------------------

Invoke-CsArchivingDatabasePurge -Identity "service:ArchivingDatabase:atl-sql-001.litwareinc.com" -


PurgeArchivingDataOlderThanHours 24 -PurgeExportedArchivesOnly $False -Confirm:$False

The command shown in Example 2 is a variation of the command shown in Example 1; in this case, however, the
Confirm parameter is added using this syntax:
-Confirm:$False

That syntax suppresses the confirmation prompts that would otherwise appear when purging archiving records.
-------------------------- Example 3 --------------------------

Get-CsService -ArchivingDatabase | ForEach-Object {Invoke-CsArchivingDatabasePurge -Identity $_.Identity -


PurgeArchivingDataOlderThanHours 24 -PurgeExportedArchivesOnly $False -Confirm:$False}

Example 3 purges all the records more than 24 hours old from all the Archiving databases in use in the
organization. To do this, the first command in the example uses the Get-CsService cmdlet and the
ArchivingDatabase parameter to return a collection of all the archiving databases. This collection is then piped to
the ForEach-Object cmdlet. In turn, the ForEach-Object cmdlet takes each database in the collection and then runs
the Invoke-CsArchivingDatabasePurge cmdlet against that database, purging all the records more than 24 hours
old.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service Identity of the archiving database to be purged. You can retrieve the Identities for your archiving databases
by running this command:
Get-CsService -ArchivingDatabase

Note that you cannot use the Identity parameter and the SqlServerFqdn parameter in the same command.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-MaxArchivingRecordsToDelete
Specifies the maximum number of archiving records to be purged from the database; if you set this value to 99 and
you have 100 records in the database that meet the PurgeArchivingDataOlderThanHours criterion, only the 99
oldest records will be deleted.
MaxArchivingRecordsToDelete can be set to any integer value between 1 and 2147483647, inclusive.

Type: Int32
Required: False
Position: 4
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeArchivingDataOlderThanHours
Specifies the age (in hours) of the archiving records to be purged from the database; any records older than this
value will be deleted. PurgeArchivingDataOlderThanHours can be set to any integer value between 1 and
2147483647, inclusive.

Type: Int32
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeExportedArchivesOnly
When present, records will be removed for the archiving database only if those records have been exported (and, as
a result, have been marked for deletion). Records that have not been exported will remain in the database, even if
those records are older than the value specified by the PurgeArchivingDataOlderThanHours property.
Type: Boolean
Required: True
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlInstanceName
SQL Server instance name for the archiving database. For example:
-SqlInstanceName "archinst"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlServerFqdn
Fully qualified domain name of the computer where the archiving database is located. For example:
-SqlServerFqdn "atl-sql-001.litwareinc.com"

Note that you cannot use the Identity parameter and the SqlServerFqdn parameter in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Invoke-CsArchivingDatabasePurge cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.Xds.DisplayArchivingDatabase#Decorated class.

Outputs
The Invoke-CsArchivingDatabasePurge cmdlet returns instances of the
Microsoft.Rtc.Management.Purge.ArchDataPurgeStatistics class.
Related Links
New -CsArchivingConfiguration
Set-CsArchivingConfiguration
minutes to read • Edit Online

Invoke-CsBackupServiceSync
In ths Article

Manually invokes backup synchronization between a Skype for Business Server pool and its designated backup
pool. This allows administrators to synchronize data without waiting for Skype for Business Server replication. This
cmdlet was introduced in Lync Server 2013.

Syntax
Invoke-CsBackupServiceSync -PoolFqdn <Fqdn> [-BackupModule <String>] [-Force] [<CommonParameters>]

Description
The Invoke-CsBackupServiceSync cmdlet enables administrators to synchronize the data between a Registrar pool
and its backup pool. The Invoke-CsBackupServiceSync cmdlet will only copy as much data as needed in order to
bring the two pools into sync.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsBackupServiceSync cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Invoke-CsBackupServiceSync -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example 1 synchronizes the backup services for the pool atl-cs-001.litwareinc.com.

Parameters
-BackupModule
Indicates the type of data to be synchronized. Valid values are:
UserServices.PresenceFocus
ConfServices.DataConf
CentralMgmt.CMSMaster

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool where backup service synchronization is being invoked. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

Inputs
String value. The Invoke-CsBackupServiceSync cmdlet can accept a pipelined string value representing the fully
qualified domain name of a Skype for Business Server pool.

Outputs
None.

Related Links
Backup-CsPool
minutes to read • Edit Online

Invoke-CsCdrDatabasePurge
In ths Article

Manually purges records from the Call Detail records (CDR ) database. This cmdlet was introduced in Lync Server
2013.

Syntax
Invoke-CsCdrDatabasePurge [-Identity] <XdsIdentity> [-PurgeCallDetailDataOlderThanDays] <Int32>
[-PurgeDiagnosticDataOlderThanDays] <Int32> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Invoke-CsCdrDatabasePurge [-PurgeCallDetailDataOlderThanDays] <Int32>


[-PurgeDiagnosticDataOlderThanDays] <Int32> -SqlServerFqdn <String> [-Confirm] [-Force]
[-SqlInstanceName <String>] [-WhatIf] [<CommonParameters>]

Description
Call detail recording (CDR ) provides a way for you to track usage of Skype for Business Server capabilities such as
Voice over IP (VoIP ) phone calls; instant messaging (IM ); file transfers; audio/video (A/V ) conferencing; and
application sharing sessions. CDR keeps usage information: it logs information such as the parties involved in the
call; the length of the call; and whether or not any files were transferred. However, CDR does not make a recording
of the call itself.
CDR also keeps track of call error information: detailed diagnostic data for both peer-to-peer sessions and for
conferencing calls.
Call detail records are stored in the SQL Server database LcsCDR. Over time, this database has the potential to
grow extremely large. Because of that, Skype for Business Server provides two ways for administrators to purge
older records from the database: 1) you can configure Skype for Business Server to automatically delete older CDR
records each day; and/or, 2) you can use the Invoke-CsCdrDatabasePurge cmdlet at any time to delete CDR
records from the LcsCDR database. (The Invoke-CsCdrDatabasePurge cmdlet does this by calling the SQL Server
stored procedure RtcCleanupDB.)
When you call the Invoke-CsCdrDatabasePurge cmdlet you must specify the service location of the monitoring
database where the CDR records are stored (for example, MonitoringDatabase:atl-sql-001.litwareinc.com); you
must also indicate the minimum age (in days) of the call detail and diagnostic data records to be deleted. For
example, if you specify a minimum age of 10 days for call detail records, then all call detail records older than 10
days will be deleted from the database.
Note that these records will be deleted even if the purging has been disabled for the specified database. (That is, the
EnablePurging property in the CDR configuration settings has been set to False.) The EnablePurging property only
controls the automated purging of CDR records; it has no effect on the Invoke-CsCdrDatabasePurge cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsCdrDatabasePurge cmdlet are
not available in the Skype for Business Server Control Panel.
Examples
-------------------------- Example 1 --------------------------

Invoke-CsCdrDatabasePurge -Identity "service:MonitoringDatabase:atl-sql-001.litwareinc.com" -


PurgeCallDetailDataOlderThanDays 10 -PurgeDiagnosticDataOlderThanDays 10

The command shown in Example 1 deletes all the records (both call detail and diagnostic records) from the
monitoring database atl-sql-001.litwareinc.com that are more than 10 days old.
-------------------------- Example 2 --------------------------

Invoke-CsCdrDatabasePurge -Identity "service:MonitoringDatabase:atl-sql-001.litwareinc.com" -


PurgeCallDetailDataOlderThanDays 10 -PurgeDiagnosticDataOlderThanDays 10 -Confirm:$False

The command shown in Example 2 is a variation of the command shown in Example 1; in this case, however, the
Confirm parameter is added using this syntax:
-Confirm:$False

That syntax suppresses the confirmation prompts that would otherwise appear when purging CDR records.
-------------------------- Example 3 --------------------------

Get-CsService -MonitoringDatabase | ForEach-Object {Invoke-CsCdrDatabasePurge -Identity $_.Identity -


PurgeCallDetailDataOlderThanDays 10 -PurgeDiagnosticDataOlderThanDays 10 -Confirm:$False}

Example 3 purges all the records more than 10 days old from all the CDR databases in use in the organization. To
do this, the first command in the example uses the Get-CsService cmdlet and the MonitoringDatabase parameter
to return a collection of all the monitoring databases. This collection is then piped to the ForEach-Object cmdlet. In
turn, the ForEach-Object cmdlet takes each database in the collection and then runs the Invoke-
CsCdrDatabasePurge cmdlet against that database, purging all the call detail records more than 10 days old.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service Identity of the monitoring database to be purged. You can retrieve the Identities for your monitoring
databases by running this command:
Get-CsService -MonitoringDatabase

Note that you cannot use the Identity parameter and the SqlServerFqdn parameter in the same command.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PurgeCallDetailDataOlderThanDays
Specifies the age (in days) of the call detail records to be purged from the database; any records older than this
value will be deleted. Call detail records represent user/session reports. They differ from diagnostic data reports,
which are diagnostic logs uploaded by client applications such as Skype for Business.
PurgeCallDetailDataOlderThanDays can be set to any integer value between 1 and 2147483647, inclusive.

Type: Int32
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeDiagnosticDataOlderThanDays
Specifies the age (in days) of the diagnostic data records to be purged from the database; any records older than
this value will be deleted. Diagnostic data reports are diagnostic logs uploaded by client applications such as Skype
for Business.
PurgeDiagnosticDataOlderThanHours can be set to any integer value between 1 and 2147483647, inclusive.

Type: Int32
Required: True
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlInstanceName
SQL Server instance name for the CDR database. For example:
-SqlInstanceName "archinst"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlServerFqdn
Fully qualified domain name of the computer where the CDR database is located. For example:
-SqlServerFqdn "atl-sql-001.litwareinc.com"

Note that you cannot use the Identity parameter and the SqlServerFqdn parameter in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Invoke-CsCdrDatabasePurge cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.Xds.DisplayMonitoringDatabase#Decorated class.

Outputs
The Invoke-CsCdrDatabasePurge cmdlet returns instances of the
Microsoft.Rtc.Management.Purge.CdrDataPurgeStatistics class.

Related Links
New -CsCdrConfiguration
Set-CsCdrConfiguration
minutes to read • Edit Online

Invoke-CsComputerFailBack
In ths Article

Use the Invoke-CsComputerFailBack to flag a server as available for load balancing in a Skype for Business Server
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.

Syntax
Invoke-CsComputerFailBack [[-ComputerName] <String>] [-Confirm] [-NoStart] [-Report <String>]
[-WaitTime <TimeSpan>] [-WhatIf] [-SkipFabricHealthCheck] [<CommonParameters>]

Description
The Invoke-CsComputerFailBack cmdlet functionality is not available in the Skype for Business Server Control
Panel.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Server 2015)

Invoke-CsComputerFailBack -ComputerName "atl-mcs-001.litwareinc.com" -NoStart

This example marks the computer "atl-mcs-001.litwareinc.com" as available to the pool and enables the services,
but does not start them.

Parameters
-ComputerName
Specifies the computer name to fail back. The computer should be referenced by using its fully qualified domain
name (FQDN ). For example, -ComputerName "atl-mcs-001.litwareinc.com". The computer name used during
failback must be the same name used during failover.

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NoStart
If the NoStart parameter is specified, the Skype for Business server is added back into the pool and marked as
available, but all the Skype for Business services are not started. Only the Skype for Business service (rtcsrv) is
verified by the cmdlet. This allows for follow -up scripting to start the remaining services and configure the server
for your environment before users and data are assigned.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Specifies the file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\Server1FailbackLog.html". If this file already exists, it will be overwritten. By default, reports are
written to the AppData\Local\Temp folder in your user profile.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipFabricHealthCheck
{{Fill SkipFabricHealthCheck Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WaitTime
Specifies the amount of time in TimeSpan format that the cmdlet will wait for a confirmation of failback success. If
the time is exceeded, the cmdlet will fail and Skype for Business services will not be started or enabled. The default
is one hour.
Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Invoke-CsComputerFailBack cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Invoke-CsComputerFailOver
minutes to read • Edit Online

Invoke-CsComputerFailOver
In ths Article

Use the Invoke-CsComputerFailOver to force a computer in a Skype for Business Server 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.

Syntax
Invoke-CsComputerFailOver [[-ComputerName] <String>] [-Confirm] [-Force] [-NoStop] [-Report <String>]
[-WaitTime <TimeSpan>] [-WhatIf] [-DrainingTimeout <TimeSpan>] [-SkipFabricHealthCheck] [<CommonParameters>]

Description
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 Invoke-CsComputerFailOver cmdlet functionality is not available in the Skype for Business Server Control
Panel.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 -------------------------- (Skype for Business Server 2015)

Invoke-CsComputerFailOver -ComputerName "atl-mcs-001.litwareinc.com" -Report "C:\Logs\S1_FailOverLog.html" -


WaitTime 1:30:00

This example directs that the users assigned to server "atl-mcs-001.litwareinc.com" will be moved to other servers
in the pool. The log output path is specified and the cmdlet will wait 1 hour 30 minutes before timing out.

Parameters
-ComputerName
Specifies the computer name to fail over. The computer should be referenced by using its fully qualified domain
name (FQDN ). For example, -ComputerName "atl-mcs-001.litwareinc.com".
Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DrainingTimeout
Draining timeout in minutes to gracefully drain MCUs.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If the Force parameter is specified, the server is failed over without verifying the pool's capacity to absorb the failed
over server's workload.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NoStop
If specified, Skype for Business Server services will not be stopped as part of the failover. This maintains the failed
over server's state for additional scripting or troubleshooting.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Specifies the file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\S1_FailOverLog.html". If this file already exists, it will be overwritten. By default, reports are
written to the "AppData\Local\Temp" folder in your user profile.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipFabricHealthCheck
{{Fill SkipFabricHealthCheck Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WaitTime
Specifies the amount of time in TimeSpan format that the cmdlet will wait for confirmation that users and data
have been migrated, and all conferences and sessions have been drained. If the wait time is exceeded, the cmdlet
fails and no action is taken on the specified server. The default is one hour.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Invoke-CsComputerFailOver cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Invoke-CsComputerFailBack
minutes to read • Edit Online

Invoke-CsDatabaseFailover
In ths Article

Invokes the process in which a Skype for Business Server database fails over to its mirror database. After failover
has been completed, the mirror database will become the principal database and will handle all new database
requests. This cmdlet was introduced in Lync Server 2013.

Syntax
Invoke-CsDatabaseFailover -DatabaseType <DatabaseNameType> -NewPrincipal <MirrorRole> -PoolFqdn <Fqdn>
[-Confirm] [-ExcludeDatabaseList <String[]>] [-Force] [-LocalStore] [-Report <String>] [-WhatIf]
[<CommonParameters>]

Description
The Invoke-CsDatabaseFailover cmdlet provides a way for administrators to "failover" one or more Skype for
Business Server databases. For example, suppose you need to temporarily take down the primary database,
perhaps to perform a hardware upgrade. In that case, you can use the Invoke-CsDatabaseFailover cmdlet to
failover from the primary database to the mirror database; when you do that, all requests for the database in
question will be routed to the mirror database. Later, when the hardware upgrade is complete, you can use this
same cmdlet to failback to the primary database.
Note that any commands using the Invoke-CsDatabaseFailover cmdlet will fail if you have not configured both a
primary database and a mirror database for the database in question.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsDatabaseFailover cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Invoke-CsDatabaseFailover -PoolFqdn atl-cs-001.litwareinc.com -DatabaseType "User" -NewPrincipal "Mirror"

The command shown in Example 1 invokes failover for the User database found on the pool atl-cs-
001.litwareinc.com. The command causes the User database to failover to a previously-assigned mirror database.
-------------------------- Example 2 --------------------------

Invoke-CsDatabaseFailover -PoolFqdn atl-cs-001.litwareinc.com -ExcludeDatabase -NewPrincipal "Mirror" -


ExcludeDatabaseList "LcsCDR", "LcsLog"

In Example 2, all databases on the pool atl-cs-001.litwareinc.com are failed over except for the LcsCDR and LcsLog
databases. These databases are exempted from failover by using the ExcludeDatabaseList parameter.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabaseType
Type of database being failed over. Valid values are:
ActiveMonitoring
Application
Archiving
CentralMgmt
Edge
Lyss
Monitoring
PersistentChat
PersistentChatCompliance
Provision
Registrar
SigninTelemetry
User

Type: DatabaseNameType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeDatabaseList
List of databases that should not be failed over. For example:
-ExcludeDatabaseList "LcsCDR"

To prevent multiple databases from being failed over, separate the database names using commas:
-ExcludeDatabaseList "LcsCDR", "LcsLog"
Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command. The Force
parameter is also used if the current database is not accessible.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocalStore
Retrieves topology information from the local replica of the Central Management store rather than from the
Central Management store itself.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NewPrincipal
Specifies whether failover will be to the primary database or to the mirror database. Valid values are:
Mirror
Primary

Type: MirrorRole
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool containing the database to be failed over.

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\DatabaseFailover.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Invoke-CsDatabaseFailover cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Get-CsDatabaseMirrorState
Install-CsMirrorDatabase
minutes to read • Edit Online

Invoke-CsManagementServerFailover
In ths Article

Invokes the process by which the Skype for Business Server Central Management Store (CMS ) is failed over to
another pool. When the Central Management store is failed over the primary database will be replaced by either a
preassigned database or a specified backup database. To run this cmdlet, you need to use an account that is a
member of the RTCUniversalServerAdmins group. This cmdlet should be run on a server in the pool to which you
want to failerover the CMS. This cmdlet was introduced in Lync Server 2013.

Syntax
Invoke-CsManagementServerFailover -BackupSqlServerFqdn <Fqdn> [-Force] [-BackupMirrorSqlInstanceName <String>]
[-BackupMirrorSqlServerFqdn <Fqdn>] [-BackupSqlInstanceName <String>] [-Confirm] [-Report <String>] [-WhatIf]
[<CommonParameters>]

Invoke-CsManagementServerFailover [-Confirm] [-Report <String>] [-Restore] [-WhatIf] [<CommonParameters>]

Description
The Invoke-CsManagementServerFailover cmdlet enables administrators to "failover" the Central Management
Server (CMS ). You can only invoke the failover to the database defined in the Topology Builder. The Invoke-
CsManagementServerFailover cmdlet provides two methods for failing over the CMS:
Failover when the CMS is available by running the cmdlet without any target database parameters as in Example 1.
Failover when the CMS is unavailable (in disaster recovery mode) by specifying the BackupSqlServerFqdn
parameter and the corresponding BackupSqlInstanceName parameter as in Example 2. If the database defined in
the Topology Builder is mirrored, add the BackupMirrorSqlServerFqdn and BackupMirrorSqlInstanceName
parameters.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsManagementServerFailover
cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Invoke-CsManagementServerFailover

The command shown in Example 1 fails over the Central Management store for Skype for Business Server. In this
case, the existing management store will be replaced by the preassigned database specified in the topology.
-------------------------- Example 2 --------------------------
Invoke-CsManagementServerFailover -BackupSqlServerFqdn "redmond-cs-001.litwareinc.com" - BackupSqlInstanceName
"RTC" -Force

The command shown in Example 2 fails over the Central Management store for Skype for Business Server. In this
case, the existing management store will be replaced by the RTC database instance found on the computer
redmond-cs-001.litwareinc.com.

Parameters
-BackupMirrorSqlInstanceName
SQL Server instance for the mirror database.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BackupMirrorSqlServerFqdn
Fully qualified domain name of the computer hosting the SQL Server mirror database.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BackupSqlInstanceName
SQL Server instance for the backup database.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BackupSqlServerFqdn
Fully qualified domain name of the computer hosting the SQL Server backup database. This parameter is required
if you are running the Invoke-CsManagementServerFailover cmdlet in disaster recovery mode.

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command. This
parameter is required if you are running the Invoke-CsManagementServerFailover cmdlet in disaster recovery
mode.
You should not use the Force parameter if you are running the cmdlet for purposes other than disaster recovery, as
it will not account for replication during the failover. When the parameter is not used, the cmdlet will first make sure
all replications are done, then set the source DB to read-only mode.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\CMSFailover.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Restore
When specified, restores the existing Central Management Server database.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Invoke-CsManagementServerFailover cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Invoke-CsDatabaseFailover
minutes to read • Edit Online

Invoke-CsManagementStoreReplication
In ths Article

Forces Skype for Business Server replication services to send complete configuration data to the specified
computers. This is done by deleting the replication status of the computers from the Central Management store.
This cmdlet was introduced in Lync Server 2010.

Syntax
Invoke-CsManagementStoreReplication [[-ReplicaFqdn] <String>] [-Force] [<CommonParameters>]

Description
When an administrator makes a change to Skype for Business Server (for example, when an administrator creates
a new voice policy or changes the Address Book server configuration settings) that change is recorded in the
Central Management store. In turn, the change must then be replicated to all the computers running Skype for
Business Server services or server roles.
In order to replicate data, the Master Replicator (running on the Central Management Server) creates a snapshot of
the modified configuration data; a copy of this snapshot is then sent to each computer running Skype for Business
Server services or server roles. On those computers, a replication agent receives the snapshot and uploads the
modified data; the agent then sends the Master Replicator a message reporting the latest replication status.
Replication typically requires no human intervention; in fact, it's usually best to let the Master Replicator handle the
replication process. However, there might be occasions when you need to forcibly initiate replication on a computer
(or a group of computers) without waiting for the standard replication cycle to run its course. Should such an
occasion arise, you can forcibly replicate information to a computer by using the Invoke-
CsManagementStoreReplication cmdlet.
Typically, replication works on an incremental basis: when data is replicated, only the changes are replicated, not the
complete set of configuration data. However, when you call the Invoke-CsManagementStoreReplication cmdlet,
you force a complete replication of all the data rather than the more typical replication of changes only. Note that
replication will not necessarily take place immediately when you call the Invoke-CsManagementStoreReplication
cmdlet. Instead, there could be a two to three minute delay as changes are processed by the Master Replicator.

Examples
-------------------------- EXAMPLE 1 --------------------------

Invoke-CsManagementStoreReplication

In Example 1, the Invoke-CsManagementStoreReplication cmdlet is called without any parameters. This forces
replication to take place on all Skype for Business Server computers.
-------------------------- EXAMPLE 2 --------------------------
Invoke-CsManagementStoreReplication -ReplicaFqdn atl-cs-001.litwareinc.com

In Example 2, the ReplicaFqdn parameter is used when calling the Invoke-CsManagementStoreReplication cmdlet.
That causes replication to take place only on the computer atl-cs-001.litwareinc.com.

Parameters
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReplicaFqdn
Fully qualified domain name (FQDN ) of the computer where replication should be initiated. For example:
-ReplicaFqdn "atl-cs-001.litwareinc.com".

If this parameter is not included, then replication will be initiated on all your Skype for Business Server computers.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

Inputs
None. The Invoke-CsManagementStoreReplication cmdlet does not accept pipelined input.

Outputs
The Invoke-CsManagementStoreReplication cmdlet does not return any objects.

Related Links
Get-CsManagementStoreReplicationStatus
minutes to read • Edit Online

Invoke-CsPoolFailBack
In ths Article

Invokes the failback process for a Skype for Business Server pool. Failback is used after a pool has failed over and
the users of that pool have been "failed over" to a backup pool. (That simply means users who were signed on to
the failed pool are automatically signed on to the backup pool.) When the failed pool has been restored, the fail
back process signs the failed-over users back to their original pool. This cmdlet was introduced in Lync Server
2013.

Syntax
Invoke-CsPoolFailBack -PoolFqdn <Fqdn> [-Confirm] [-DisasterMode] [-Force] [-WaitTime <TimeSpan>] [-WhatIf]
[-DatabaseCommandTimeoutInSeconds <Int32>] [-SkipDataVerification] [<CommonParameters>]

Description
The pool failover process provides a way for administrators to quickly restore service to users if the Registrar pool
they have logged on to should suddenly become unavailable. If a pool fails, users will automatically be signed off
from Skype for Business Server; if they immediately try to log back on, they will be redirected to their specified
backup pool.
To restore service to these users, administrators can run the Invoke-CsPoolFailOver cmdlet against the pool that is
not currently available. Doing this will allow users to sign on to Skype for Business Server using the designated
backup pool, and give these users access to all Skype for Business Server services and functionality. Note that users
will not be rehomed on the backup pool; they will simply be allowed to log on and make use of that pool until their
home pool has been restored. For example, if Pool A fails, users will be able to log on to Pool B (with complete
functionality) until Pool A has been restored.
When the failed pool is once more up and running, administrators can then run the Invoke-CsPoolFailBack cmdlet
in order to "fail back" users of that pool. If a user is currently logged on to the backup pool then he or she will be
redirected back to their home pool after service has been restored.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsPoolFailback cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Invoke-CsPoolFailback -PoolFqdn "atl-cs-001.litwareinc.com"

In Example 1, failback is invoked for the pool atl-cs-001.litwareinc.com.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabaseCommandTimeoutInSeconds
The amount of time, in seconds, to wait for database commands to time out.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisasterMode
Enables administrators to invoke pool failback even if the backup pool is currently unavailable. When you use this
parameter, data generated by the failed-over users on the backup pool will be lost.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool being failed back. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

The pool FQDN used during failback must be the same FQDN used during failover.
Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipDataVerification
When included in a command, Invoke-CsPoolFailover will proceed with the failover operation without first
verifying data integrity.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WaitTime
Specifies the maximum amount of time the cmdlet should wait before synching data. Time values must be express
using the format hours:minutes:seconds; for example, the following syntax sets the wait time to 1 minute and 30
seconds (00 hours:01:minutes:30 seconds):
00:01:30
The default value is 15 seconds.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Invoke-CsPoolFailBack cmdlet does not accept pipelined input.

Outputs
None.
Related Links
Invoke-CsPoolFailOver
minutes to read • Edit Online

Invoke-CsPoolFailOver
In ths Article

Invokes the failover process for a Skype for Business Server pool. Failover refers to the process that occurs when a
pool fails and the current users of that pool are then signed on to a backup pool. This cmdlet was introduced in
Lync Server 2013.

Syntax
Invoke-CsPoolFailOver -PoolFqdn <Fqdn> [-Confirm] [-DisasterMode] [-FlushStorageService] [-Force]
[-WaitTime <TimeSpan>] [-WhatIf] [-DatabaseCommandTimeoutInSeconds <Int32>] [-ServicesStopDelayMins <Int32>]
[-SkipDataVerification] [<CommonParameters>]

Description
The pool failover process provides a way for administrators to quickly restore service to users if the Registrar pool
they have logged on to should suddenly become unavailable. If a pool fails, users will automatically be signed off
from Skype for Business Server; if they immediately try to log back on, they will be redirected to their specified
backup pool.
To restore service to these users, administrators can run the Invoke-CsPoolFailOver cmdlet against the pool that is
not currently available. Doing this will allow users to sign on to Skype for Business Server using the designated
backup pool, and give these users access to all Skype for Business Server services and functionality. Note that users
will not be rehomed on the backup pool; they will simply be allowed to log on and make use of that pool until their
home pool has been restored. For example, if Pool A fails, users will be able to log on to Pool B (with complete
functionality) until Pool A has been restored.
When the failed pool is once more up and running, administrators can then run the Invoke-CsPoolFailBack cmdlet
in order to "fail back" users of that pool. If a user is currently logged on to the backup pool then he or she will be
redirected back to their home pool after service has been restored.
Pool failover can only be invoked if you have assigned a backup pool to the failed pool.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsPoolFailOver cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Invoke-CsPoolFailOver -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example 1 invokes pool failover for the pool atl-cs-001.litwareinc.com.
-------------------------- Example 2 --------------------------
Invoke-CsPoolFailOver -PoolFqdn "atl-cs-001.litwareinc.com" -DisasterMode

Example 2 invokes disaster mode failover for the pool atl-cs-001.litwareinc.com.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DatabaseCommandTimeoutInSeconds
The amount of time to wait, in seconds, for database commands to time out.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisasterMode
When present, indicates that failover is being performed in "disaster mode." If a pool is no longer accessible the
only way to restore full functionality to users in that pool is to fail over the pool by using the DisasterMode
parameter.
If this parameter is not present that means that the pool is still up and running and that failover occurred by
administrator choice; for example, the pool might temporarily be failed over in order to do hardware or software
upgrades on the server.
Note: The parameteris required for an Enterprise pool if the backend SQL services are down but the front end
servers are still up.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FlushStorageService
When specified, the Invoke-CsPoolFailOver cmdlet will both fail over all the users in the pool, and call the Invoke-
CsStorageServiceFlush cmdlet to flush the storage service database on each Front End server in the pool. Flushing
a database involves writing all the queued data to disk, and then clearing the database cache.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool being failed over from. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServicesStopDelayMins
Specifies a number of minutes to wait for the services to stop.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipDataVerification
When included in a command, Invoke-CsPoolFailback will proceed with the failback operation without first
verifying data integrity.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WaitTime
Specifies the amount of time (in seconds) that the cmdlet will wait before assuming that the data has been synced
from the failed-over pool to the backup pool.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Invoke-CsPoolFailOver cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Invoke-CsPoolFailBack
minutes to read • Edit Online

Invoke-CsQoEDatabasePurge
In ths Article

Manually purges records from the Quality of Experience (QoE ) database. This cmdlet was introduced in Lync
Server 2013.

Syntax
Invoke-CsQoEDatabasePurge [-Identity] <XdsIdentity> [-PurgeQoEDataOlderThanDays] <Int32> [-Confirm] [-Force]
[-WhatIf] [<CommonParameters>]

Invoke-CsQoEDatabasePurge [-PurgeQoEDataOlderThanDays] <Int32> -SqlServerFqdn <String> [-Confirm] [-Force]


[-SqlInstanceName <String>] [-WhatIf] [<CommonParameters>]

Description
Quality of Experience (QoE ) metrics track the quality of audio and video calls made in your organization, including
such things as the number of network packets lost, background noise, and the amount of "jitter" (differences in
packet delay). These metrics are stored in a database apart from other data (such as call detail records), which
allows you to enable and disable QoE independent of other data recording.
Quality of Experience records are stored in the SQL Server database LcsQoEMetrics. Over time, this database has
the potential to grow extremely large. Because of that, Lync Server provides two ways for administrators to purge
older records from the database: 1) you can configure Skype for Business Server to automatically delete older QoE
records each day; and/or, 2) you can use the Invoke-CsQoEDatabasePurge cmdlet at any time to delete Quality of
Experience records from the LcsQoEMetrics database. (The Invoke-CsQoEDatabasePurge cmdlet does this by
calling the SQL Server stored procedure QoePurgeOutdatedReports.)
When you call the Invoke-CsQoEDatabasePurge cmdlet you must specify the service location of the monitoring
database where the QoE records are stored (for example, MonitoringDatabase:atl-sql-001.litwareinc.com); you
must also indicate the minimum age (in days) of the records to be deleted. For example, if you specify a minimum
age of 10 days then all QoE records older than 10 days will be deleted from the database.
Note that these records will be deleted even if the purging has been disabled for the specified database. (That is, the
EnablePurging property in the QoE configuration settings has been set to False.) The EnablePurging property only
controls the automated purging of archiving records; it has no effect on the Invoke-CsQoEDatabasePurge cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsQoEDatabasePurge cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------
Invoke-CsQoEDatabasePurge -Identity "service:MonitoringDatabase:atl-sql-001.litwareinc.com" -
PurgeQoEDataOlderThanDays 10

The command shown in Example 1 purges all the QoE records more than 10 days old from the monitoring
database on atl-sql-001.litwareinc.com.
-------------------------- Example 2 --------------------------

Invoke-CsQoEDatabasePurge -Identity "service:MonitoringDatabase:atl-sql-001.litwareinc.com" -


PurgeQoEDataOlderThanDays 10 -Confirm:$False

The command shown in Example 2 is a variation of the command shown in Example 1; in this case, however, the
Confirm parameter is added using this syntax:
-Confirm:$False

That syntax suppresses the confirmation prompts that would otherwise appear when purging QoE records.
-------------------------- Example 3 --------------------------

Get-CsService -MonitoringDatabase | Invoke-CsQoEDatabasePurge -PurgeQoEDataOlderThanDays 10 -Confirm:$False

Example 3 purges all the QoE records more than 10 days old from all monitoring QoE databases in use in the
organization. To do this, the first command in the example uses the Get-CsService cmdlet and the
MonitoringDatabase parameter to return a collection of all the monitoring databases. This collection is then piped
to the ForEach-Object cmdlet. In turn, the ForEach-Object cmdlet takes each database in the collection and then
runs the Invoke-CsQoEDatabasePurge cmdlet against that database, purging all the Quality of Experience records
more than 10 days old.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service Identity of the monitoring database to be purged. You can retrieve the Identities for your monitoring
databases by running this command:
Get-CsService -MonitoringDatabase

Note that you cannot use the Identity parameter and the SqlServerFqdn parameter in the same command.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PurgeQoEDataOlderThanDays
Specifies the age (in days) of the QoE records to be purged from the database; any records older than this value will
be deleted.
PurgeQoEDataOlderThanHours can be set to any integer value between 1 and 2147483647, inclusive.

Type: Int32
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlInstanceName
SQL Server instance name for the QoE database. For example:
-SqlInstanceName "archinst"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlServerFqdn
Fully qualified domain name of the computer where the QoE database is located. For example:
-SqlServerFqdn "atl-sql-001.litwareinc.com"

Note that you cannot use the Identity parameter and the SqlServerFqdn parameter in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Invoke-CsQoEDatabasePurge cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.Xds.DisplayMonitoringDatabase#Decorated class.

Outputs
The Invoke-CsQoEDatabasePurge cmdlet returns instances of the
Microsoft.Rtc.Management.Purge.QoEDataPurgeStatistics class.

Related Links
New -CsQoEConfiguration
Set-CsQoEConfiguration
minutes to read • Edit Online

Invoke-CsStorageServiceFlush
In ths Article

Flushes the Skype for Business Server Storage Service database on each Front End server in a pool. Flushing a
database involves writing all the queued data to disk, and then clearing the database queue. This cmdlet was
introduced in Lync Server 2013.

Syntax
Invoke-CsStorageServiceFlush -FlushType <FlushType> -PoolFqdn <Fqdn> [-Binding <String>] [-Force]
[-HostNameStorageService <String>] [-WaitTime <TimeSpan>] [<CommonParameters>]

Description
The Skype for Business Server Storage Service provides a common interface and infrastructure for managing
Skype for Business Server data, including session data for monitoring, archiving, and conversation history, as well
as for integrating with the Exchange storage system. Like other databases, the Storage Service caches data in
memory and then, as system resources permit, periodically writes that data to disk.
As a general rule, administrators do not have to interact with this queued data. However, there could be times when
the queue becomes too large or because the Registrar pool associated with the database is being failed over. In
cases like that, the Invoke-CsStorageServiceFlush cmdlet can be called in order to write all the queued data to disk
and then clear the database cache.
The Invoke-CsStorageServiceFlush cmdlet is also useful when multiple Front End servers must be shut down at the
same time (for example, in order to do a software upgrade). As a general rule, Front End servers in a pool should be
shut down, and restarted, one-by-one; that helps prevent data loss that could occur due to routing group
rebalancing. However, there might be occasions when you need to shutdown multiple servers at the same time. To
help guard against potential loss, you can run the Invoke-CsStorageServiceFlush cmdlet before doing the computer
shutdowns. This will flush the queue for the pool and write all that data to disk before any of the servers are
actually shut down.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsStorageServiceFlush cmdlet
are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Invoke-CsStorageServiceFlush -PoolFqdn "atl-cs-001.litwareinc.com" -FlushType "SteadyState"

The command shown in Example 1 performs a "steady state" flush of the Storage Service databases found on the
pool atl-cs-011.litwareinc.com. In a steady state flush, the only data removed from the queue (and written to disk) is
data that can be removed without affecting the database operation.
Parameters
-Binding
Windows Communication Foundation (WCF ) binding. A WCF binding determines the transport, encoding, and
protocol details required for clients and services to communicate with each other. valid values are:
NetNamedPipe
NetTCP

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FlushType
Specifies the type of storage flush to be performed. Allowed values are:
SteadyState - The only data that will be flushed is data that can be removed from the queue without affecting
normal operations of the storage service. This is typically done to remove older data from the queue.
FullFlush - Flushes all the data from the queue. This is typically used when a pool is being failed over, and when
there is no expectation that the queue will be receiving any new data.

Type: FlushType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostNameStorageService
Fully qualified domain name of the server where the Skype for Business Server Storage Service is running. This
parameter is required if the Binding is set to NetTCP.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-PoolFqdn
Fully qualified domain name of the pool containing the storage service to be flushed.

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WaitTime
Specifies the maximum amount of time the cmdlet will wait before assuming that flushing has begun and moving
on to the next step in the flushing process.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Invoke-CsStorageServiceFlush cmdlet does not accept pipelined data.

Outputs
String value.

Related Links
Invoke-CsPoolFailOver
minutes to read • Edit Online

Invoke-CsUcsRollback
In ths Article

Removes a user's contacts from the Unified Contact Store and, instead, stores that contact information in Skype for
Business Server. The Unified Contact Store provides a way for users to maintain a single set of contacts that can be
accessed using Skype for Business, Microsoft Outlook, and/or Microsoft Outlook Web Access. This cmdlet was
introduced in Lync Server 2013.

Syntax
Invoke-CsUcsRollback [-Identity] <UserIdParameter> [-Confirm] [-DomainController <Fqdn>] [-Force] [-PassThru]
[-WhatIf] [-AsJob] [<CommonParameters>]

Description
The unified contact store introduced in Skype for Business Server gives administrators the option of storing a
user's contacts in Exchange instead of in Skype for Business Server; in turn that allows the user to access the same
set of contacts in Microsoft Outlook and Outlook Web Access as well as in Skype for Business. (Alternatively, you
can continue to store contacts in Skype for Business Server. In that case, users will have to maintain two separate
sets of contacts: one for use with Outlook and Outlook Web Access, and one for use with Skype for Business
Server.)
In order to take advantage of the unified contact store you must (among other things) assign the user a user
services policy that enables the use of the unified contact store; if all the other prerequisites have been met, then the
next time the user logs on using Skype for Business Server his or her contacts will automatically be moved from
Skype for Business Server to the unified contact store. See the help topic for the Set-CsUserServicesPolicy cmdlet
for more information.
If later decide to move those contacts back to Skype for Business Server (and out of the unified contact store) then
you need to do two things. First, you must assign the user a new user services policy, one that prohibits the use of
the unified contact store. Second, you must use the Invoke-CsUcsRollback cmdlet to "manually" migrate the
contacts from the unified contact store back to Skype for Business Server. Simply changing the user services policy
will not remove the user's contacts from the unified contact store; that can only be done by calling the Invoke-
CsUcsRollback cmdlet.
Note. Technically, calling the Invoke-CsUcsRollback cmdlet by itself, without modifying the user services policy, will
remove a user's contacts from the unified contact store. However, this change will only be temporary: if you do not
change the user services policy then, after a 7-day waiting period, the user's contacts will automatically be moved
back into the unified contact store.
Skype for Business Server Control Panel: The functions carried out by the Invoke-CsUcsRollback cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------
Invoke-CsUcsRollback -Identity "Ken Myer"

The command shown in Example 1 removes the user Ken Myer from the unified contact store.
-------------------------- Example 2 --------------------------

Get-CsUser -Filter {RegistrarPool -eq "atl-cs-001.litwareinc.com"} | Invoke-CsUcsRollback -Confirm:$False

In Example 2, all the users homed on the Registrar pool atl-cs-001.litwareinc.com are removed from the unified
contact store. To do this, the command first calls the Get-CsUser cmdlet along with the Filter parameter; the filter
value {RegistrarPool -eq "atl-cs-001.litwareinc.com"} limits the returned data to users homed on the pool atl-cs-
001.litwareinc.com. Those user accounts are then piped to the Invoke-CsUcsRollback cmdlet, which removes each
user from the unified contact store. In order to suppress the confirmation prompt that would otherwise occur each
time the cmdlet rolls back a user account, the Confirm parameter is included using this syntax: -Confirm:$False

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command. To prevent a confirmation prompt from appearing
each time you roll back a user account use this syntax:
-Confirm:$False

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to retrieve user information. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-dc-001) or its fully qualified domain name (FQDN ) (for example, atl-dc-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be rolled back. User Identities are typically specified using one of four
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon
name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name
(for example, Ken Myer).

You can also reference a user account by using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being removed from the
Unified Contact Store. By default, the Invoke-CsUcsRollback cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. Invoke-CsUcsRollback accepts
pipelined input of string values representing the Identity of a user account. The cmdlet also accepts pipelined input
of user objects.

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Invoke-CsUcsRollback cmdlet
accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
None.

Outputs
System.Object

Related Links
New -CsUserServicesPolicy
Set-CsUserServicesPolicy
Test-CsUnifiedContactStore
minutes to read • Edit Online

Lock-CsClientPin
In ths Article

Enables an administrator to prevent a user from using personal identification number (PIN ) authentication. This
cmdlet was introduced in Lync Server 2010.

Syntax
Lock-CsClientPin [-Identity] <UserIdParameter> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server enables users to connect to the system, or to join public switched telephone network
(PSTN ) conferences by using a telephone. Typically, logging on to the system or joining a conference requires the
user to enter a user name or password. However, entering a user name and password can be a problem if you are
using a phone that does not have an alphanumeric keypad. Because of that, Skype for Business Server enables you
to supply users with numeric-only PINs; when prompted, users can then log on to the system or join a conference
by entering the PIN instead of a user name and password.
As a security measure, Skype for Business Server enables you to lock a user's PIN. When a PIN is locked, the user
will no longer be able to use that PIN to access the system or join a conference. (However, that user will still be able
to access the system and join conferences by using an application such as Skype for Business and by supplying a
user name and password.) After a PIN has been locked, the only way to restore the PIN (and the user's access
privileges) is for an administrator to unlock the PIN. This can be done by using the Unlock-CsClientPin cmdlet.
The Lock-CsClientPin cmdlet enables administrators to temporarily disable the ability of a user to access the
system by using PIN authentication. PINs can also be locked by the system: if a user repeatedly fails to log on to
the system, their PIN will automatically be locked and, again, will require unlocking by an administrator.
Note that, by default, the firewall exceptions for SQL Server Express are not enabled when you install the Standard
Edition of Skype for Business Server. That means that you will not be able to run the Lock-CsClientPin cmdlet from
a remote instance of Windows PowerShell; that's because your command will not be able to traverse the firewall
and access the SQL Server Express database. (However, you can still run the cmdlet locally on the Standard Edition
server itself.) To run the Lock-CsClientPin cmdlet remotely you will need to manually enable the firewall exceptions
for SQL Server Express.

Examples
-------------------------- EXAMPLE 1 --------------------------

Lock-CsClientPin -Identity "kenmyer@litwareinc.com"

In Example 1, the Lock-CsClientPin cmdlet is used to lock the PIN belonging to the user kenmyer@litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------
Get-CsUser | Get-CsClientPinInfo | Where-Object {$_.IsPinSet -eq $True} | Lock-CsClientPin

Example 2 uses the Lock-CsClientPin cmdlet to lock the PINs for all users who currently have a PIN assigned to
them. This is done by using the Get-CsUser cmdlet to return a collection of all the users who have been enabled for
Skype for Business Server. That collection is piped to the Get-CsClientPinInfo cmdlet, which is used, in conjunction
with the Where-Object cmdlet, to return a collection of users where the IsPinSet property is equal to True. That
filtered collection is then piped to the Lock-CsClientPin cmdlet, which locks the PIN for each user in the collection.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUser | Get-CsClientPinInfo | Where-Object {$_.PinExpirationTime -lt (Get-Date)} | Lock-CsClientPin

In Example 3, the Lock-CsClientPin cmdlet is used to lock the PINs for all the users who have expired PINs. To
carry out this task, the Get-CsUser cmdlet is first called in order to return a collection of all the users who have
been enabled for Skype for Business Server. This collection is then piped to the Get-CsClientPinInfo cmdlet, which
is used, in conjunction with the Where-Object cmdlet, to limit the collection to users who have expired PINs. To
determine which users have expired PINs, the Where-Object cmdlet checks for accounts where the
PinExpirationTime property (which indicates the date that the PIN number expires) is less than the current date.
(The current date is retrieved using the Get-Date cmdlet.) If the expiration date (for example, September 1, 2010) is
less than the current date (for example, September 2, 2010), that means that the PIN has expired. After that, the
Lock-CsClientPin cmdlet is used to lock each of the expired PINs.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Identity of the user account for which the PIN should be locked. User Identities can be specified by using one of
four formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and
logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory
display name (for example, Ken Myer). You can also reference user Identities by using the user's Active Directory
distinguished name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users who have a display name that ends with the string value "
Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Lock-CsClientPin cmdlet
accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
The Lock-CsClientPin cmdlet does not return a value or object. Instead, the cmdlet configures one or more
instances of the Microsoft.Rtc.Management.UserPinService.PinInfoDetails object.

Related Links
Get-CsClientPinInfo
Set-CsClientPin
Unlock-CsClientPin
minutes to read • Edit Online

Merge-CsLegacyTopology
In ths Article

The Merge-CsLegacyTopology cmdlet enables you to migrate topology information from Microsoft Office
Communications Server 2007 R2 or Microsoft Office Communications Server 2007 to Skype for Business Server.
This helps provide interoperability between Skype for Business Server and earlier versions of the software. This
cmdlet was introduced in Lync Server 2010.

Syntax
Merge-CsLegacyTopology [-TopologyXmlFileName] <String> [[-UserInputFileName] <String>] [-Force]
[-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Merge-CsLegacyTopology [[-UserInputFileName] <String>] [-Force] [-Report <String>] [-WhatIf] [-Confirm]


-Reserved <PSObject> [<CommonParameters>]

Description
The Merge-CsLegacyTopology cmdlet is the first tool to use when migrating from an earlier version of Office
Communications Server (either Office Communications Server 2007 R2 or Office Communications Server 2007)
to Skype for Business Server. The Merge-CsLegacyTopology cmdlet is used to migrate trusted service entries and
topology information for the following components: domains, user services, Registrar, Mediation Server, and Edge
Server. In addition, the cmdlet migrates trusted service entries for the Conferencing Attendant application;
Communicator Web Access; and conferencing directories. (A trusted service entry is an Active Directory record that
represents a server trusted by Skype for Business Serve.) Merging the topology information enables users homed
on Skype for Business Server to communicate with users homed on Communications Server 2007 or
Communications Server 2007 R2.
Before you can run the Merge-CsLegacyTopology cmdlet you must first install the Windows Management
Instrumentation (WMI) Backward Compatibility interfaces package; this application is installed by running
OCSWMIBC.msi. (OCSWMIBC.msi can be found on the installation DVD in the Setup.) After installing the
Compatibility interfaces package, the Merge-CsLegacyTopology cmdlet can then be called. The Merge-
CsLegacyTopology cmdlet will use WMI to read legacy data from the earlier version of Office Communications
Server; it will then take the retrieved data and create corresponding objects in Skype for Business Server. For
example, for each SIP domain found in your installation of Office Communications Server, a corresponding SIP
domain will be created in your new installation of Skype for Business Server.
After running the Merge-CsLegacyTopology cmdlet, you should then run the Import-CsLegacyConfiguration
cmdlet and the Import-CsLegacyConferenceDirectory cmdlet.
The Merge-CsLegacyTopology cmdlet needs to be run at least twice: once at the start of a migration (in order to
introduce the Communications Server 2007 or Communications Server 2007 R2 topology), and once at the end of
migration, when the previous Office Communications Server environment has been decommissioned. You will also
need to run the cmdlet any time you make a change to your legacy Office Communications Server environment.
For example, if you add a Mediation Server to or decommission a pool from your Office Communications Server
topology, you will need to re-run the Merge-CsLegacyTopology cmdlet in order to import the modified topology.
The Import-CsLegacyConfiguration cmdlet and the Import-CsLegacyConferenceDirectory cmdlet depend on
values configured by the Merge-CsLegacyTopology cmdlet. That means that you might receive error messages
from either the Import-CsLegacyConfiguration cmdlet or the Import-CsLegacyConferenceDirectory cmdlet that
instruct you to run the Merge-CsLegacyTopology cmdlet as a possible solution to the problem that just occurred. If
you do not re-run the Merge-CsLegacyTopology cmdlet, then additional errors can occur, especially if an item is
removed from the Office Communications Server environment while it is still in use by Skype for Business Server.
If you need to merge Edge Servers from a previous installation of Office Communications Server you must first
create a custom XML file that contains your Edge Server; you must create the file yourself because Edge Server
settings are not stored in Active Directory, and, as a result, cannot be retrieved by the Merge-CsLegacyTopology
cmdlet. After you have created this XML file (see the Skype for Business Server Deployment Guide for information
on how to create this file) you must include the path to that file and the UserInputFileName parameter when
running the Merge-CsLegacyTopology cmdlet. If you do not do this no Edge Servers will be included in your
merged topology.

Examples
-------------------------- EXAMPLE 1 --------------------------

Merge-CsLegacyTopology -TopologyXmlFileName C:\New_Topology.xml

The command shown in Example 1 merges topology information and trusted service entries from Communications
Server 2007 R2 or Communications Server 2007 with a new installation of Skype for Business Server. The
required parameter TopologyXmlFileName is used to indicate the path to the output file generated when you run
the Merge-CsLegacyTopology cmdlet.
-------------------------- EXAMPLE 2 --------------------------

Merge-CsLegacyTopology -TopologyXmlFileName C:\New_Topology.xml -UserInputFileName C:\EdgeServers.xml

Example 2 is a variation of the command used in Example 1. In Example 2, however, the UserInputFileName
parameter is included in order to merge Edge Server information into the topology. The parameter value
C:\EdgeServers.xml points to a custom XML file containing Edge Server information for Office Communications
Server.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\MergeTopology.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Reserved
Enables you to merge the topology using a topology object instead of a topology XML file.

Type: PSObject
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TopologyXmlFileName
Path to the output file to be created when the Merge-CsLegacyTopology cmdlet is run. Note that this file differs
from the file specified using the Report parameter; the latter file is used for recording error information while the
Topology XML file contains your newly created Skype for Business Server topology. This file will later be used to
publish the new topology.
If the specified file already exists, it will be overwritten when you run the Merge-CsLegacyTopology cmdlet.

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserInputFileName
Path to the XML file used to import Edge Server data from an earlier version of Skype for Business Server. This
XML file (which you must create following the guidelines detailed in the Skype for Business Server Deployment
Guide) is required because Edge Server settings are not stored in Active Directory Domain Services. If you do not
need to import Edge Server information, then this parameter can be omitted.
If this parameter is not used, remote and external access features (including federation) might not function as
expected in an environment running both Communications Server 2007 R2 or Communications Server 2007 R2
and .
Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Merge-CsLegacyTopology cmdlet does not accept pipelined input.

Outputs
The Merge-CsLegacyTopology cmdlet does not return any objects or values.

Related Links
Import-CsLegacyConfiguration
Import-CsLegacyConferenceDirectory
Move-CsLegacyUser
minutes to read • Edit Online

Move-CsAnalogDevice
In ths Article

Moves one or more analog devices to a new Registrar pool. An analog device is a telephone or other device that is
connected to the public switched telephone network (PSTN ). This cmdlet was introduced in Lync Server 2010.

Syntax
Move-CsAnalogDevice [-Identity] <UserIdParameter> [-Target] <Fqdn> [-DomainController <Fqdn>]
[-ProxyPool <Fqdn>] [-Force] [-PassThru] [-WhatIf] [-Confirm] [-IgnoreBackendStoreException]
[<CommonParameters>]

Move-CsAnalogDevice [-Identity] <UserIdParameter> [-Target] <Fqdn> [-Confirm] [-DomainController <Fqdn>]


[-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>] [-Report <String>] [-WhatIf]
[<CommonParameters>]

Move-CsAnalogDevice [-Target] <Fqdn> -UserList <String> [-ConcurrentMovesPerFE <Int32>] [-Confirm]


[-DomainController <Fqdn>] [-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>]
[-Report <String>] [-WhatIf] [<CommonParameters>]

Description
Analog devices include telephones, fax machines, modems, and teletype/telecommunication device for the deaf
(TTY/TDD ) devices that are connected to the public switched telephone network (PSTN ). Unlike devices that take
advantage of Enterprise Voice (the Voice over Internet Protocol (VoIP ) solution offered by Microsoft), analog
devices do not transmit information by using digital packets. Instead, information is transmitted by using a
continuous signal. This signal is commonly referred to as an analog signal; hence the term "analog devices."
In order to enable administrators to manage analog devices, Skype for Business Server lets you associate analog
devices with Active Directory contact objects. After a device has been associated with a contact object, you can then
manage the analog device by assigning policies and dial plans to the contact.
The Move-CsAnalogDevice cmdlet provides a way for you to move an existing analog device to a new Registrar
pool.

Examples
-------------------------- EXAMPLE 1 --------------------------

Move-CsAnalogDevice -Identity "CN={ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com" -


Target atl-cs-001.litwareinc.com

The command shown in Example 1 moves the analog device with the Identity CN={ce84964a-c4da-4622-ad34-
c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com to the Registrar pool atl-cs-001.litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------

Get-CsAnalogDevice | Where-Object {$_.DisplayName -eq "Building 14, Room 142"} | Move-CsAnalogDevice -Target
atl-cs-001.litwareinc.com

In Example 2, the analog device that has the Active Directory display name, "Building 14, Room 142", is moved to
the Registrar pool atl-cs-001.litwareinc.com. To do this, the Get-CsAnalogDevice cmdlet is first called without any
parameters in order to return a collection of all the analog devices currently in use in the organization. This
collection is then piped to the Where-Object cmdlet, which picks out all the devices that have the display name
"Building 14, Room 142". That filtered collection is then piped to the Move-CsAnalogDevice cmdlet, which moves
all of the devices in the collection to the Registrar pool atl-cs-001.litwareinc.com.
-------------------------- EXAMPLE 3 --------------------------

Get-CsAnalogDevice | Where-Object {$_.DisplayName -like "Building 14*"} | Move-CsAnalogDevice -Target atl-cs-


001.litwareinc.com

The command shown in Example 3 moves all of the analog devices that have a display name that begins with the
string value "Building 14". To carry out this task, the command first calls the Get-CsAnalogDevice cmdlet to return
a collection of all the analog devices currently in use in the organization. This collection is then piped to the Where-
Object cmdlet, which selects all the devices that have a display name that begins with the string value "Building 14".
The filtered collection is then piped to the Move-CsAnalogDevice cmdlet, which moves each device in the collection
to the Registrar pool atl-cs-001.litwareinc.com.

Parameters
-ConcurrentMovesPerFE
PARAMVALUE: Int32

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to move the analog device. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-cs-001) or its FQDN (for example, atl-cs-001.litwareinc.com).
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present, moves the analog device but deletes any associated data (such as policies that were assigned to the
device). If not present, the device is moved along with any associated data.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the analog device. Analog devices are identified by using the Active Directory distinguished
name of the associated contact object. By default, analog devices use a GUID (globally unique identifier) as their
common name, which means devices will typically have an Identity similar to this: CN={ce84964a-c4da-4622-
ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-IgnoreBackendStoreException
When present, instructs the computer to ignore any errors that might occur with the backend database and attempt
to move the common area phone despite those errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being moved. By default,
the Move-CsAnalogDevice cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ProxyPool
This parameter is used only for Skype for Business Online. It should not be used with an on-premises
implementation of Skype for Business Server.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Target
The fully qualified domain name (FQDN ) (for example, atl-cs-001.litwareinc.com) of the Registrar pool where the
analog device should be moved. In addition to a Registrar pool, the Target can also be the FQDN of a hosting
provider.

Type: Fqdn
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserList
PARAMVALUE: String

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
String. The Move-CsAnalogDevice cmdlet accepts a pipelined string value that represents the Identity of the analog
device.

Outputs
By default, the Move-CsAnalogDevice cmdlet does not return any objects or values. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact object.

Related Links
Get-CsAnalogDevice
New -CsAnalogDevice
Remove-CsAnalogDevice
Set-CsAnalogDevice
minutes to read • Edit Online

Move-CsApplicationEndpoint
In ths Article

Moves an endpoint to a different Registrar pool. This cmdlet was introduced in Lync Server 2010.

Syntax
Move-CsApplicationEndpoint [-Identity] <UserIdParameter> [-TargetApplicationPool] <Fqdn>
[-DomainController <Fqdn>] [-Force] [-PassThru] [-WhatIf] [-Confirm] [-IgnoreBackendStoreException]
[<CommonParameters>]

Description
This cmdlet moves an existing endpoint contact object in Active Directory Domain Services to a Skype for Business
Server application pool. The application associated with the given endpoint must exist on the target pool. To
determine which application is associated with the endpoint, run the Get-CsTrustedApplicationEndpoint cmdlet.
This cmdlet is also used to upgrade the Active Directory contact object properties when an application is retargeted
against Skype for Business Server. Note that the source and target application pool will be the same in that case.
Also, if an application originally designed to work against Skype for Business Server is directly deployed against
Skype for Business Server, then this cmdlet must be used with the Force flag to upgrade the Active Directory
contact object properties.

Examples
-------------------------- EXAMPLE 1 --------------------------

Move-CsApplicationEndpoint -Identity sip:endpoint1@litwareinc.com -TargetApplicationPool


TrustPoolA.litwareinc.com

This example moves the application endpoint contact object with the SIP address endpoint1@litwareinc.com to the
trusted Registrar pool TrustPoolA.litwareinc.com. Use this command to upgrade a UCMA 2.0 application to a Skype
for Business Server application after coexistence.
-------------------------- EXAMPLE 2 --------------------------

Move-CsApplicationEndpoint -Identity sip:endpoint2@litwareinc.com -TargetApplicationPool


TrustPoolA.litwareinc.com -Force

This example moves the application endpoint contact object with the SIP address endpoint2@litwareinc.com to the
trusted Registrar pool TrustPoolA.litwareinc.com. This example differs from Example 1 in that this command
includes the Force parameter. Use this command for an in-place migration of a UCMA 2.0 application or for direct
deployment of a UCMA 2.0 application against a pure Skype for Business Server deployment. This will update an
existing object in Active Directory with the necessary attributes so that routing can occur through the Skype for
Business Server Registrar.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
This flag is required if you are moving a Microsoft Unified Communications Managed API (UCMA) 2.0 contact
object to the same pool but on a Skype for Business Server deployment. This will force routing to occur through
the Skype for Business Server Registrar.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The SIP address or distinguished name (DN ) of the endpoint contact you want to move.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-IgnoreBackendStoreException
When present, instructs the computer to ignore any errors that might occur with the backend database and attempt
to move the application endpoint despite those errors.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Specifying this parameter will return the application endpoint object after the object has been moved.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetApplicationPool
The fully qualified domain name (FQDN ) of the pool to which the endpoint is moving. The target pool must have a
Registrar service dependency.

Type: Fqdn
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String. Accepts a pipelined string value representing the Identity of an application endpoint.

Outputs
When used with the PassThru parameter, returns an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact.

Related Links
Get-CsApplicationEndpoint
minutes to read • Edit Online

Move-CsCommonAreaPhone
In ths Article

Moves one or more common area phones to a new Registrar pool. This cmdlet was introduced in Lync Server
2010.

Syntax
Move-CsCommonAreaPhone [-Identity] <UserIdParameter> [-Target] <Fqdn> [-DomainController <Fqdn>]
[-ProxyPool <Fqdn>] [-Force] [-PassThru] [-WhatIf] [-Confirm] [-IgnoreBackendStoreException]
[<CommonParameters>]

Move-CsCommonAreaPhone [-Identity] <UserIdParameter> [-Target] <Fqdn> [-Confirm] [-DomainController <Fqdn>]


[-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>] [-Report <String>] [-WhatIf]
[<CommonParameters>]

Move-CsCommonAreaPhone [-Target] <Fqdn> -UserList <String> [-ConcurrentMovesPerFE <Int32>] [-Confirm]


[-DomainController <Fqdn>] [-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>]
[-Report <String>] [-WhatIf] [<CommonParameters>]

Description
Common area phones are IP telephones that are not associated with an individual user. Instead of being located in
someone's office, common area phones are typically located in building lobbies, cafeterias, employee lounges,
meeting rooms and other locations where a large number of people are likely to gather. This presents
administrators with a management challenge; that's because phone use in Skype for Business Server is typically
maintained by using voice policies and dial plans that are assigned to individual users. Common area phones do
not have individual users assigned to them.
The solution to this challenge is to create Active Directory contact objects for all your common area phones. (These
contact objects can be created by using the New -CsCommonAreaPhone cmdlet.) Like user accounts, these contact
objects can be assigned policies and voice plans. As a result, you will be able to maintain control over common area
phones even though those phones are not associated with an individual user. For example, if you do not want
people to have the ability to transfer or park calls from a common area phone, you can create a voice policy that
prohibits call transfers and call parking, and then assign that policy to the common area phone. (Or, more correctly,
to the contact object that represents the common area phone.)
The Move-CsCommonAreaPhone cmdlet enables you to move an existing common area phone to a new Registrar
pool.

Examples
-------------------------- EXAMPLE 1 --------------------------
Move-CsCommonAreaPhone -Identity "CN={ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com" -
Target atl-cs-001.litwareinc.com

The command shown in Example 1 moves the common area phone with the Identity CN={ce84964a-c4da-4622-
ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com to the Registrar pool atl-cs-001.litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------

Get-CsCommonAreaPhone | Where-Object {$_.DisplayName -eq "Building 31 Cafeteria"} | Move-CsCommonAreaPhone -


Target atl-cs-001.litwareinc.com

In Example 2, the common area phone with the Active Directory display name "Building 31 Cafeteria" is moved to
the Registrar pool atl-cs-001.litwareinc.com. To do this, the Get-CsCommonAreaPhone cmdlet is first called without
any parameters in order to return a collection of all the common area phones currently in use in the organization.
This collection is then piped to the Where-Object cmdlet, which picks out only those phones where the
DisplayName attribute is equal to "Building 31 Cafeteria." That filtered collection is then piped to the Move-
CsCommonAreaPhone cmdlet, which moves each phone in the collection to atl-cs-001.litwareinc.com.
-------------------------- EXAMPLE 3 --------------------------

Get-CsCommonAreaPhone | Where-Object {$_.RegistrarPool -match "dublin-cs-001.litwareinc.com"} | Move-


CsCommonAreaPhone -Target atl-cs-001.litwareinc.com

Example 3 moves all the common area phones currently homed on the Registrar pool dublin-cs-001.litwareinc.com
to the Registrar pool atl-cs-001.litwareinc.com. To carry out this task, the command first calls the Get-
CsCommonAreaPhone cmdlet without any parameters; that returns a collection of all the common area phones
configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which picks out all
the common area phones where the RegistrarPool is equal to dublin-cs-001.litwareinc.com. This collection is then
piped to the Move-CsCommonAreaPhone cmdlet, which moves each phone in the collection to the new Registrar
pool atl-cs-001.litwareinc.com.
-------------------------- EXAMPLE 4 --------------------------

Get-CsCommonAreaPhone | Where-Object {$_.RegistrarPool -match "dublin-cs-001.litwareinc.com"} | Move-


CsCommonAreaPhone -Target atl-cs-001.litwareinc.com -PassThru | Grant-CsVoicePolicy -PolicyName
AtlantaVoicePolicy

Example 4 is a variation of the command shown in Example 3; in this case, however, the common area phones are
not only moved to a new Registrar pool, but are also assigned a new per-user voice policy. To do this, the PassThru
parameter is included when calling the Move-CsCommonAreaPhone cmdlet; this is required in order to pass the
common area phone objects through the pipeline. (By default, the Move-CsCommonAreaPhone cmdlet does not
pass objects through the pipeline.) After the phones have been moved, the phone objects are piped to the Grant-
CsVoicePolicy cmdlet, which assigns the voice policy AtlantaVoicePolicy to each of the newly-moved phones.

Parameters
-ConcurrentMovesPerFE
PARAMVALUE: Int32
Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to move the common area phone. To connect to
a particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-cs-001) or its FQDN (for example, atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present, moves the common area phone but deletes any associated data (such as policies that were assigned to
the device). If not present, the phone is moved along with any associated data.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the common area phone. Common area phones are identified using the Active Directory
distinguished name of the associated contact object. By default, common area phones use a globally unique
identifier (GUID ) as their common name, which means that phones will typically have an Identity similar to this:
CN={ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False
-IgnoreBackendStoreException
When present, instructs the computer to ignore any errors that might occur with the backend database and attempt
to move the common area phone despite those errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being moved. By default,
the Move-CsCommonAreaPhone cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyPool
This parameter is used only for Skype for Business Online. It should not be used with an on-premises
implementation of Skype for Business Server.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Target
The fully qualified domain name (FQDN ) of the Registrar pool where the common area phone should be moved;
for example: atl-cs-001.litwareinc.com. In addition to a Registrar pool, the Target can also be the FQDN of a hosting
provider.
Type: Fqdn
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserList
PARAMVALUE: String

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String. The Move-CsCommonAreaPhone cmdlet accepts a pipelined string value that represents the Identity of the
common area phone.

Outputs
By default, the Move-CsCommonAreaPhone cmdlet does not return any objects or values. However, if you include
the PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact object.

Related Links
Get-CsCommonAreaPhone
New -CsCommonAreaPhone
Remove-CsCommonAreaPhone
Set-CsCommonAreaPhone
minutes to read • Edit Online

Move-CsConferenceDirectory
In ths Article

Moves an existing conference directory from one pool to another. Conference directories are used to help dial-in
conferencing users locate conference information. This cmdlet was introduced in Lync Server 2010.

Syntax
Move-CsConferenceDirectory [-Identity] <XdsGlobalRelativeIdentity> -TargetPool <String> [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
When you create a dial-in conferencing Uniform Resource Identifier (URI), those URIs are assigned unique SIP
addresses. However, SIP addresses are difficult to translate to devices that are not SIP -aware; for example, a public
switched telephone network (PSTN ) telephone can't translate a SIP address. Because of that, Skype for Business
Server uses conference directories as a way to help these devices locate, and connect to, dial-in conferences. This is
done by creating a SIP conference directory that is associated with each dial-in conferencing URI, and is identified
by an integer value rather than a SIP URI. PSTN telephones and other devices can then use these numbers instead
of a SIP URI when connecting to conferences; the directory number is included in the PSTN conference
identification users enter when connecting to a dial-in conference.
Occasionally, you might need to move a conference directory from one pool to another; for example, if you
decommission a pool you might need to move your existing conference directories to a new location. The Move-
CsConferenceDirectory cmdlet enables you to move conference directories to a different pool.
Before you move a conference directory it is highly recommended that you make a backup copy of that directory.
This can be done by using the Export-CsUserData cmdlet and the ConferenceDirectoryFilter parameter. For
example, this command backs up conference directory 3 to the file C:\Logs\ConferenceDirectory3.zip:
Export-CsUserData -PoolFqdn "atl-cs-001.litwareinc.com" -ConferenceFilterDirectory 3 -FileName
"C:\Logs\ConferenceDirectory3.zip"

Examples
-------------------------- EXAMPLE 1 --------------------------

Move-CsConferenceDirectory -Identity 3 -TargetPool atl-cs-002.litwareinc.com

The command shown in Example 1 moves the conference directory with the Identity 3 to the pool atl-cs-
002.litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------

Move-CsConferenceDirectory -Identity 3 -TargetPool atl-cs-002.litwareinc.com -Force


The command shown in Example 2 is a variation of the command shown in Example 1. In this case, however, the
Force parameter is included to ensure that the move takes place even if the target pool is currently unavailable.
-------------------------- EXAMPLE 3 --------------------------

Get-CsConferenceDirectory | Move-CsConferenceDirectory -TargetPool atl-cs-002.litwareinc.com

Example 3 moves all the existing conference directories to the target pool atl-cs-002.litwareinc.com. To carry out
this task the command first uses the Get-CsConferenceDirectory cmdlet to return a collection of all the conference
directories currently in use in the organization. This collection is then piped to the Move-CsConferenceDirectory
cmdlet, which moves each directory in the collection to the target pool.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
When present, moves the conference directory even if the target pool is currently unavailable. By default, the
Move-CsConferenceDirectory cmdlet will not move directories if the target pool cannot be contacted.
Before running the Move-CsConferenceDirectory cmdlet, note that if you use the -Force parameter, the dial-in code
for existing meetings will be lost. Users will still be able to join meetings using a Lync client, but unable to dial-in to
meetings by phone dial in.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Numeric identity of the conference directory to be moved.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-TargetPool
Fully qualified domain name (FQDN ) of the pool where the conference directory is to be moved. For example:
-Identity atl-cs-002.litwareinc.com.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Move-CsConferenceDirectory cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Get-CsConferenceDirectory
New -CsConferenceDirectory
Remove-CsConferenceDirectory
minutes to read • Edit Online

Move-CsExUmContact
In ths Article

Moves one or more Exchange Unified Messaging (UM ) contacts to a new Registrar pool. This cmdlet was
introduced in Lync Server 2010.

Syntax
Move-CsExUmContact [-Identity] <UserIdParameter> [-Target] <Fqdn> [-Confirm] [-DomainController <Fqdn>]
[-Force] [-PassThru] [-ProxyPool <Fqdn>] [-WhatIf] [-IgnoreBackendStoreException] [<CommonParameters>]

Move-CsExUmContact [-Identity] <UserIdParameter> [-Target] <Fqdn> [-Confirm] [-DomainController <Fqdn>]


[-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>] [-Report <String>] [-WhatIf]
[<CommonParameters>]

Move-CsExUmContact [-Target] <Fqdn> -UserList <String> [-ConcurrentMovesPerFE <Int32>] [-Confirm]


[-DomainController <Fqdn>] [-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>]
[-Report <String>] [-WhatIf] [<CommonParameters>]

Description
Skype for Business Server works with Exchange UM to provide several voice-related capabilities, including Auto
Attendant and Subscriber Access. The Move-CsExUmContact cmdlet provides a way for you to move an existing
Exchange UM contact object to a new Registrar pool.
When an Exchange UM contact object is moved, the AutoAttendant and IsSubscriberAccess properties will be set
appropriately based on the value of the OtherIpPhone property of the object.

Examples
-------------------------- EXAMPLE 1 --------------------------

Move-CsExUmContact -Identity "sip:exum1@fabrikam.com" -Target atl-cs-001.litwareinc.com

Example 1 moves the Exchange UM contact object with the SIP address exum1@fabrikam.com to the Registrar
pool with the FQDN atl-cs-001.litwareinc.com. Note that a confirmation prompt will be displayed when you run
this command, even though we didn't include the Confirm parameter. This prompt will appear even if you include
the Force parameter.
-------------------------- EXAMPLE 2 --------------------------

Get-CsExUmContact | Where-Object {$_.AutoAttendant -eq $True} | Move-CsExUmContact -Target atl-cs-


001.litwareinc.com
This example moves all Exchange UM contact objects that are Auto Attendants to the Registrar pool with the
FQDN atl-cs-001.litwareinc.com. The example begins with a call to the Get-CsExUmContact cmdlet, which retrieves
all Exchange UM contacts that have been defined. This collection of contacts is then piped to the Where-Object
cmdlet, which finds all the contacts in the collection that have an AutoAttendant property value of True ($True),
meaning the contact is an Auto Attendant.
Finally, the collection of contacts where AutoAttendant is True is piped to the Move-CsExUmContact cmdlet, which
moves those contacts to the Registrar pool specified in the Target parameter.
As in Example 1, you will be prompted for confirmation when running this command.

Parameters
-ConcurrentMovesPerFE
PARAMVALUE: Int32

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller. To connect to a particular domain controller, include the
DomainController parameter followed by the computer name (for example, atl-mcs-001) or its FQDN (for example,
atl-mcs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the contact object you want to move. Contact identities can be specified by using one of
four formats: 1) the contact's SIP address; 2) the contact's user principal name (UPN ); 3) the contact's domain name
and logon name, in the form domain\logon (for example, litwareinc\exum1); and, 4) the contact's Active Directory
display name (for example, Team Auto Attendant).

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-IgnoreBackendStoreException
When present, instructs the computer to ignore any errors that might occur with the backend database and attempt
to move the contact despite those errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a contact object through the pipeline that represents the contact account being moved. By
default, the Move-CsExUmContact cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyPool
This parameter is used only for hosted instances of Skype for Business Server. It should not be used with an on-
premises implementation of Skype for Business Server.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Report
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Target
The fully qualified domain name (FQDN ) of the Registrar pool to which the contact is being moved.

Type: Fqdn
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserList
PARAMVALUE: String

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String. Accepts a pipelined string value representing the Identity of an Exchange UM object to be moved.

Outputs
When called with the PassThru parameter, returns an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact.

Related Links
New -CsExUmContact
Remove-CsExUmContact
Set-CsExUmContact
Get-CsExUmContact
minutes to read • Edit Online

Move-CsLegacyUser
In ths Article

Migrates one or more user accounts from Microsoft Office Communications Server 2007 R2 to Skype for Business
Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Move-CsLegacyUser [-Identity] <UserIdParameter> [-Target] <Fqdn> [-DomainController <Fqdn>]
[-ExcludeArchivingPolicy] [-ExcludeConferencingPolicy] [-ExcludeDialPlan] [-ExcludeExternalAccessPolicy]
[-ExcludePresencePolicy] [-ExcludeVoicePolicy] [-ProxyPool <Fqdn>] [-Force] [-PassThru] [-WhatIf] [-Confirm]
[-Credential <PSCredential>] [-HostedMigrationOverrideUrl <String>] [-IgnoreBackendStoreException]
[<CommonParameters>]

Description
Many organizations that install Skype for Business Server are also running an earlier version of the software.
Fortunately, this does not present a problem: you can run both the latest version of the software and an earlier
version of the software simultaneously. Over time, you can then begin to migrate your configuration settings, your
policies, and, finally, your user accounts to Skype for Business Server.
The Move-CsLegacyUser cmdlet not only enables you to migrate users to Skype for Business Server, but also gives
you considerable control over the migration process. For example, in its simplest form you can give the Move-
CsLegacyUser cmdlet the identity of the user to be migrated and the fully qualified domain name (FQDN ) of the
Skype for Business Server Registrar pool where that user account will be homed; in turn, the Move-CsLegacyUser
cmdlet will move the user account and will maintain any existing policies and settings that have been applied to the
account. For example, suppose Ken Myer was assigned a dial plan in Communications Server 2007 R2. By default,
when you migrate Ken's account the dial plan will be migrated as well: that means that the Move-CsLegacyUser
cmdlet will automatically assign Ken Myer the Skype for Business Server equivalent of the dial plan he was
previously assigned.
Of course, that will occur only if you have migrated dial plans and if there is a Skype for Business Server equivalent
of the dial plan that Ken Myer was previously assigned. Alternatively, you might have decided not to migrate dial
plans. In that case, you can call the Move-CsLegacyUser cmdlet along with the ExcludeDialPlan parameter. When
you use this parameter, dial plans are not migrated along with the user account: that means that Ken Myer's user
account will be moved but he will not be assigned a dial plan. (This will be also be the case even if you did migrate
dial plans; the ExcludeDialPlan parameter prevents the migrated user account from being assigned a dial plan.)
Other parameters allow you to exclude voice policies, conferencing policies, archiving policies, external access
policies, and/or presence policies when migrating user accounts.
Before you can run the Merge-CsLegacyTopology, cmdlet you must first install the Windows Management
Instrumentation (WMI) Backward Compatibility interfaces package; this application is installed by running
OCSWMIBC.msi. (OCSWMIBC.msi can be found on the installation DVD in the Setup folder.) After installing the
Compatibility interfaces package, the Merge-CsLegacyUser cmdlet can then be called in order to move one or
more user accounts.
Examples
-------------------------- EXAMPLE 1 --------------------------

Move-CsLegacyUser -Identity "Pilar Ackerman" -Target "atl-cs-001.litwareinc.com"

In Example 1, the Move-CsLegacyUser cmdlet is used to migrate the user account with the Identity Pilar Ackerman
to the Registrar pool atl-cs-001.litwareinc. Because no additional parameters are included, any policies or settings
previously assigned to this account will be migrated as well. That means that, if a legacy policy (such as a dial plan)
was assigned to Pilar Ackerman, she will be assigned the Skype for Business Server equivalent when her account is
moved.
-------------------------- EXAMPLE 2 --------------------------

Move-CsLegacyUser -Identity "Pilar Ackerman" -Target "atl-cs-001.litwareinc.com" -ExcludeDialPlan

The command shown in Example 2 migrates Pilar Ackerman's user account, but does not migrate any dial plans
previously assigned to her account. After the account is migrated, Pilar will not have an assigned dial plan.
-------------------------- EXAMPLE 3 --------------------------

Get-CsUser -OU "ou=Finance,dc=litwareinc,dc=com" | Move-CsLegacyUser -Target "atl-cs-001.litwareinc.com"

In Example 3, all the user accounts in the Finance OU are moved to the Registrar pool atl-cs-001.litwareinc.com. To
carry out this task, the command first uses the Get-CsUser cmdlet and the OU parameter to retrieve a collection of
all the user accounts in the Finance OU. After the accounts have been retrieved, the collection is piped to the Move-
CsLegacyUser cmdlet, which moves each account to the new Registrar pool. This command assumes that all the
users in the Finance OU are legacy users.
-------------------------- EXAMPLE 4 --------------------------

Get-CsUser -UnassignedUser | Move-CsLegacyUser -Target "atl-cs-001.litwareinc.com"

In Example 4, Move-CsLegacyUser is used to assign a Registrar pool to all of the users that have enabled for Skype
for Business Server but are not currently assigned to a Registrar pool. In this command, the Get-CsUser cmdlet is
first called, along with the UnassignedUser parameter, to return a collection of all the users not currently assigned
to a Registrar pool. This collection is then piped to the Move-CsLegacyUser cmdlet, which assigns each user to the
pool atl-cs-001.litwareinc.com. This example assumes that all of the unassigned users are legacy users.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
Enables you to run the Move-CsLegacyUser cmdlet under alternate credentials. This might be required if the
account you used to log on to Windows does not have the necessary privileges required to work with user objects.
To use the Credential parameter you must first create a PSCredential object using the Get-Credential cmdlet. For
details, see the Get-Credential cmdlet Help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to move a user account. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-cs-001) or its FQDN (for example, atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeArchivingPolicy
When present, any archiving policies assigned to the user account are not retained when the account is migrated.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeConferencingPolicy
When present, any conferencing policies assigned to the user account are not retained when the account is
migrated.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeDialPlan
When present, any dial plans assigned to the user account are not retained when the account is migrated.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeExternalAccessPolicy
When present, any external access policies assigned to the user account are not retained when the account is
migrated.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludePresencePolicy
When present, any presence policies assigned to the user account are not retained when the account is migrated.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeVoicePolicy
When present, any voice policies assigned to the user account are not retained when the account is migrated.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostedMigrationOverrideUrl
URL for the hosted migration service used when moving a user to the Office 365 version of Skype for Business
Server.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be migrated. User Identities can be specified using one of four formats:
1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon name, in
the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory Domain Services
display name (for example, Ken Myer). User Identities can also be reference by using the user's Active Directory
distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users with a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-IgnoreBackendStoreException
When present, instructs the computer to ignore any errors that might occur with the backend database and attempt
to move the user despite those errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being moved. By default,
the Move-CsLegacyUser cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyPool
This parameter is used only with Communications Server 2007 R2. It should not be used with an on-premises
implementation of Skype for Business Server.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Target
FQDN of the Registrar pool where the user account should be homed. For example:
-Target atl-cs-001.litwareinc.com.

Type: Fqdn
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Move-CsLegacyUser cmdlet does not accept pipelined input.

Outputs
The Move-CsLegacyUser cmdlet does not return any values or objects. Instead, the cmdlet moves instances of the
Microsoft.Rtc.Management.ADConnect.Schema.ADUser object.

Related Links
Import-CsLegacyConfiguration
Import-CsLegacyConferenceDirectory
Merge-CsLegacyTopology
Move-CsUser
Set-CsUser
minutes to read • Edit Online

Move-CsManagementServer
In ths Article

Moves the Central Management Server from one pool to another. This cmdlet was introduced in Lync Server 2010.

Syntax
Move-CsManagementServer [-ConfigurationFileName <String>] [-LisConfigurationFileName <String>] [-Force]
[-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Move-CsManagementServer [-ConfigurationFileName <String>] [-Confirm] [-Force]


[-LisConfigurationFileName <String>] [-Report <String>] [-TargetFqdn <Fqdn>] [-WhatIf] [<CommonParameters>]

Description
The Move-CsManagementServer cmdlet enables administrators to move the Central Management Server (and the
accompanying Central Management store) from one pool to another. Because there is always the potential for data
loss, not to mention service interruption, any time you move the Central Management Server, it is recommended
that you do not make such a transfer unless:
1. You need to decommission the existing management pool, and must transfer the Central Management Server
before doing so.
2. You've encountered a disaster recovery scenario in which the existing Central Management Server is no longer
accessible. Before you move the Central Management Server, you must do the following:
3. Verify that you have created the new Central Management store. This is done by running the Install-
CsDatabase cmdlet and using the CentralManagementDatabase parameter.
4. If you are moving the Central Management Server to a Standard Edition server, verify that you have used local
setup to run the Prepare Standard Edition server option. This advance preparation is required to add firewall
rules that will allow Windows PowerShell to remotely access the new Central Management store.
5. Verify that there is enough free disk space on the computer where the Move-CsManagementServer cmdlet is
being run to accommodate the Central Management Server.
6. Verify that the Front End Server service has been installed on the computer where the Move-
CsManagementServer cmdlet is being run. If this service is not installed, and running, then the move will fail.
7. Verify that you can successfully run the Enable-CsTopology cmdlet on the computer where the Move-
CsManagementServer cmdlet is going to be run. If the Enable-CsTopology cmdlet cannot be run on that
computer then the move will fail and you will no longer have a functioning Central Management store.
After you have completed these steps, all you need to do to move the Central Management Server from Pool A to
Pool B is log on to a computer in Pool B and then call the Move-CsManagementServer cmdlet without any
additional parameters:
Move-CsManagementServer

When you do that, the Move-CsManagementServer cmdlet will consult the topology to determine the prior
location of the Central Management Server (Pool A), and then transfer the Central Management Server and the
Central Management store to the current pool (Pool B ).
If the move succeeds, the Move-CsManagementServer cmdlet will display a list of computers on the screen. In
order to finish the move, you must run local setup on each of these computers. Computers in Pool A will still be
running an inactive version of the Central Management service; running local setup will delete that service. The
computer in Pool B where the Central Management Server was moved will be running the Central Management
service; however, other computers in the pool will not. Running local setup on these computers will install the
Central Management service.
To transfer the Central Management Server in a disaster recovery scenario you should have, ideally, used the
Export-CsConfiguration cmdlet and the Export-CsLisConfiguration cmdlet to create backup files of your Skype for
Business Server configuration and your Enhanced 9-1-1 (E9-1-1) configuration, respectively. (Because disasters
typically occur without warning, you should routinely run these cmdlets and make backup files of your
configuration settings.) When calling the Move-CsManagementServer cmdlet you should include both the
ConfigurationFileName and LisConfigurationFileName parameters in order to read in these backup files.
You must also include the Force parameter any time you are trying to move a Central Management Server that is
offline or otherwise inaccessible. When you call the Move-CsManagementServer cmdlet, the cmdlet temporarily
sets the Central Management store to read-only before the move takes place; that helps guard against data loss. In
a disaster recovery scenario, however, the Central Management store cannot be marked as read-only. The Force
parameter instructs the cmdlet to move the Central Management store even though it has not been configured as
read-only.
If the Move-CsManagementServer cmdlet fails then you might find yourself in a situation where you no longer
have a functioning Central Management Server. To restore the Central Management Server, you will need to fix the
problem that caused the Move-CsManagementServer cmdlet to fail, and then re-run the cmdlet. This re-run can
take place either on a new pool or on the old pool. If you run the Move-CsManagementServer cmdlet on the old
pool, that will effectively cancel the move and leave you with your original configuration.
Note that the Move-CsManagementServer cmdlet must be run locally; it cannot be called from a remote
management session.

Examples
-------------------------- EXAMPLE 1 --------------------------

Move-CsManagementServer

The command shown in Example 1 moves the Central Management Server from its existing pool to a new pool. To
perform this live migration (that is, to move a Central Management Server that is online and accessible), you must
run the command from a computer located in the pool where the server is to be moved.
-------------------------- EXAMPLE 2 --------------------------

Move-CsManagementServer -ConfigurationFileName "C:\CsConfiguration.zip" -LisConfigurationFileName


"C:\CsLisConfiguration.zip" -Force

Example 2 moves the Central Management Server in a disaster recovery scenario; that is, in a scenario where the
existing management server is offline or otherwise inaccessible. To perform this type of migration, you must run
the preceding command from a computer located in the pool where the server is to be moved. In addition, you
must include the ConfigurationFileName parameter to import your previously saved configuration backup file; the
LisConfigurationFileName parameter, to import your previously saved E9-1-1 backup file (if you are using E9-11);
and the Force parameter to force the transfer of the Central Management Server even though the existing server
cannot be contacted.

Parameters
-ConfigurationFileName
Full path to the Skype for Business Server configuration backup file created by running the Export-CsConfiguration
cmdlet. This parameter should only be used in a disaster recovery scenario.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Forces the Central Management Server move even if the existing store is offline; this parameter is required in a
disaster recovery scenario. Note that there is the potential for some data loss any time you force the movement of
the Central Management Server.
The Force parameter can also be used if your previous attempts at calling the Move-CsManagementServer cmdlet
have failed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LisConfigurationFileName
Full path to the E9-1-1 backup file created by running the Export-CsLisConfiguration cmdlet. This parameter
should only be used in a disaster recovery scenario.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\MoveManagementServer.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetFqdn
Fully qualified domain name of the pool where the Management Server should be moved to.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Move-CsManagementServer cmdlet does not accept pipelined input.

Outputs
None. The Move-CsManagementServer cmdlet does not return any objects.

Related Links
Set-CsManagementServer
minutes to read • Edit Online

Move-CsMeetingRoom
In ths Article

Moves a Skype for Business Server meeting room object from one Registrar pool to another. A meeting room is a
conferencing device designed to address video conferencing and collaboration scenarios in small conference
rooms. This cmdlet was introduced in Lync Server 2013.

Syntax
Move-CsMeetingRoom [-Identity] <UserIdParameter> [-Target] <Fqdn> [-Confirm] [-DomainController <Fqdn>]
[-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>] [-WhatIf] [<CommonParameters>]

Move-CsMeetingRoom [-Identity] <UserIdParameter> [-Target] <Fqdn> [-Confirm] [-DomainController <Fqdn>]


[-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>] [-Report <String>] [-WhatIf]
[<CommonParameters>]

Move-CsMeetingRoom [-Target] <Fqdn> -UserList <String> [-ConcurrentMovesPerFE <Int32>] [-Confirm]


[-DomainController <Fqdn>] [-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>]
[-Report <String>] [-WhatIf] [<CommonParameters>]

Description
In Skype for Business Server, meeting rooms are self-contained computer appliances that are installed in
conference rooms and supply advanced meeting capabilities such as:
One touch meeting join experience
Multi-view video gallery
Touch-enabled white-boarding on the front of room screen
Calendar integration to provide access to scheduled meetings
Content sharing and switching
In order to manage these new endpoint devices you must, among other things, create and enable a Exchange
resource mailbox account for the device, then enable that resource account for Skype for Business Server. Note
that, for Skype for Business Server, there are no cmdlets for creating or removing meeting rooms. Instead, you use
the Enable-CsMeetingRoom cmdlet to enable meeting rooms and the Disable-CsMeetingRoom cmdlet to disable
meeting rooms. The resource account must already exist in order for you to enable the meeting room, and
disabling a meeting room only removes that room from your collection of meeting rooms; it does not delete the
resource mailbox account.
Skype for Business Server Control Panel: The functions carried out by the Move-CsMeetingRoom cmdlet are not
available in the Skype for Business Server Control Panel.
Examples
-------------------------- Example 1 --------------------------

Move-CsMeetingRoom -Target "atl-cs-001.litwareinc.com" -Identity "Room 14"

The command shown in Example 1 moves the meeting room with the display name "Room 14" to the pool atl-cs-
001.litwareinc.com.
-------------------------- Example 2 --------------------------

Get-CsMeetingRoom | Move-CsMeetingRoom -Target "atl-cs-001.litwareinc.com"

Example 2 moves all the meeting rooms in the organization to the pool atl-cs-001.litwareinc.com. To do this, the
command first calls the Get-CsMeetingRoom cmdlet without any parameters; that returns a collection of all the
meeting rooms configured for use in the organization. That collection is then piped to the Move-CsMeetingRoom
cmdlet, which moves each meeting room in the collection to the new pool.

Parameters
-ConcurrentMovesPerFE
PARAMVALUE: Int32

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to move a meeting room. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-dc-001) or its fully qualified domain name (FQDN ) (for example, atl-dc-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
When present, instructs the Move-CsMeetingRoom cmdlet to ignore all errors that might occur when carrying out
the move operation. As a general rule, you should avoid using the Force parameter unless absolutely necessary.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the meeting room to be moved. Meeting rooms can be specified using one of four formats:
1) the room's SIP address; 2) the room's user principal name (UPN ); 3) the room's domain name and logon name,
in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the room's Active Directory display name (for
example, Main Conference Room). User Identities can also be referenced by using the room's Active Directory
distinguished name.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-IgnoreBackendStoreException
When present, instructs the computer to ignore any errors that might occur with the backend database and attempt
to the move meeting room despite those errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a meeting room object through the pipeline that represents the meeting room being moved.
By default, the Move-CsMeetingRoom cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyPool
This parameter is not used with the on-premises version of Skype for Business Online.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Target
The FQDN (for example, atl-cs-001.litwareinc.com) of the Registrar pool where the meeting room should be
moved.

Type: Fqdn
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserList
PARAMVALUE: String

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Moves-CsMeetingRoom cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADMeetingRoom object.
Outputs
None.

Related Links
Disable-CsMeetingRoom
Enable-CsMeetingRoom
Get-CsMeetingRoom
Set-CsMeetingRoom
minutes to read • Edit Online

Move-CsRgsConfiguration
In ths Article

Enables you to migrate Response Group configuration settings from Microsoft Office Communications Server
2007 R2 or Microsoft Lync Server 2010 to Skype for Business Server. This cmdlet was introduced in Lync Server
2010.

Syntax
Move-CsRgsConfiguration [-Source] <String> [-Destination] <String> [-Force] [-ResolveNameConflicts]
[<CommonParameters>]

Description
The Response Group application provides a way for you to automatically route phone calls to entities such as a help
desk or customer support line. When someone calls a designated phone number, that call can be automatically
routed to the appropriate set of Response Group agents. Alternatively, the call might be routed to an interactive
voice response (IVR ) queue. In that queue, the caller would be asked a series of questions (for example, "Are you
calling about an existing order?") and then, based on the answers to those questions, be given the asked-for
information or be routed to a Response Group agent.
If you are currently running the Response Group application on Office Communications Server 2007 R2 or on Lync
Server 2010, the Move-CsRgsConfiguration cmdlet provides a way for you to migrate this service to Skype for
Business Server. To migrate the service, you need to call the Move-CsRgsConfiguration cmdlet and specify: 1) the
fully qualified domain name (FQDN ) for the existing version of the Response Group application (the Source); and,
2) the FQDN for the new Skype for Business Server version of the service (the Destination). Move-
CsRgsConfiguration will then move all the configuration settings, audio files, and contact objects from the existing
version (either Office Communications Server 2007 R2 or Lync Server 2010) to Skype for Business Server. After
the service has been migrated, all calls to a Response Group phone number will be handled by Skype for Business
Server. Calls will no longer be handled by the previous version of the service.
Before you can run Move-CsRgsConfiguration, you must first install the Windows Management Instrumentation
(WMI) Backward Compatibility interfaces package; this application is installed by running OCSWMIBC.msi. The file
OCSWMIBC.msi can be found on the installation DVD in the Setup folder.
If Office Communications Server 2007 is running Microsoft SQL Server 2005 then, before you attempt to migrate
the Response Group application, you must install the Microsoft SQL Server 2005 Native Client on the computer
where you will be running the Move-CsRgsConfiguration cmdlet. If the Native Client is not installed you will
receive the error message "Cannot access WMI settings" when you call Move-CsRgsConfiguration.
The Move-CsRgsConfiguration cmdlet is only for migrating from Office Communications Server 2007 R2 or Lync
Server 2010 to Skype for Business Server; you cannot use this cmdlet to migrate from one instance of Skype for
Business Server to a new instance of Skype for Business Server. That type of migration can only be done by using
the new Import-CsRgsConfiguration and Export-CsRgsConfiguration cmdlets.
Examples
-------------------------- EXAMPLE 1 --------------------------

Move-CsRgsConfiguration -Source atl-ocsrgs-001.litwareinc.com -Destination redmond-lyncrgs-001.litwareinc.com

The command shown in Example 1 migrates the Response Group application from atl-ocsrgs-001.litwareinc.com to
redmond-lyncrgs-001.litwareinc.com.

Parameters
-Destination
FQDN of the computer where the Skype for Business Server Response Group application is to be hosted (the
"copy to" location).

Type: String
Required: True
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResolveNameConflicts
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Source
FQDN of the pool where the Office Communications Server 2007 R2 or Lync Server 2010Response Group
application is currently hosted (the "copy from" location).

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None. Move-CsRgsConfiguration does not accept pipelined input.

Outputs
Move-CsRgsConfiguration moves instances of the Microsoft.Rtc.Management.WritableSettings.ServiceSettings
from one service to another.

Related Links
Get-CsRgsConfiguration
Move-CsRgsConfiguration
minutes to read • Edit Online

Move-CsThirdPartyVideoSystem
In ths Article

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.

Syntax
Move-CsThirdPartyVideoSystem [-Identity] <UserIdParameter> [-Target] <Fqdn> [-Confirm]
[-DomainController <Fqdn>] [-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>]
[-Report <String>] [-WhatIf] [<CommonParameters>]

Move-CsThirdPartyVideoSystem [-Target] <Fqdn> -UserList <String> [-ConcurrentMovesPerFE <Int32>] [-Confirm]


[-DomainController <Fqdn>] [-Force] [-IgnoreBackendStoreException] [-PassThru] [-ProxyPool <Fqdn>]
[-Report <String>] [-WhatIf] [<CommonParameters>]

Description
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably
audio and video). In Skype for Business Server, 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. VTC contact objects can be created by using the New -CsThirdPartyVideoSystem cmdlet. Note that
new contact objects must be assigned to a Skype for Business Server Registrar at the time they are created. If you
later decide to move a contact object to a different pool, you can do so by using the Move-
CsThirdPartyVideoSystem cmdlet.

Examples
-------------------------- Example 1 --------------------------

Move-CsThirdPartyVideoSystem -Identity "CN={ce84964a-c4da-4622-ad34-


c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com" -Target "atl-cs-001.litwareinc.com"

The command shown in Example 1 moves the third-party video system with the Identity CN={ce84964a-c4da-
4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com CN={ce84964a-c4da-4622-ad34-
c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com to the Registrar pool atl-cs-001.litwareinc.com.
-------------------------- Example 2 --------------------------

Get-CsThirdPartyVideoSystem | Move-CsThirdPartyVideoSystem -Target "atl-cs-001.litwareinc.com"

Example 2 shows how you can move all the third-party video systems in the organization to the Registrar pool atl-
cs-001.litwareinc.com. To do this, the command first uses the Get-CsThirdPartyVideoSystem cmdlet to return a
collection of all the available video systems. That collection is then piped to the Move-CsThirdPartyVideoSystem
cmdlet, which moves all the video systems to the Registrar pool atl-cs-001.litwareinc.com.

Parameters
-ConcurrentMovesPerFE
PARAMVALUE: Int32

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to move the video system. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-cs-001) or its FQDN (e.g., atl-cs-001.litwareinc.com).

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present, moves the video system but deletes any associated data (such as policies that were assigned to the
system). If not present, the video system is moved along with any associated data.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the third-party video system to be moved. Video systems are identified by using the Active
Directory distinguished name of the associated contact object. By default, video systems use a GUID (globally
unique identifier) as their common name, which means systems will typically have an Identity similar to this:
CN={ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-IgnoreBackendStoreException
When present, instructs the computer to ignore any errors that might occur with the backend database and attempt
to move the video system despite those errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a video system contact object through the pipeline that represents the video system being
moved. By default, the Move-CsThirdPartyVideoSystem cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyPool
This parameter is used only for Skype for Business Online. It should not be used with an on-premises
implementation of Skype for Business Server.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Target
The fully qualified domain name (FQDN ) of the Registrar pool where the video system should be moved (for
example, atl-cs-001.litwareinc.com). In addition to a Registrar pool, the Target can also be the FQDN of a hosting
provider.

Type: Fqdn
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserList
PARAMVALUE: String

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Move-CsThirdPartyVideoSystem cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADThirdPartyVideoSystemContact object.

Outputs
By default the Move-CsThirdPartyVideoSystem cmdlet does not return any data or objects. However, if you include
the PassThru parameter you can instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADThirdPartyVideoSystemContact object through the
pipeline.

Related Links
Get-CsThirdPartyVideoSystem
New -CsThirdPartyVideoSystem
Remove-CsThirdPartyVideoSystem
Set-CsThirdPartyVideoSystem
minutes to read • Edit Online

Move-CsUser
In ths Article

Moves one or more user accounts enabled for Skype for Business Server to a new Registrar pool, or to Office 365
(either to Teams or Skype for Business Online).

Syntax
Move-CsUser [-Identity] <UserIdParameter> [-Target] <Fqdn> [-Credential <PSCredential>] [-MoveToTeams] [-
HostedMigrationOverrideUrl <String>] [-BypassEnterpriseVoiceCheck] [-BypassAudioConferencingCheck] [-
TenantAdminUserName] [-Confirm] [-Force] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
The Move-CsUser cmdlet enables you to move a user account enabled for Skype for Business in the following
scenarios:
from an on-premises Skype for Business deployment to Teams-only in Office 365 (or the reverse)
from an on-premises Skype for Business deployment to Skype for Business Online in Office 365 (or the reverse)
from one registrar pool to another, in an on-premises Skype for Business Server deployment. The Move-CsUser
cmdlet affects only the user's Skype for Business Server account location; it does not move the user's Active
Directory account to a new organizational unit (OU ) or other new location.
When moving a user to or from Office 365 (either Skype for Business Online or Teams):
Skype for Business hybrid must be configured. For more information, see https://docs.microsoft.com/en-
us/SkypeForBusiness/skype-for-business-hybrid-solutions/deploy-hybrid-connectivity/deploy-hybrid-connectivity
Contacts are moved in all cases, unless -force is specified.
Meetings are migrated from Skype for Business Server to Skype for Business Online for any move from Skype for
Business Server. Teams- only users can still join meetings hosted in Skype for Business.
To move a user to Office 365, specify the ProxyFqdn of the hosting provider as the Target. In most cases, this is
"sipfed.online.lync.com" but in specialized environments there will be variants of this address.
Moving a user to Teams is achieved by specifying the MoveToTeams switch. This performs the same operations as a
move to Skype for Business Online and also applies TeamsUpgradePolicy and TeamsInteropPolicy to the online
user account.

Examples
------- EXAMPLE 1: Move a user to Teams-----------------------

$cred=get-credential
Move-CsUser -Identity "PilarA@contoso.com" -Target "sipfed.online.lync.com" -MoveToTeams -Credential $cred

In Example 1, the Move-CsUser cmdlet is used to move the user account with sip address PilarA@contoso.com to
Teams. This user will now be a Teams only user. If -Credential parameter is not specified, the admin will be
prompted for credentials.
NOTE: The MoveToTeams switch is only available on Skype for Business Server 2019. Organizations using other
versions of Skype for Business Server must first move the user to Skype for Business Online, and then apply
TeamsUpgradePolicy.
------- EXAMPLE 2: Move a user to Skype for Business Online ----

$cred=get-credential
Move-CsUser -Identity PilarA@contoso.com -Target "sipfed.online.lync.com" -Credential $cred

In Example 2, the Move-CsUser cmdlet is used to move the user account with sip address PilarA@contoso.com to
Skype for Business Online. This is the same cmdlet usage as example 1, except the MoveToTeams switch is not
specified.
-------- EXAMPLE 3: Move a user to another on-premises pool-------

Move-CsUser -Identity "Pilar Ackerman" -Target "atl-cs-001.litwareinc.com"

In Example 3, the Move-CsUser cmdlet is used to move the user account with the Identity Pilar Ackerman to the
Registrar pool atl-cs-001.litwareinc.com.
--------- EXAMPLE 4: Move multiple users ---------------------------

Get-CsUser -OU "ou=Finance,dc=litwareinc,dc=com" | Move-CsUser -Target "atl-cs-001.litwareinc.com"

In Example 4, all the user accounts in the Finance organizational unit (OU ) are moved to the Registrar pool atl-cs-
001.litwareinc.com. To carry out this task, the command first uses the Get-CsUser cmdlet and the OU parameter to
retrieve a collection of all the user accounts in the Finance OU. After the data has been retrieved, the information is
piped to the Move-CsUser cmdlet, which moves each account in the collection to the Registrar pool atl-cs-
001.litwareinc.com.

Parameters
-BypassAudioConferencingCheck
By default, if the on-premise user is configured for dial in conferencing, moving the user to Office 365 will
provision the user for Audio Conferencing, for an additional license is required. If you want to move such a user to
Office 365 but do not want to configure them for Audio Conferencing, specify this switch to by-pass the license
check. This parameter is only available with the upcoming releases of Skype for Business Server 2019 and CU8 for
Skype for Business Server 2015.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassEnterpriseVoiceCheck
By default, if the on-premise user is configured for Enteprise Voice, moving the user to Office 365 will provision the
user for Microsoft Phone System, for an additional license is required. If you want to move such a user to Office
365 but do not want to configure them for Phone System, specify this switch to by-pass the license check. This
parameter is only available with the upcoming releases of Skype for Business Server 2019 and CU8 for Skype for
Business Server 2015.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Enables you to bypass the confirmation prompt that would otherwise appear when you attempt to move a user. To
bypass the confirmation prompt, include the Confirm parameter using this syntax:
-Confirm:$False

If you would prefer to have the confirmation prompt then use this syntax:
-Confirm

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Credential
Enables you to run the Move-CsUser cmdlet under alternate credentials, which is typically required when moving
to Office 365. To use the Credential parameter you must first create a PSCredential object using the Get-Credential
cmdlet. For details, see the Get-Credential cmdlet help topic.

Type: PSCredential
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present, moves the user account without moving contacts or meetings. Contacts and meetings are not
recoverable. If not present, both the account and the associated data are moved.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostedMigrationOverrideUrl
The hosted migration service is the service in Office 365 that performs user moves. By default, there is no need to
specify a value for this parameter, as long as the hosting provider has its AutoDiscover URL properly configured.
However, a specific URL can be specified if required.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be moved. User Identities can be specified using one of four formats: 1)
the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon name, in the
form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for
example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users with who have a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-MoveToTeams
If specified, the user will be moved to Office 365 as a Teams-only user. This will ensure incoming chats and calls
land in the user's Teams client. This parameter is only available with the upcoming releases of Skype for Business
Server 2019 and CU8 for Skype for Business Server 2015.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user account being moved. By default,
the Move-CsUser cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Target
If moving to an on-premises pool (either from another pool or from Office 365), this is the FQDN (for example, atl-
cs-001.litwareinc.com) of the Registrar pool where the user account should be moved.
If moving to Office 365, this must be set to the ProxyFqdn value of the hosting provider. In most cases this is
sipfed.online.lync.com. The value of the ProxyFqdn can be obtained using Get-CsHostingProvider

Type: Fqdn
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantAdminUserName
This is an optional parameter that if, specified, pre-populates the username of the tenant admin when moving users
to or from Office 365. This can be useful for scenarios involving smart card authentication or 2 factor auth. This
parameter is only available with the upcoming releases of Skype for Business Server 2019 and CU8 for Skype for
Business Server 2015.

Type: UserIdParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Move-CsUser cmdlet accepts a
pipelined string value representing the Identity of a user account that has been enabled for Skype for Business
Server. The cmdlet also accepts pipelined instances of the Active Directory user object.

Outputs
The Move-CsUser cmdlet does not return a value or object. Instead, the cmdlet modifies instances of the
Microsoft.Rtc.Management.ADConnect.Schema.ADUser object.

Related Links
Get-CsUser
Skype for Business Hybrid Solutions
Migration and interoperability guidance for organizations using Teams together with Skype for Business
minutes to read • Edit Online

New-CsAdditionalInternalDomain
In ths Article

Creates a new additional internal domain for use in your organization. This cmdlet was introduced in Skype for
Business Server 2015 Cumulative Update 6 - December 2017.

Syntax
New-CsAdditionalInternalDomain [-Identity] <XdsGlobalRelativeIdentity> [-InMemory] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

New-CsAdditionalInternalDomain -Domain <String> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet creates a new additional internal domain for use in your organization.
Additional internal domains are not used locally by internal user or services URIs but must be treated as internal by
hybrid (split-domain) traffic analysis to support purely hosted and cloud appliance domains.

Examples
-------------------------- Example 1 ------------------------

PS C:\> New-CsAdditionalInternalDomain -Identity fabrikam.com

The cmdlet shown in Example 1 creates a new additional internal domain, one that has the Identity fabrikam.com.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
Fully qualified domain name (FQDN ) for the new additional internal domain.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) for the new additional internal domain.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Remove-CsAdditionalInternalDomain
Get-CsAdditionalInternalDomain
minutes to read • Edit Online

New-CsAddressBookConfiguration
In ths Article

Creates a new collection of Address Book configuration settings. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsAddressBookConfiguration [-Identity] <XdsIdentity> [-EnableFileGeneration <Boolean>]
[-IgnoreGenericRules <Boolean>] [-KeepDuration <UInt32>] [-MaxDeltaFileSizePercentage <UInt32>]
[-RunTimeOfDay <DateTime>] [-SynchronizePollingInterval <TimeSpan>] [-UseNormalizationRules <Boolean>]
[-Force] [-InMemory] [-WhatIf] [-Confirm] [-EnablePhotoSearch <Boolean>] [-EnableSearchByDialPad <Boolean>]
[-MaxFileShareThreadCount <Int32>] [-PhotoCacheRefreshInterval <TimeSpan>] [<CommonParameters>]

Description
Address Book servers are intermediaries between AD DS and Skype for Business Server. The Address Book server
ensures that the user information stored in Skype for Business Server is in synch with the user information stored
in AD DS. This is done by periodically synching Address Book files with information stored in the User database.
In addition, Address Book servers periodically generate index files that are downloaded to computers running
Skype for Business. When a user searches for contacts, he or she either search through these index files or search
the Address Book index files stored in the Central Management store.
Address Book servers are governed using Address Book configuration settings; these settings determine such
things as how often Address Book files are synchronized with the user database and how often these Address Book
index files are generated. When you install Skype for Business Server, a set of global Address Book settings is
created for you. You can also create custom configuration settings that can be applied to individual sites. These
settings, if they exist, apply to any Address Book servers operating in the site, and take precedence over the global
settings.
Site-level settings are created by using the New -CsAddressBookConfiguration cmdlet. You can only create settings
at the site scope; if you try to create new settings anywhere else, including the global scope, your command will fail.
Your command will also fail if the site in question already contains a collection of Address Book settings.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsAddressBookConfiguration -Identity site:Redmond -KeepDuration 15 -SynchronizePollingInterval 00:10:00

Example 1 creates a new collection of Address Book configuration settings with the identity site:Redmond. To create
the new collection you must call the New -CsAddressBookConfiguration cmdlet along with the Identity parameter
and any other optional parameters (for example, the KeepDuration and SynchronizePollingInterval parameters).
-------------------------- EXAMPLE 2 --------------------------
$x = Get-CsAddressBookConfiguration -Identity site:Redmond

New-CsAddressBookConfiguration -Identity site:Paris -KeepDuration $x.KeepDuration -SynchronizePollingInterval


$x.SynchronizePollingInterval

Example 2 creates a new collection of Address Book settings for the Paris site; this new collection uses two values
(KeepDuration and SynchronizePollingInterval) copied from the Address Book settings configured for the
Redmond suite. To carry out this task, the first command uses the Get-CsAddressBookConfiguration cmdlet to
return a collection of all the Address Book settings configured for the Redmond site; this information is stored in a
variable named $x.
The second command then uses the New -CsAddressBookConfiguration cmdlet to create Address Book settings for
the Pairs site. This command includes two optional parameters -- KeepDuration and SynchronizePollingInterval --
that include the values copied from site:Redmond. For example, KeepDuration uses the parameter value
$x.KeepDuration; that parameter value represents the KeepDuration information copied from the Redmond site.
-------------------------- EXAMPLE 3 --------------------------

$x = New-CsAddressBookConfiguration -Identity site:Redmond -InMemory

$x.KeepDuration = 15

$x.SynchronizePollingInterval = "00:10:00"

Set-CsAddressBookConfiguration -Instance $x

Example 3 shows how you can use the InMemory parameter to create an in-memory-only instance of an Address
Book settings collection, modify those settings in memory, then use the Set-CsAddressBookConfiguration cmdlet
to create an actual collection with the Identity site:Redmond. To accomplish all that, the first command creates a
new in-memory-only instance of an Address Book settings configuration, storing that instance in a variable named
$x. The InMemory parameter ensures these Address Book settings will exist only in memory; if you end your Skype
for Business Server session or delete the variable $x, the settings will disappear and will not be applied to the
Redmond site.
In commands 2 and 3, two properties of these virtual Address Book settings are modified: command 2 sets the
value of the KeepDuration property to 15 days and command 3 sets the SynchronizePollingInterval to 10 minutes
(00:10:00). The fourth and final command then uses the Set-CsAddressBookConfiguration cmdlet and the Instance
parameter to transform the virtual Address Book settings into an actual collection of setting configured at the
Redmond site.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFileGeneration
When set to True (the default value) the Address Book server generates Address Book index files that can be
downloaded by clients. When set to False, these index files are not generated. That means that client applications
will have to use the Address Book Web Query service when searching for contacts.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePhotoSearch
When set to True, user photos will be displayed in search results.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSearchByDialPad
When set to True, users will be able to search for contacts by using their mobile device keypad. This can be a
convenience for mobile users, but has the potential to greatly increase the size of your Address Book database.
The default value is True ($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier to be assigned to the new collection of Address Book settings. Because you can only create new
collections at the site scope, the Identity will always be the prefix "site:" followed by the site name; for example
"site:Redmond".
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IgnoreGenericRules
Indicates whether or not the Address Book server ignores the generic normalization rules used when parsing
phone numbers. Generic rules are the rules that are built into Skype for Business Server. These rules cannot be
changed; however, by setting the value of this property to True you can instruct your Address Book servers to
ignore these rules and instead use custom rules that you create yourself. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeepDuration
Specifies the amount of time (in days) that Address Book servers will keep change files. Change files older than the
value of the KeepDuration property will be deleted. The KeepDuration can be set to any integer value between 1
and 90, inclusive. The default value is 30 days.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxDeltaFileSizePercentage
When changes are made to Active Directory (such as a new user being enabled for Skype for Business Server) the
Address Book server typically records these changes in a "delta file," a file consisting only of the updated
information; Skype for Business can then download the delta files rather than a complete Address Book file. The
MaxDeltaFileSizePercentage property determines how large the delta files can get before they are incorporated
into the complete Address Book file. By default, delta files can be as large as 20 percent of the complete Address
Book file before a new Address Book file is generated. At that point, Lync clients will download the complete file
rather than a delta file.
MaxDeltaFileSizePercentage must be entered as a percentage value, from 1 to 100, inclusive.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxFileShareThreadCount
Specifies the maximum number of system resources that can be used by the Address Book server if there are
problems accessing the service file share. The default value is 300.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PhotoCacheRefreshInterval
PARAMVALUE: TimeSpan

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RunTimeOfDay
Indicates the time of day when the servers generate new Address Book files. The RunTimeOfDay property is based
on a 24-hour clock (hours:minutes:seconds), with 00:00:00 representing midnight and 23:59:00 representing 11:59
P.M..
The default value is 01:30:00 (1:30 A.M.).

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SynchronizePollingInterval
Indicates how often Address Book servers synchronize their information with the information stored in the User
database. The SynchronizePollingInterval can be set to any value between 5 seconds (00:00:05) and 3 hours
(03:00:00). The default value is 5 minutes (00:05:00).
Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseNormalizationRules
Indicates whether Address Book servers should use phone normalization rules when retrieving phone numbers. If
set to False, phone numbers will be retrieved as-is, and it will be up to the client application to apply normalization
rules when displaying these numbers.
The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsAddressBookConfiguration cmdlet does not accept pipelined input.

Outputs
Creates instances of the Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings
object.

Related Links
Get-CsAddressBookConfiguration
Remove-CsAddressBookConfiguration
Set-CsAddressBookConfiguration
minutes to read • Edit Online

New-CsAddressBookNormalizationConfiguration
In ths Article

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.

Syntax
New-CsAddressBookNormalizationConfiguration [-Identity] <XdsIdentity>
[-AddressBookNormalizationRules <PSListModifier>] [-Confirm] [-Force] [-InMemory] [-WhatIf]
[<CommonParameters>]

Description
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. (Note that an understanding of regular expressions is helpful
in order to understand what normalization rules do and how they do it.) In Skype for Business Server, the Address
Book normalization configuration settings represent collections of normalization rules that carry out these
conversions and translations for Address Book servers. (These settings can be defined at the global scope or at the
site scope.) The New -CsAddressBookNormalizationConfiguration cmdlet provides a way create new collections
scoped to a specified site.
In general, you will typically find it easier to add rules to a new collection by using the New -
CsAddressBookNormalizationRule cmdlet; that cmdlet enables you to add a rule by using one simple command.
However, you cannot add a rule to a collection until you have first used the New -
CsAddressBookNormalizationConfiguration cmdlet to create that collection.
Although Address Book normalization rules are very similar to voice normalization rules, the two are not
interchangeable: you cannot add voice normalization rules to an Address Book collection, nor can you add Address
Book normalization rules to a dial plan. That means that, in some cases, you might need to create identical rules:
one for assignment to Address Book servers, the other for assignment to dial plans.

Examples
-------------------------- Example 1 --------------------------

New-CsAddressBookNormalizationConfiguration -Identity "site:Redmond"

The command shown in Exercise 1 creates a new set of Address Book normalization configuration settings
assigned to the Redmond site. Note that this collection will not contain any Address Book normalization rules.
Those rules are most-easily created using the New -CsAddressBookNormalizationRule cmdlet after the new
settings collection is in place.

Parameters
-AddressBookNormalizationRules
One or more normalization rules to be assigned to the collection. Although these rules can be created directly using
the New -CsAddressBookNormalizationConfiguration cmdlet, it is recommended that you create the normalization
rules using the New -CsAddressBookNormalizationRule cmdlet instead. That cmdlet creates the rule and assigns it
to the specified collection using a single command, and using much simpler syntax.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new collection of Address Book normalization rules. Because new rule collections can only
be created at the site scope, the Identity will always be similar to this: -Identity "site:Redmond"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsAddressBookNormalizationConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsAddressBookNormalizationConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings object
cmdlet.

Related Links
Get-CsAddressBookNormalizationConfiguration
Remove-CsAddressBookNormalizationConfiguration
Set-CsAddressBookNormalizationConfiguration
Import-CsCompanyPhoneNormalizationRules
minutes to read • Edit Online

New-CsAddressBookNormalizationRule
In ths Article

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.

Syntax
New-CsAddressBookNormalizationRule [-Identity] <XdsIdentity> [-Confirm] [-Description <String>] [-Force]
[-InMemory] [-Pattern <String>] [-Priority <Int32>] [-Translation <String>] [-WhatIf] [<CommonParameters>]

New-CsAddressBookNormalizationRule -Name <String> -Parent <String> [-Confirm] [-Description <String>] [-Force]


[-InMemory] [-Pattern <String>] [-Priority <Int32>] [-Translation <String>] [-WhatIf] [<CommonParameters>]

Description
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. (Note that an understanding of regular expressions is helpful
in order to understand what normalization rules do and how they do it.) The Address Book normalization rules
handle these conversions and translations for Address Book servers.
Although Address Book normalization rules are very similar to voice normalization rules, the two are not
interchangeable: you cannot add voice normalization rules to an Address Book collection, nor can you add Address
Book normalization rules to a dial plan. That means that, in some cases, you might need to create identical rules:
one for assignment to Address Book servers, the other for assignment to dial plans.

Examples
-------------------------- Example 1 --------------------------

New-CsAddressBookNormalizationRule -Parent "site:Redmond" -Name RedmondFourDigit -Description "Dialing with


internal four-digit extension" -Pattern '^(\d{4})$' -Translation '+1425555$1'

The command shown in Example 1 creates a new Address book normalization rule named RedmondFourDigit; this
rule will be included in the normalization rule collection assigned to the Redmond site. This new rule is designed to
translate numbers that were dialed internally using just a 4-digit extension. In this example, the Pattern property is
used to identify 4-digit numbers and the Translation property is used prepend the value +1425555 to each of these
4-digit numbers. For example, if the extension 1234 was dialed then this rule would translate the dialed number to
+14255551234.
Note the single quotes around the Pattern and Translation values. Single quotes are required for these values;
double quotes (or no quotes) will cause the command to fail.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text that accompanies a normalization rule. For example, the
Description might explain how the rule converts phone numbers.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the rule. The Identity specified must include the scope followed by a slash followed by the
name; for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name.
Note that the Identity is composed of the Parent (scope) and the Name. If you use the Identity parameter then you
cannot use the Name or the Parent parameters.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The name to be given to the new rule. This parameter is required if a value has been specified for the Parent
parameter. If no value has been specified for the Parent parameter, the Name defaults to the name used in the
Identity parameter. For example, if a rule is created with the Identity site:Redmond/RedmondRule, the Name will
default to RedmondRule. The Name parameter and the Identity parameter cannot be used in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
The scope at which the new normalization rule will be created. Address book normalization rules can be created at
the global scope, the site scope, or the service scope (for the Address Book service only). Note that a collection of
Address Book normalization configuration settings must already be assigned to the specified scope before you can
add a rule to that scope. For example, you cannot add a rule to the Redmond site unless you have already created
Address Book normalization configuration settings for that site.
The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity
parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name
parameter is also required.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pattern
A regular expression that the phone number must match in order for this rule to be applied.
The default value is ^(\d{11})$. This expression represents any set of numbers up to 11 digits.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
The order in which rules are applied; this is required because a given phone number might match more than one
rule. The Priority parameter sets the order in which the rules are tested against the number. If a phone number
matches multiple rules, the rule with the highest priority will be selected to do the conversion.
Note that, when you set a priority, any existing rules will renumber themselves accordingly.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Translation
The regular expression pattern that will be applied to the number to convert it to E.164 format.
The default value is +$. This prefixes the number with a plus sign (+).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsAddressBookNormalizationRule cmdlet does not accept pipelined input.

Outputs
The New -CsAddressBookNormalizationRule cmdlet creates instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated
object.

Related Links
Get-CsAddressBookNormalizationRule
Remove-CsAddressBookNormalizationRule
Set-CsAddressBookNormalizationRule
minutes to read • Edit Online

New-CsAdminRole
In ths Article

Creates a new role-based access control (RBAC ) role. RBAC roles are used to define the management tasks that
users are allowed to carry out, and to determine the scope in which users will be allowed to perform these tasks.
This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsAdminRole [-Identity] <String> -Template <String>
[-ConfigScopes <System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.Core.ConfigScope]>]
[-UserScopes <System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.Core.UserScope]>]
[-Force] [-InMemory] [-WhatIf] [-Confirm]
[-Cmdlets
<System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletTyp
e]>]
[-ScriptModules <System.Management.Automation.PSListModifier`1[System.String]>] [<CommonParameters>]

Description
Role-based access control (RBAC ) enables administrators to delegate control of specific management tasks in
Skype for Business Server. For example, instead of granting your organization's help desk full administrator
privileges you can give these employees very specific rights: the right to manage only user accounts; the right to
manage only Enterprise Voice components; the right to manage only archiving and Archiving Server. In addition,
these rights can be limited in scope: someone can be given the right to manage Enterprise Voice, but only in the
Redmond site; someone else can be given the right to manage users, but only if those user accounts are in the
Finance organizational unit (OU ).
The Skype for Business Server implementation of RBAC is based on two key elements: Active Directory security
groups and Windows PowerShell cmdlets. When you install Skype for Business Server, a number of universal
security groups, such as CsAdministrator, CsArchivingAdministrator, and CsHelpDesk are created for you. These
universal security groups have a one-to-one correspondence with RBAC roles; that means that any user who is in
the CsArchivingAdministrator security group has all of the rights granted to the CsArchivingAdministrator RBAC
role. In turn, the rights granted to an RBAC role are based on the cmdlets assigned to that role (cmdlets can be
assigned to multiple RBAC roles). For example, suppose a role has been assigned the following cmdlets:
Get-ArchivingPolicy
Grant-ArchivingPolicy
New -ArchivingPolicy
Remove-ArchivingPolicy
Set-ArchivingPolicy
Get-ArchivingConfiguration
New -ArchivingConfiguration
Remove-ArchivingConfiguration
Set-ArchivingConfiguration
Get-CsUser
Export-CsArchivingData
Get-CsComputer
Get-CsPool
Get-CsService
Get-CsSite
The preceding list represents the only cmdlets that a user assigned a hypothetical RBAC role is allowed to run
during a remote Windows PowerShell command-line interface session. If the user tries to run the Disable-CsUser
cmdlet that command will fail because users assigned the hypothetical role do not have the right to run the
Disable-CsUser cmdlet. This applies to the Lync Server Control Panel as well. For example, an Archiving
administrator cannot disable a user by using the Lync Server Control Panel; that's because the Lync Server Control
Panel abides by RBAC roles. Any time you run a command in Lync Server Control Panel you are actually calling a
Windows PowerShell cmdlet. If you are not allowed to run the Disable-CsUser cmdlet, it won't matter whether you
directly run that cmdlet from Windows PowerShell or if you indirectly run the cmdlet from within the Lync Server
Control Panel: the command will fail.)
Note that RBAC applies only to remote management. If you are logged on to a computer running Skype for
Business Server and you open Lync Server Management Shell, RBAC roles will not be enforced. Instead, security is
enforced primarily through the security groups RTCUniversalServerAdmins; RTCUniversalUserAdmins; and
RTCUniversalReadOnlyAdmins.
When you install Skype for Business Server, Setup creates several built-in RBAC roles. These roles cover common
administrative areas such as voice administration, user management, and Response Group administration. The
built-in roles cannot be modified in any way: you cannot add or remove cmdlets to the roles and you cannot delete
these roles. (Any attempt to delete a built-in role will result in an error.) However, you can use the built-in roles to
create custom RBAC roles. These custom roles can then be modified by changing the administrative scopes; for
example, you could limit the role to managing user accounts in a particular Active Directory OU.
To create a new role, you must first create a universal security group in Active Directory Domain Services that
shares a name with the role; for example to create a new role named DialInConferencingAdministrator, you must
create a security group with the SamAccountName DialInConferencingAdministrator. Note that the New -
CsAdminRole cmdlet will not create this group for you. If the DialInConferencingAdministrator group does not
exist when you call the New -CsAdminRole cmdlet then your command will fail. The Identity you assign to your new
role must be the SamAccountName of the corresponding Active Directory group.
After creating the Active Directory security group, you must then select a built-in RBAC role to serve as the
template for your new custom role. You cannot create a blank RBAC role by using the New -CsAdminRole cmdlet.
Instead, all custom roles must be based on one of the built-in RBAC roles. This means that a custom role must have
the same assigned cmdlets as one of the built-in roles. However, you can use the Set-CsAdminRole cmdlet to
change the administrative scope of this custom role.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsAdminRole -Identity "RedmondVoiceAdministrator" -Template "CsVoiceAdministrator"


The command in Example 1 duplicates the RBAC role CsVoiceAdministrator. Because no additional parameters are
used, the new role -- RedmondVoiceAdministrators -- will be an exact duplicate of CsVoiceAdministrator, which
includes both the UserScopes and ConfigScopes properties being set to "global".
-------------------------- EXAMPLE 2 --------------------------

New-CsAdminRole -Identity "RedmondVoiceAdministrator" -Template "CsVoiceAdministrator" -UserScopes


"OU:ou=Redmond,dc=litwareinc,dc=com"

Example 2 creates a new RBAC role (RedmondVoiceAdministrator) and then configures the role to allow a single
user scope: the Redmond OU. To do this, the UserScopes parameter is included along with the following parameter
value: "OU:ou=Redmond,dc=litwareinc,dc=com". This parameter value replaces the current value of the
UserScopes property with one item: the OU with the distinguished name (DN )
"ou=Redmond,dc=litwareinc,dc=com".
-------------------------- EXAMPLE 3 --------------------------

New-CsAdminRole -Identity "RedmondVoiceAdministrator" -Template "CsVoiceAdministrator" -UserScopes


"OU:ou=Redmond,dc=litwareinc,dc=com","OU:ou=Portland,dc=litwareinc,dc=com"

The command shown in Example 3 is a variation of the command shown in Example 2; the only difference is that, in
this example, two OUs are added to the UserScopes property. This is done by assigning a comma-separated list to
the Replace method: the two items in the list represent the identifiers for the two OUs (Redmond and Portland) to
be assigned to the new RBAC role.
-------------------------- EXAMPLE 4 --------------------------

New-CsAdminRole -Identity "RedmondVoiceAdministrator" -Template "CsVoiceAdministrator" -ConfigScopes


"site:Redmond"

In Example 4, the site with the SiteId Redmond is assigned to the ConfigScopes property for a new RBAC role.
Note that the syntax for the ConfigScopes property requires the use of the "site:" prefix followed by the value of the
SiteId property for the site being added.

Parameters
-Cmdlets
Enables you to specify the cmdlets that will be available to users who hold the new RBAC role. For example, to
create a new role that provides access only to one cmdlet (the Export-CsArchivingData cmdlet) use syntax like this:
-Cmdlets "Export-CsArchivingData"

To allow access to multiple cmdlets, separate the cmdlet names using commas:
-Cmdlets "Export-CsArchivingData","Invoke-CsArchivingDatabasePurge"

Type:
System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletType
]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ConfigScopes
Used to limit the scope of the cmdlet to configuration settings within the specified site. To limit the cmdlet scope to
a single site, use syntax similar to this: -ConfigScopes site:Redmond. Multiple sites can be specified by using a
comma-separated list: -ConfigScopes "site:Redmond, "site:Dublin". You can also set the ConfigScopes property to
"global".
When assigning a value to the ConfigScopes parameter you must use the "site:" prefix followed by the value of the
site's SiteId property; note that the SiteID is not necessarily the same value as the site's Identity or the site's
DisplayName. To determine the SiteId for a given site you can use a command similar to this:
Get-CsSite "Redmond" | Select-Object SiteId

You must specify a value for either (or both) the ConfigScopes and UserScopes properties.

Type: System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.Core.ConfigScope]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the RBAC role to be created. The Identity for an RBAC role must be the same as the
SamAccountName for the Active Directory universal security group associated with that role. For example, the help
desk role has an Identity equal to CsHelpDesk; CsHelpDesk is also the SamAccountName of the Active Directory
security group associated with that role.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ScriptModules
Enables you to specify a function within a Windows PowerShell script that will then be available to users who hold
the new RBAC role. For example, this syntax provides access to a function named Reset in a script named
UpdateDatabase.ps1 :
-ScriptModules "UpdateDatabase.ps1:Reset"

Type: System.Management.Automation.PSListModifier`1[System.String]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Template
Name of the built-in RBAC role that will serve as a template for the custom RBAC role being created. All new
RBAC roles must be based on an existing role; it is not possible to create a blank RBAC role (that is, a role with no
cmdlets assigned to it or without values assigned to either the ConfigScopes or UserScopes properties). However,
after the custom role has been created, you can then use the Set-CsAdminRole cmdlet to modify the properties of
the new role.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserScopes
Used to limit the scope of the cmdlet to user management activities within the specified organizational unit. To limit
the cmdlet scope to a single organizational unit, use syntax similar to this:
-UserScopes "OU:ou=Redmond,dc=litwareinc,dc=com". Multiple OUs can be specified by using a comma-separated list:
-UserScopes "OU:ou=Redmond,dc=litwareinc,dc=com", "OU:ou=Dublin,dc=litwareinc,dc=com". To add new scopes (or
remove existing scopes) from a role, use the Windows PowerShell list modifiers syntax. For details, see the
Examples section of this Help topic.
You must specify a value for either (or both) the ConfigScopes and UserScopes properties.
Type: System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.Core.UserScope]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The New -CsAdminRole cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role object.
minutes to read • Edit Online

New-CsAllowedDomain
In ths Article

Adds a domain to the list of domains approved for federation. After a domain has been approved for federation (by
being added to the allowed list), your users can exchange instant messages and presence information with people
who have accounts in the federated domain. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsAllowedDomain [-Identity] <XdsGlobalRelativeIdentity> [-Comment <String>] [-MarkForMonitoring <Boolean>]
[-ProxyFqdn <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-VerificationLevel <VerificationLevelType>]
[<CommonParameters>]

New-CsAllowedDomain [-Comment <String>] -Domain <String> [-MarkForMonitoring <Boolean>] [-ProxyFqdn <String>]


[-Force] [-InMemory] [-WhatIf] [-Confirm] [-VerificationLevel <VerificationLevelType>] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another by using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and 3) federation between your organization and a third-party hosting provider.
Setting up direct federation with another organization involves several tasks. To begin with, you must enable your
servers running the Skype for Business Server Access Edge service to allow federation. In addition, the other
organization must enable federation with you; federation cannot be established unless both parties agree to the
relationship.
To establish a federated relationship you might also need to manage two federation-related lists: the allowed list
and the blocked list. The allowed list represents the organizations you have chosen to federate with; if a domain
appears on the allowed list then (depending on your configuration settings) your users will be able to exchange
instant messages and presence information with users who have accounts in that federated domain. Conversely,
the blocked list represents domains that users are expressly forbidden from federating with; for example, messages
sent from a blocked domain will automatically be rejected by Skype for Business Server.
If you want to create a new federation relationship, you can use the New -CsAllowedDomain cmdlet to add a
domain to the list of allowed domains.

Examples
-------------------------- EXAMPLE 1 --------------------------
New-CsAllowedDomain -Identity "fabrikam.com"

In Example 1, the domain fabrikam.com is added to the list of allowed domains. To do this, the New -
CsAllowedDomain cmdlet is called, along with the Identity parameter; this parameter is assigned the name of the
domain to be added to the allowed list. Note that this command will fail if fabrikam.com is already on the allowed
list or on the blocked list.
-------------------------- EXAMPLE 2 --------------------------

New-CsAllowedDomain -Identity "fabrikam.com" -ProxyFqdn "proxyserver.fabrikam.com" -MarkForMonitoring $True -


Comment "Contact: Ken Myer (kenmyer@fabrikam.com)"

Example 2 is a variation of the command shown in Example 1. In this case, however, two additional parameters are
included along with Identity: ProxyFqdn is used to specify the FQDN of the proxy server for fabrikam.com, and
MarkForMonitoring is used to add this federation connection to the list of items monitored by Monitoring Server.
-------------------------- EXAMPLE 3 --------------------------

$x = New-CsAllowedDomain -Identity "fabrikam.com" -InMemory

$x.ProxyFqdn = "proxyserver.fabrikam.com"

$x.MarkForMonitoring = $True

$x.Comment = "Contact: Ken Myer (kenmyer@fabrikam.com)"

Set-CsAllowedDomain -Instance $x

Example 3 demonstrates how you can use the InMemory parameter to create a new allowed domain that initially
exists only in memory. After you modify the property values of this in-memory-only domain, you can then call the
Set-CsAllowedDomain cmdlet to add the domain to the allowed list.
In order to do this, the first command in the example uses the New -CsAllowedDomain cmdlet and the InMemory
parameter to create an allowed domain that has the Identity fabrikam.com. After that, the virtual domain is stored
in the variable $x.
Lines 2, 3, and 4 are used to modify the values of the ProxyFqdn, MarkForMonitoring, and Comment properties,
respectively. After all of the property values have been modified, the final command uses the Set-
CsAllowedDomain cmdlet to add the virtual domain to the allowed domain list. Keep in mind that, until the Set-
CsAllowedDomain cmdlet is called, fabrikam.com exists only in memory: if you run the Get-CsAllowedDomain
cmdlet any time prior to the last line in the example, fabrikam.com will not appear on the list of allowed domains.
Fabrikam.com will not show up on the allowed list until after you have called the Set-CsAllowedDomain cmdlet.

Parameters
-Comment
Optional string value that provides additional information about the domain being added to the allowed list. For
example, you might add a Comment that provides contact information for the federated domain.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
FQDN (for example, fabrikam.com) of the domain to be added to the allowed list. You can use either the Identity or
the Domain parameter (but not both) in order to specify the domain name. If you use Identity, the Domain property
will be set to the same value assigned to Identity. If you use Domain, the Identity property will be set to the same
value assigned to Domain.
Note that Domains must be unique: if the specified domain already exists on either the blocked or the allowed list,
your command will fail.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the domain to be added to the allowed list; for example, fabrikam.com. You
can use either the Identity or the Domain parameter (but not both) in order to specify the domain name. If you use
Identity, the Domain property will be set to the same value assigned to Identity. If you use Domain, the Identity
property will be set to the same value assigned to Domain.
Note that Identities must be unique: if the specified domain already exists on either the blocked or the allowed list,
your command will fail.
Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MarkForMonitoring
Indicates whether or not the federation connection between your domain and the remote domain will be monitored
by Monitoring Server. By default, MarkForMonitoring is set to False, meaning that the connection will not be
monitored.
This property will be ignored if you have not deployed Monitoring Server.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyFqdn
FQDN (for example, proxy-server.fabrikam.com) of the SIP proxy server deployed in the domain being added to
the allowed list. This property is optional: if it is not specified then DNS SRV discovery procedures will be used to
determine the location of the SIP proxy server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VerificationLevel
Indicates how (or if) messages sent from a domain are verified to ensure that they were sent from that domain. The
VerificationLevel must be set to one of the following values:
AlwaysVerifiable. All messages purportedly sent from this domain will be accepted. If a verification header is not
found in the message it will be added by Skype for Business Server.
AlwaysUnverifiable. All messages purportedly sent from a domain are considered unverified. They will be delivered
only if they were sent from a person who is on the recipient's Contacts list. For example, if Ken Myer is on your
Contacts list you will be able to receive messages from him. If David Longmire is not on your Contacts list then you
will not be able to receive messages from him. Note that Skype for Business users can manually override this
setting, thereby allowing themselves to receive messages people not on their Contacts list.
UseSourceVerification. Uses the verification header added to the message by the public provider. If the verification
information is missing the message will be rejected. This is the default value.

Type: VerificationLevelType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsAllowedDomain cmdlet does not accept pipelined input.

Outputs
Creates instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain object.

Related Links
Get-CsAllowedDomain
Remove-CsAllowedDomain
Set-CsAccessEdgeConfiguration
Set-CsAllowedDomain
minutes to read • Edit Online

New-CsAnalogDevice
In ths Article

Creates a new analog device that can be managed by using Skype for Business Server. An analog device is a
telephone or other device that is connected to the public switched telephone network (PSTN ). This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsAnalogDevice -LineUri <String> [-SipAddress <String>] -RegistrarPool <Fqdn> [-DisplayName <String>]
[-DisplayNumber <String>] -AnalogFax <Boolean> -Gateway <Fqdn> -OU <OUIdParameter> [-PassThru] [-WhatIf]
[-Confirm] [<CommonParameters>]

New-CsAnalogDevice -LineUri <String> [-SipAddress <String>] -RegistrarPool <Fqdn> [-DisplayName <String>]


[-DisplayNumber <String>] -AnalogFax <Boolean> -Gateway <Fqdn> -DN <ADObjectId> [-PassThru] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
Analog devices include telephones, fax machines, modems, and teletype/telecommunication device for the deaf
(TTY/TDD ) devices that are connected to the public switched telephone network (PSTN ). Unlike devices that take
advantage of Enterprise Voice (the Voice over Internet Protocol (VoIP ) solution offered by Microsoft), analog
devices do not transmit information by using digital packets. Instead, information is transmitted by using a
continuous signal. This signal is commonly referred to as an analog signal; hence the term "analog devices."
In order to enable administrators to manage analog devices, Skype for Business Server lets you associate analog
devices with Active Directory contact objects. After a device has been associated with a contact object, you can then
manage the analog device by assigning policies and dial plans to the contact.
New analog devices are created by using the New -CsAnalogDevice cmdlet. This cmdlet can either create new
contact objects for use with analog devices or it can associate existing contact objects with a new device. For details,
see the OU and the DN parameter descriptions in this topic.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsAnalogDevice -LineUri tel:+14255556001 -DisplayName "Building 14 Receptionist" -RegistrarPool redmond-Cs-


001.litwareinc.com -AnalogFax $False -Gateway 192.168.0.240 -OU "ou=Telecommunications,dc=litwareinc,dc=com"

The command shown in Example 1 creates a new analog device with the phone number (LineUri) 1-425-555-6001.
(Note that the phone number must be specified using the E.164 format.) In addition to the LineUri parameter, the
other parameters used in this command are DisplayName (to set the Active Directory display name of the device);
RegistrarPool (to specify the Registrar pool); AnalogFax (set to $False, to indicate that this is a phone and not a fax
machine); Gateway (set to the IP address of the gateway); and OU (the distinguished name of the Active Directory
OU where the device's contact object should be created).

Parameters
-AnalogFax
Set to True ($True) if the analog device is a fax machine. Set to False ($False) if the device is not a fax machine.

Type: Boolean
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Configures the Active Directory display name of the analog device.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
Phone number as displayed in Skype for Business. The DisplayNumber property can be formatted any way you
prefer; for example 1-800-555-1234; 1-(800)-555-1234; 1.800.555.1234; etc.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DN
Enables you to associate an existing Active Directory contact object with the analog device. If you have a contact
object you want to associate with an analog device, use the DN parameter followed by the distinguished name of
that contact. For example: -DN "cn=Building 14 Lobby,dc=litwareinc,dc=com". Note that the command will fail if the
specified contact does not exist.
You cannot use the OU and the DN parameters in the same command.
Type: ADObjectId
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Gateway
IP address of the PSTN gateway to be used by the analog device.

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineUri
Phone number for the analog device. The line Uniform Resource Identifier (URI) should be specified by using the
E.164 format, and be prefixed by the "TEL:" prefix. For example: TEL:+14255551297. Any extension number should
be added to the end of the line URI, for example: "TEL:+14255551297;ext=51297".

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Distinguished name of the Active Directory organizational unit (OU ) where the contact object should be located.
For example: -OU "ou=Redmond,dc=litwareinc,dc=com".
If you include the OU parameter, a new contact will be created in the specified OU, and the contact will
automatically be assigned a GUID (globally unique identifier) as its common name. As a result, the contact object
will have a name similar to this: {ce84964a-c4da-4622-ad34-c54ff3ed361f}.

Type: OUIdParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Returns an object representing the common area phone.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegistrarPool
Fully qualified domain name (FQDN ) of the Registrar pool where the contact object should be homed. For example:
-RegistrarPool "atl-cs-001.litwareinc.com".

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
Unique identifier (similar to an e-mail address) that allows the analog device to communicate with SIP devices such
as Skype for Business. The SIP address must be prefaced by the prefix "sip:". For example:
sip:bldg14lobby@litwareinc.com.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsAnalogDevice cmdlet does not accept pipelined input.

Outputs
The New -CsAnalogDevice cmdlet creates new instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact object.

Related Links
Get-CsAnalogDevice
Move-CsAnalogDevice
Remove-CsAnalogDevice
Set-CsAnalogDevice
minutes to read • Edit Online

New-CsAnnouncement
In ths Article

Creates a new Skype for Business Server announcement. Announcements are played when users dial a valid but
unassigned phone number. An announcement can be a message (such as "This number is temporarily out of
service") or a busy signal. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsAnnouncement [-Identity] <XdsIdentity> -Name <String> [-AudioFilePrompt <String>] [-Language <String>]
[-TargetUri <String>] [-TextToSpeechPrompt <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

New-CsAnnouncement -Parent <String> -Name <String> [-AudioFilePrompt <String>] [-Language <String>]


[-TargetUri <String>] [-TextToSpeechPrompt <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
An organization can own phone numbers that are not assigned to users or phones, but that are still valid numbers
that can be called. By default when someone dials one of those numbers, that person will receive a busy signal and
the call may result in an error returned to the SIP client. By applying announcement settings to unassigned
numbers, administrators have the option of playing a message, returning a busy signal, or redirecting the call. This
cmdlet creates these announcement settings.
You can assign announcements to unassigned numbers by calling the New -CsUnassignedNumber or the Set-
CsUnassignedNumber cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsAnnouncement -Identity ApplicationServer:redmond.litwareinc.com -Name "Help Desk Announcement" -


TextToSpeechPrompt "Welcome to the Help Desk." -Language "en-US"

Example 1 demonstrates how you can create a new announcement that will play a TTS prompt in U.S. English. The
first parameter we specify is Identity. The Identity must be at the service scope, followed by the service ID of the
Application Server (ApplicationServer:redmond.litwareinc.com). Next we give the announcement a Name, in this
case Help Desk Announcement. To assign a TTS prompt to this announcement we use the TextToSpeechPrompt
parameter followed by a string with the announcement text. When a TTS prompt is used for an announcement you
must specify a language, which we do here by including the Language parameter followed by a string representing
U.S. English (en-US ).
Note that announcement identities are composed of two parts: the service where the announcement is to be stored,
and a 36-character GUID (globally unique identifier). You will see the full Identity after you create the new
announcement; the GUID is generated and applied automatically. That Identity will be similar to this:
service:ApplicationServer:redmond.litwareinc.com/1951f734-c80f-4fb2-965d-51807c792b90.
-------------------------- EXAMPLE 2 --------------------------

New-CsAnnouncement -Identity ApplicationServer:redmond.litwareinc.com -Name "Welcome Announcement" -


AudioFilePrompt "WelcomeMessage.wav"

Example 2 is similar to Example 1 in that we begin by entering the required parameters, Identity and Name. In this
example, however, instead of a TTS prompt, we want the announcement to play an audio file. To do that we include
the AudioFilePrompt parameter and pass it a string containing the name of the audio file (WelcomeMessage.wav).
This file must be in the File Store in order for this announcement to play. You can add audio files to the File Store by
calling the Import-CsAnnouncementFile cmdlet.
-------------------------- EXAMPLE 3 --------------------------

New-CsAnnouncement -Identity ApplicationServer:redmond.litwareinc.com -Name "Forward Announcement" -


AudioFilePrompt "WelcomeMessage.wav" -TargetUri sip:kmyer@litwareinc.com

Like Example 2, this example creates an announcement that plays an audio file when the number is reached.
However, in this example in addition to the Identity, Name, and AudioFilePrompt parameters, we also specify the
TargetUri parameter. We pass this parameter the SIP URI of the user or phone to which the caller will be forwarded
after the announcement has been played.
-------------------------- EXAMPLE 4 --------------------------

New-CsAnnouncement -Identity ApplicationServer:redmond.litwareinc.com -Name "Forward Announcement" -


AudioFilePrompt "WelcomeMessage.wav" -TargetUri "sip:+14255551212@litwareinc.com;user=phone"

Example 4 is identical to Example 3 except that instead of forwarding the call based on a user's SIP address, the call
is forwarded to a phone number.
-------------------------- EXAMPLE 5 --------------------------

New-CsAnnouncement -Identity ApplicationServer:redmond.litwareinc.com -Name "Busy"

In this example we don't specify a prompt or a target URI, we include only an Identity and a Name. That means the
caller will hear a busy signal when a call to an unassigned number associated with this announcement is connected.

Parameters
-AudioFilePrompt
The name of the audio file to be played for the announcement. Audio files are stored in the File Store. To save an
audio file to the File Store, use the Import-CsAnnouncementFile cmdlet.
Valid file types: WAV and WMA

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the Announcement. For this value you must enter the Identity of the Application Server
running the Response Group application. For example, ApplicationServer:redmond.litwareinc.com.
More than one Announcement can be assigned to a single service. Thus, in order to make the Identity a unique
value, a globally unique identifier (GUID ) will be automatically generated and assigned to the Identity when you
create the Announcement. The new Announcement will have an Identity in the format service:<service
ID>/<GUID>. For example: service: ApplicationServer:redmond.litwareinc.com/bef5fa3b-3c97-4af0-abe7-
611deee7616c. You do not need to supply a GUID when you call this cmdlet. Instead, supply the service Identity,
and the GUID will be auto-generated and added to the Identity.
Although you don't have to supply a GUID, you can. You might want to do this if an announcement was assigned to
an unassigned number range, and then the announcement was deleted. You can create a new announcement with a
matching Identity (including the GUID ) and in that case not have to update the unassigned number range.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Language
The language in which the text-to-speech (TTS ) prompt will be played. If a value is entered for
TextToSpeechPrompt, this parameter is required.
Values are entered as a string representing the language and locale to be used. The following is a list of valid values,
followed by the language and locale in parentheses: ca-ES (Catalan, Spain); da-DK (Danish, Denmark); de-DE
(German, Germany); en-AU (English, Australia); en-CA (English, Canada); en-GB (English, United Kingdom); en-IN
(English, India); en-US (English, United States); es-ES (Spanish, Spain); es-MX (Spanish, Mexico); fi-FI (Finnish,
Finland); fr-CA (French, Canada); fr-FR (French, France); it-IT (Italian, Italy); ja-JP (Japanese, Japan); ko-KR (Korean,
Korea); nb-NO (Norwegian, Bokmal, Norway); nl-NL (Dutch, Netherlands); pl-PL (Polish, Poland); pt-BR
(Portuguese, Brazil); pt-PT (Portuguese, Portugal); ru-RU (Russian, Russia); sv-SE (Swedish, Sweden); zh-CN
(Chinese, People's Republic of China); zh-HK (Chinese, Hong Kong SAR ); zh-TW (Chinese, Taiwan)

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
A descriptive name for the Announcement. This name must be unique within the service. This name will be used in
the call to the New -CsUnassignedNumber cmdlet or to the Set-CsUnassignedNumber cmdlet to specify the
Announcement associated with an unassigned number range.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
This parameter is identical to Identity, except that Identity will accept the service Identity and the GUID, whereas
Parent will accept only the service Identity; the GUID will be automatically generated. You cannot specify an Identity
and a Parent.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetUri
The Uniform Resource Identifier (URI) to which the caller will be transferred after the announcement has been
played. This value must be a SIP address entered in the format sip: followed by the SIP address. For example,
sip:kmyer@litwareinc.com. Note that the SIP address can also be a telephone number or voice mail, for example
sip:+14255551212@litwareinc.com;user=phone for a phone number or
sip:kmyer@litwareinc.com;opaque=app:voicemail for voice mail.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TextToSpeechPrompt
A text-to-speech (TTS ) prompt. This is a string that will be converted to audio and played as the announcement.
If both AudioFilePrompt and TextToSpeechPrompt are specified for a single announcement, you will receive a
warning that the audio file will take precedence and the TTS prompt will be ignored.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement.

Related Links
Remove-CsAnnouncement
Set-CsAnnouncement
Get-CsAnnouncement
Import-CsAnnouncementFile
New -CsUnassignedNumber
Set-CsUnassignedNumber
minutes to read • Edit Online

New-CsArchivingConfiguration
In ths Article

Creates a new set of instant messaging (IM ) archiving settings. These settings can be used to enable or disable the
automatic saving of IM sessions; these settings also enable you to block any instant messages that cannot be
archived. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsArchivingConfiguration [-Identity] <XdsIdentity> [-ArchiveDuplicateMessages <Boolean>]
[-BlockOnArchiveFailure <Boolean>] [-CachePurgingInterval <UInt32>] [-EnableArchiving <EnableArchiving>]
[-EnablePurging <Boolean>] [-KeepArchivingDataForDays <UInt32>] [-PurgeExportedArchivesOnly <Boolean>]
[-PurgeHourOfDay <UInt32>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-EnableExchangeArchiving <Boolean>]
[<CommonParameters>]

Description
Many organizations find it useful to keep a transcript of all the IM sessions carried out by their users. For other
organizations, it's mandatory to keep such transcripts; for example, many organizations in the financial world are
required by law to keep copies of all their electronic communications.
Skype for Business Server gives you flexibility when it comes to archiving IM and web conferencing sessions. If you
have deployed Archiving Server, you can use the various CsArchivingConfiguration cmdlets to enable and disable
IM session archiving and to manage your archiving database. You can also suspend IM should archiving fail; this
helps to ensure that you keep a record of all your electronic communications.
When you install Skype for Business Server, a collection of global archiving settings will be created for you; by
default, these settings will apply to your entire organization. Alternatively, you can use the New -
CsArchivingConfiguration cmdlet to create custom configuration settings on a site-by-site basis.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsArchivingConfiguration -Identity site:Redmond -EnableArchiving "ImOnly"

The command shown in Example 1 creates a new collection of archiving configuration settings and applies these
settings to the Redmond site. By adding the EnableArchiving parameter and setting the parameter value to
"ImOnly", the command also enables IM session archiving (but not web conference archiving) for the Redmond
site.
-------------------------- EXAMPLE 2 --------------------------
$x = New-CsArchivingConfiguration -Identity site:Redmond -InMemory

$x.EnableArchiving = "ImOnly"

Set-CsArchivingConfiguration -Instance $x

Example 2 demonstrates the use of the InMemory parameter to create a collection of archiving configuration
settings that initially exist only in memory. To do this, the example creates a new collection of settings (with the
Identity site:Redmond) and stores this collection in a variable named $x. Note that, after this first command runs,
the collection exists only in memory; if you run the command the Get-CsArchivingConfiguration cmdlet you will
not see an entry for site:Redmond.
In the second command, the EnableArchiving property for this virtual collection of settings is set to "ImOnly",
which enables IM session archiving. Finally, the last command uses the Set-CsArchivingConfiguration cmdlet to
transform the virtual archiving settings into an actual collection of settings applied to the Redmond site. If you do
not call the Set-CsArchivingConfiguration cmdlet, these settings will remain in memory only and will disappear
when your Windows PowerShell session is terminated or the variable $x is deleted.

Parameters
-ArchiveDuplicateMessages
Specifies how cross-pool instant messages should be archived. For example, Ken Myer (with an account in Pool 1)
sends an instant message to Pilar Ackerman (who has an account in Pool 2). Pilar, in turn, sends a reply to Ken's
instant message. If ArchiveDuplicateMessages is set to False, then (based on a built-in algorithm) the session
transcript will be logged in either Pool 1 or Pool 2, but not both. If ArchiveDuplicateMessages is set to True (the
default value), the transcript will be logged in both pools.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BlockOnArchiveFailure
If True, then the IM service will be suspended any time your instant message sessions cannot be archived. If set to
False (the default value), instant messaging will continue even if sessions cannot be archived.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CachePurgingInterval
Indicates how often (in hours) the system is purged of transcripts where none of the participants have been
enabled for archiving. By design, all group IM sessions and conferencing sessions are recorded when they take
place. At the specified interval, the system will determine whether any of the participants in these sessions have
been enabled for archiving. If the system finds a session where none of the participants have been enabled for
archiving, then that transcript will be deleted from the database.
The CachePurgeInterval property can be set to any integer value between 4 and 168, inclusive. The default value is
24.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableArchiving
Indicates which items (if any) are saved to the archiving database. Valid values are:
None. No items are archived to the database. This is the default value.
ImOnly. IM sessions are archived to the database.
ImAndWebConf. Both IM and web conferencing sessions are archived to the database.

Type: EnableArchiving
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExchangeArchiving
When set to True, Skype for Business Server instant message and conferencing transcripts are stored in Exchange
rather than a separate SQL Server database. Note that if you enable Exchange archiving then users will be
managed by the Exchange archiving policies instead of Skype for Business Server archiving policies.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePurging
If True, archived instant messages will periodically be removed from the database, provided that these instant
messages: 1) are older than the value specified in the KeepArchivingDataForDays property; or, 2) have been
exported and marked for deletion.
If False, instant messages will not be automatically deleted from the database.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier to be assigned to the new collection of archiving configuration settings. In Skype for Business
Server you can create new collections at the site scope or at the service scope. To create new settings at the site
scope, use syntax similar to this:
-Identity "site:Redmond"

To create settings at the service scope (for the Registrar service only) use syntax like this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeepArchivingDataForDays
Number of days (between 1 and 2562) that archived instant messages are kept in the database before being
automatically deleted. The default value is 14.
This property takes effect only if EnablePurging has been set to True.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeExportedArchivesOnly
If True, then the system will only purge instant messages that have been exported (and, as a result, have been
marked for deletion). Instant messages that have not been exported will remain in the database, even if those
messages are older than the value specified by the KeepArchivingDataForDays property.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeHourOfDay
Indicates the time of day when expired records are deleted from the archiving database. The time of day is specified
using a 24-hour clock, with 0 representing midnight (12:00 AM ) and 23 representing 11:00 PM. Note that you can
only specify the hour of the day. This means that you can schedule purging to take place at 4:00 AM, but you cannot
schedule it to take place at, for instance, 4:30 AM or 4:15 AM. The default value is 2 (2:00 AM ).
Database purging takes place only if the EnablePurging property is set to True.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsArchivingConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsArchivingConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings object.
Related Links
Get-CsArchivingConfiguration
Remove-CsArchivingConfiguration
Set-CsArchivingConfiguration
Set-CsArchivingServer
minutes to read • Edit Online

New-CsArchivingPolicy
In ths Article

Creates new instant messaging (IM ) session archiving policies. These policies give you the ability to archive all IM
sessions that take place between internal users, and/or to archive all IM sessions that take place between internal
users and external partners. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsArchivingPolicy [-Identity] <XdsIdentity> [-ArchiveExternal <Boolean>] [-ArchiveInternal <Boolean>]
[-Description <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-Tenant <Guid>] [<CommonParameters>]

Description
Many organizations find it useful to keep an archive of all the IM sessions that their users take part in; other
organizations are legally required to keep such an archive. In order to archive IM sessions with Skype for Business
Server, you must perform two steps. First, you need to enable archiving at the global and/or the site scope by using
the Set-CsArchivingConfiguration cmdlet. This gives you the ability to archive IM sessions; however, it does not
automatically begin archiving those sessions.
Instead, to actually save transcripts of your IM sessions, you must complete step 2: create one or more IM session
archiving policies that determine which users will have their IM sessions recorded as well as which type of IM
sessions (internal and/or external) will be archived. Internal IM sessions are sessions where all the participants are
authenticated users who have Active Directory accounts within your organization; external IM sessions are sessions
where at least one participant is an unauthenticated user who does not have an Active Directory account within
your organization. You can choose to archive only internal sessions, only external sessions, or both internal and
external sessions.
Archiving policies can be assigned to the global scope or to the site scope. In addition, these policies can be
assigned to the per-user scope and then applied to a specific user or a specific set of users. For example, suppose
your global policy only archives internal IM sessions for all of your users. In that case, you might create a second
policy, one that archives both internal and external sessions and apply that policy only to your sales staff. Because
per-user policies take precedence over global and site policies, members of the sales staff will have all their IM
sessions archived. Other users (users who are not part of the sales department and are not affected by the sales
policy) will only have their internal IM sessions archived.
You can create new archiving policies (at either the site or the per-user scope) by using the New -CsArchivingPolicy
cmdlet. If you create a policy at the site scope, it will automatically be applied to the site at the time the policy is
created. If you create a policy at the per-user scope, that policy will not be used until you explicitly assign it to a user
or set of users by calling the Grant-CsArchivingPolicy cmdlet. You cannot create a new policy at the global scope.

Examples
-------------------------- EXAMPLE 1 --------------------------
New-CsArchivingPolicy -Identity site:Redmond -ArchiveInternal $True

In Example 1, the New -CsArchivingPolicy cmdlet is used to create a new archiving policy with the Identity
site:Redmond. In addition, the ArchiveInternal parameter is set to True; that means that this new policy will enable
archiving for internal IM sessions and conferences.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsArchivingPolicy -Identity site:Redmond -InMemory

$x.ArchiveInternal = $True

$x.ArchiveExternal = $True

Set-CsArchivingPolicy -Instance $x

Example 2 uses the InMemory parameter to create an archiving policy that initially exists only in memory. In this
set of commands, the New -CsArchivingPolicy cmdlet is first called, along with the InMemory parameter, to create a
new site policy with the Identity site:Redmond. This new, in-memory-only policy is stored in the variable $x. In
commands 2 and 3, property values for this virtual policy are modified; in command 2 the value of the
ArchiveInternal property is set to True, and in command 3 the ArchiveExternal property is set to True.
Finally, the last command in the example uses the Set-CsArchivingPolicy cmdlet to transform the virtual policy
site:Redmond into an actual IM session archiving policy.

Parameters
-ArchiveExternal
Indicates whether external IM sessions are archived. (An external IM session is one in which at least one of the
participants is an unauthenticated user who does not have an Active Directory account within your organization.)
The default value is False, which means that IM sessions that include external users are not archived.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ArchiveInternal
Indicates whether internal IM sessions are archived. (An internal IM session is one in which all the participants are
authenticated users who have Active Directory accounts within your organization.) The default value is False, which
means that internal IM sessions are not archived.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide a brief description of the archiving policy. For example, the Description might be
used to detail which users the policy should be applied to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique Identity to be assigned to the policy. New archiving policies can be created at the site scope or
the per-user scope. To create a new site policy, use the prefix "site:" followed by the name of the site. For example,
this syntax creates a new policy for the Redmond site: -Identity site:Redmond. To create a new per-user policy, use
an Identity similar to this: -Identity SalesArchivingPolicy.

Note that you cannot create a new global policy; if you want to make changes to the global policy, use the Set-
CsArchivingPolicy cmdlet instead. Likewise, you cannot create a new site or per-user policy if a policy with that
Identity already exists.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new archiving
policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsArchivingPolicy cmdlet does not accept pipelined input.

Outputs
The New -CsArchivingPolicy cmdlet creates instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.IM.IMArchivingPolicy object.

Related Links
Get-CsArchivingPolicy
Grant-CsArchivingPolicy
Remove-CsArchivingPolicy
Set-CsArchivingPolicy
minutes to read • Edit Online

New-CsAutoAttendant
In ths Article

Use the New -CsAutoAttendant cmdlet to create a new Auto Attendant (AA).

Syntax
New-CsAutoAttendant -Name <String> -LanguageId <String> -TimeZoneId <String> -DefaultCallFlow <Object> -
CallFlows <Object> -CallHandlingAssociations <Object> [-Operator <Object>] [-VoiceId <String>] [-
EnableVoiceResponse] [-InclusionScope <Object>] [-ExclusionScope <Object>] [-Tenant <Guid>]
[<CommonParameters>]

Description
Auto Attendants (AAs) are a key element in the Office 365 Phone System. Each AA can be associated with phone
numbers that allow callers to reach specific people in the organization through a directory lookup. Alternatively, it
can route the calls to an operator, a user, another AA, or a call queue.
You can create new AAs by using the New -CsAutoAttendant cmdlet; each newly created AA gets assigned a
random string that serves as the identity of the AA.
NOTE
To setup your AA for calling, you need to create an application instance first using New-CsOnlineApplicationInstance
cmdlet , then associate it with your AA configuration using New-CsOnlineApplicationInstanceAssociation cmdlet.
The default call flow has the lowest precedence, and any custom call flow has a higher precedence and is executed if
the schedule associated with it is in effect.
Holiday call flows have higher priority than after-hours call flows. Thus, if a holiday schedule and an after-hours
schedule are both in effect at a particular time, the call flow corresponding to the holiday call flow will be rendered.
The default call flow can be used either as the 24/7 call flow if no other call flows are specified, or as the business
hours call flow if an "after hours" call flow was specified together with the corresponding schedule and call handling
association.
If a user is present in both inclusion and exclusion scopes, then exclusion scope always takes priority, i.e., the user
will not be able to be contacted through directory lookup feature.

Examples
-------------------------- Example 1 --------------------------
$operatorObjectId = (Get-CsOnlineUser operator@contoso.com).ObjectId
$operatorEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User

$greetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!"


$menuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0
$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign or press 0 to reach the operator."
$defaultMenu = New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($menuPrompt) -MenuOptions
@($menuOptionZero) -EnableDialByName
$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($greetingPrompt) -Menu
$defaultMenu

$afterHoursGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso! Unfortunately,


you have reached us outside of our business hours. We value your call please call us back Monday to Friday,
between 9 A.M. to 12 P.M. and 1 P.M. to 5 P.M. Goodbye!"
$automaticMenuOption = New-CsAutoAttendantMenuOption -Action Disconnect -DtmfResponse Automatic
$afterHoursMenu=New-CsAutoAttendantMenu -Name "After Hours menu" -MenuOptions @($automaticMenuOption)
$afterHoursCallFlow = New-CsAutoAttendantCallFlow -Name "After Hours call flow" -Greetings
@($afterHoursGreetingPrompt) -Menu $afterHoursMenu

$timerange1 = New-CsOnlineTimeRange -Start 09:00 -end 12:00


$timerange2 = New-CsOnlineTimeRange -Start 13:00 -end 17:00
$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours Schedule" -WeeklyRecurrentSchedule -MondayHours
@($timerange1, $timerange2) -TuesdayHours @($timerange1, $timerange2) -WednesdayHours @($timerange1,
$timerange2) -ThursdayHours @($timerange1, $timerange2) -FridayHours @($timerange1, $timerange2) -Complement

$afterHoursCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId


$afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id

$inclusionScopeGroupIds = @("4c3053a6-20bf-43df-bf7a-156124168856")
$inclusionScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $inclusionScopeGroupIds

$aa = New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -


CallFlows @($afterHoursCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation) -Language "en-
US" -TimeZoneId "UTC" -Operator $operatorEntity -InclusionScope $inclusionScope

This example creates a new AA named Main auto attendant that has the following properties:
It sets a default call flow.
It sets an after-hours call flow.
It enables voice response.
The default language is en-US.
The time zone is set to UTC.
An inclusion scope is specified.
-------------------------- Example 2 --------------------------
$operatorObjectId = (Get-CsOnlineUser operator@contoso.com).ObjectId
$operatorEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User

$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!"


$dcfMenuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0
$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign or press 0 to reach the operator."
$dcfMenu=New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -MenuOptions
@($dcfMenuOptionZero) -EnableDialByName
$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu
$dcfMenu

$afterHoursGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso! Unfortunately,


you have reached us outside of our business hours. We value your call please call us back Monday to Friday,
between 9 A.M. to 12 P.M. and 1 P.M. to 5 P.M. Goodbye!"
$afterHoursMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic
$afterHoursMenu=New-CsAutoAttendantMenu -Name "After Hours menu" -MenuOptions @($afterHoursMenuOption)
$afterHoursCallFlow = New-CsAutoAttendantCallFlow -Name "After Hours call flow" -Greetings
@($afterHoursGreetingPrompt) -Menu $afterHoursMenu

$timerange1 = New-CsOnlineTimeRange -Start 09:00 -end 12:00


$timerange2 = New-CsOnlineTimeRange -Start 13:00 -end 17:00
$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours Schedule" -WeeklyRecurrentSchedule -MondayHours
@($timerange1, $timerange2) -TuesdayHours @($timerange1, $timerange2) -WednesdayHours @($timerange1,
$timerange2) -ThursdayHours @($timerange1, $timerange2) -FridayHours @($timerange1, $timerange2) -Complement

$afterHoursCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId


$afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id

$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas


from December 24 to December 26. Please call back later."
$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic
$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption)
$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu
$christmasMenu

$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017"


$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr)

$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId


$christmasSchedule.Id -CallFlowId $christmasCallFlow.Id

$aa = New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -


CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations
@($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -Language "en-US" -TimeZoneId "UTC" -
Operator $operatorEntity

This example creates a new AA named Main auto attendant that has the following properties:
It sets a default call flow.
It sets an after-hours call flow.
It sets a call flow for Christmas holiday.
It enables voice response.
The default language is en-US.
The time zone is set to UTC.
-------------------------- Example 3 --------------------------

# Create Christmas Schedule


$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017"
$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr)

# Create First Auto Attendant


$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso Customer Support!"
$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign."
$dcfMenu=New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -EnableDialByName
$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu
$dcfMenu

$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas


from December 24 to December 26. Please call back later."
$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic
$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption)
$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu
$christmasMenu

$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId


$christmasSchedule.Id -CallFlowId $christmasCallFlow.Id

New-CsAutoAttendant -Name "Customer Support Auto Attendant" -DefaultCallFlow $defaultCallFlow -


EnableVoiceResponse -CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations
@($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -Language "en-US" -TimeZoneId "UTC"

# Id : a65b3434-05a1-48ed-883d-e3ca35a60af8
# TenantId : f6b89083-a2f8-55cc-9f62-33b73af44164
# Name : Customer Support Auto Attendant
# LanguageId : en-US
# VoiceId : Female
# DefaultCallFlow : Default call flow
# Operator :
# TimeZoneId : UTC
# VoiceResponseEnabled : True
# CallFlows : Christmas
# Schedules : Christmas
# CallHandlingAssociations : Holiday(1)
# Status : Successful
# DialByNameResourceId : caddaea5-c001-5a09-b997-9d3a33e834f2
# DirectoryLookupScope :
# ApplicationInstances :

# Create Second Auto Attendant


$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso Store!"
$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign."
$dcfMenu=New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -EnableDialByName
$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu
$dcfMenu

$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas


from December 24 to December 26. Please call back later."
$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic
$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption)
$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu
$christmasMenu

$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId


$christmasSchedule.Id -CallFlowId $christmasCallFlow.Id

New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -


CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations
@($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -Language "en-US" -TimeZoneId "UTC"

# Id : 236450c4-9f1e-4c19-80eb-d68819d36a15
# TenantId : f6b89083-a2f8-55cc-9f62-33b73af44164
# Name : Main auto attendant
# LanguageId : en-US
# VoiceId : Female
# DefaultCallFlow : Default call flow
# Operator :
# TimeZoneId : UTC
# VoiceResponseEnabled : True
# CallFlows : Christmas
# Schedules : Christmas
# CallHandlingAssociations : Holiday(1)
# Status : Successful
# DialByNameResourceId : 5abfa626-8f80-54ff-97eb-03c2aadcc329
# DirectoryLookupScope :
# ApplicationInstances :

# Show the auto attendants associated with this holiday schedule:


Get-CsOnlineSchedule $christmasSchedule.Id

# Id : 578745b2-1f94-4a38-844c-6bf6996463ee
# Name : Christmas
# Type : Fixed
# WeeklyRecurrentSchedule :
# FixedSchedule : 24/12/2017 00:00 - 26/12/2017 00:00
# AssociatedConfigurationIds : a65b3434-05a1-48ed-883d-e3ca35a60af8, 236450c4-9f1e-4c19-80eb-d68819d36a15

This example creates two new AAs named Main auto attendant and Customer Support Auto Attendant. Both AAs
share the same Christmas holiday schedule. This was done by reusing the Schedule ID of the Christmas holiday
when creating the call handling associations for those two AAs using New -
CsAutoAttendantCallHandlingAssociation cmdlet.
We can see when we ran the Get-CsOnlineSchedule cmdlet at the end, to get the Christmas Holiday schedule
information, that the configuration IDs for the newly created AAs have been added to the
AssociatedConfigurationIds properties of that schedule. This means any updates made to this schedule would
reflect in both associated AAs.
Removing an association between an AA and a schedule is as simple as deleting the CallHandlingAssociation of
that schedule in the AA you want to modify. Please refer to Set-CsAutoAttendant cmdlet documentation for
examples on how to do that.

Parameters
-CallFlows
The CallFlows parameter represents call flows, which are required if they are referenced in the
CallHandlingAssociations parameter.
You can create CallFlows by using the New-CsAutoAttendantCallFlow cmdlet.

Type: System.Collections.Generic.List
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallHandlingAssociations
The CallHandlingAssociations parameter represents the call handling associations. The AA service uses call
handling associations to determine which call flow to execute when a specific schedule is in effect.
You can create CallHandlingAssociations by using the New-CsAutoAttendantCallHandlingAssociation cmdlet.
Type: System.Collections.Generic.List
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultCallFlow
The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during
business hours).
You can create the DefaultCallFlow by using the New-CsAutoAttendantCallFlow cmdlet.

Type: Object
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableVoiceResponse
The EnableVoiceResponse parameter indicates whether voice response for AA is enabled.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExclusionScope
Specifies the users to which call transfers are not allowed through directory lookup feature. If not specified, no user
in the organization is excluded from directory lookup.
Dial scopes can be created by using the New-CsAutoAttendantDialScope cmdlet.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InclusionScope
Specifies the users to which call transfers are allowed through directory lookup feature. If not specified, all users in
the organization can be reached through directory lookup.
Dial scopes can be created by using the New-CsAutoAttendantDialScope cmdlet.
Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LanguageId
The LanguageId parameter is the language that is used to read text-to-speech (TTS ) prompts.
You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The Name parameter is a friendly name that is assigned to the AA.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Operator
The Operator parameter represents the SIP address or PSTN number of the operator.
You can create callable entities by using the New-CsAutoAttendantCallableEntity cmdlet.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TimeZoneId
The TimeZoneId parameter represents the AA time zone. All schedules are evaluated based on this time zone.
You can query the supported timezones using the Get-CsAutoAttendantSupportedTimeZone cmdlet.
Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VoiceId
The VoiceId parameter represents the voice that is used to read text-to-speech (TTS ) prompts.
You can query the supported voices by using the Get-CsAutoAttendantSupportedLanguage cmdlet. You can determine
the default voice for a language by issuing the following command:
$language = Get-CsAutoAttendantSupportedLanguage -Identity "en-US"` $defaultVoice =
$language.Voices[0].Gender

Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.OAA.Models.AutoAttendant

Related Links
New -CsOnlineApplicationInstanceAssociation
Get-CsAutoAttendant
Get-CsAutoAttendantStatus
Get-CsAutoAttendantSupportedLanguage
Get-CsAutoAttendantSupportedTimeZone
New -CsAutoAttendantCallableEntity
New -CsAutoAttendantCallFlow
New -CsAutoAttendantCallHandlingAssociation
New -CsOnlineSchedule
Remove-CsAutoAttendant
Set-CsAutoAttendant
Update-CsAutoAttendant
minutes to read • Edit Online

New-CsAutoAttendantCallableEntity
In ths Article

The New -CsAutoAttendantCallableEntity cmdlet lets you create a callable entity.

Syntax
New-CsAutoAttendantCallableEntity -Identity <String> -Type <User | ApplicationEndpoint> [-Tenant <Guid>]
[<CommonParameters>]

Description
The New -CsAutoAttendantCallableEntity cmdlet lets you create a callable entity for use with call transfers from the
Auto Attendant service. Callable entities can be created using either Object ID or TEL URIs and can refer to any of
the following entities:
User
ApplicationEndpoint

Examples
-------------------------- Example 1 --------------------------

$callableEntity = New-CsAutoAttendantCallableEntity -Identity "9bad1a25-3203-5207-b34d-1bd933b867a5" -Type User

This example creates a user callable entity.


-------------------------- Example 2 --------------------------

$callableEntity = New-CsAutoAttendantCallableEntity -Identity "tel:+1234567890" -Type ApplicationEndpoint

This example creates an application endpoint callable entity.


-------------------------- Example 3 --------------------------

$operatorObjectId = (Get-CsOnlineUser operator@contoso.com).ObjectId


$callableEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User

This example gets a user object using Get-CsOnlineUser cmdlet. We then use the AAD ObjectId of that user object
to create a user callable entity.
-------------------------- Example 4 --------------------------
$callableEntityId = (Find-CsOnlineApplicationInstance -SearchQuery "Main Auto Attendant") -MaxResults 1 |
Select-Object -Property Id
$callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityId -Type ApplicationEndpoint

This example gets an application instance by name using Find-CsOnlineApplicationInstance cmdlet. We then use
the AAD ObjectId of that application instance to create an application endpoint callable entity.

Parameters
-Identity
The Identity parameter represents the ID of the callable entity; this can be either a Object ID or a TEL URI.
Only the Object IDs of users that have Enterprise Voice enabled are supported.
Only PSTN numbers that are acquired and assigned through Skype for Business Online are supported.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
The Type parameter represents the type of the callable entity, which can be any of the following:
User
ApplicationEndpoint

Type: Object
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity

Related Links
Get-CsOnlineUser
Find-CsOnlineApplicationInstance
minutes to read • Edit Online

New-CsAutoAttendantCallFlow
In ths Article

Use the New -CsAutoAttendantCallFlow cmdlet to create a new call flow.

Syntax
New-CsAutoAttendantCallFlow -Name <String> -Menu <Object> [-Greetings <List>] [-Tenant <Guid>]
[<CommonParameters>]

Description
The New -CsAutoAttendantCallFlow cmdlet creates a new call flow for use with the Auto Attendant (AA) service.
The AA service uses the call flow to handle inbound calls by playing a greeting (if present), and provide callers with
actions through a menu.

Examples
-------------------------- Example 1 --------------------------

$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign."
$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -EnableDialByName
$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu

This example creates a new call flow that renders the "Default Menu" menu.
-------------------------- Example 2 --------------------------

$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign."
$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName
$greeting = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!"
$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -Greetings $greeting

This example creates a new call flow that plays a greeting before rendering the "Default Menu" menu.

Parameters
-Greetings
If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow’s
menu is rendered.
You can create prompts by using the New-CsAutoAttendantPrompt cmdlet.
Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Menu
The Menu parameter identifies the menu to render when the call flow is executed.
You can create a new menu by using the New-CsAutoAttendantMenu cmdlet.

Type: System.Object
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The Name parameter represents a unique friendly name for the call flow.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow

Related Links
New -CsAutoAttendantMenu
New -CsAutoAttendantPrompt
minutes to read • Edit Online

New-CsAutoAttendantCallHandlingAssociation
In ths Article

Use the New -CsAutoAttendantCallHandlingAssociation cmdlet to create a new call handling association.

Syntax
New-CsAutoAttendantCallHandlingAssociation -CallFlowId <String> -ScheduleId <String> -Type <AfterHours |
Holiday> [-Disable] [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsAutoAttendantCallHandlingAssociation cmdlet creates a new call handling association to be used with
the Auto Attendant (AA) service. The OAA service uses call handling associations to determine which call flow to
execute when a specific schedule is in effect.

Examples
-------------------------- Example 1 --------------------------

$tr = New-CsOnlineTimeRange -Start 09:00 -End 17:00


$schedule = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr)
$scheduleId = $schedule.Id

$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign."
$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName
$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu
$callFlowId = $callFlow.Id

$callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $scheduleId


-CallFlowId $callFlowId

This example creates the following


a new after-hours schedule
a new after-hours call flow
a new after-hours call handling association
-------------------------- Example 2 --------------------------
$tr = New-CsOnlineTimeRange -Start 09:00 -End 17:00
$schedule = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr)
$scheduleId = $schedule.Id

$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign."
$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName
$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu
$callFlowId = $callFlow.Id

$disabledCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId


$scheduleId -CallFlowId $callFlowId -Disable

This example creates the following


a new after-hours schedule
a new after-hours call flow
a disabled after-hours call handling association
-------------------------- Example 3 --------------------------

$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017"


$schedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr)
$scheduleId = $schedule.Id

$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "We are closed for Christmas. Please call back
later."
$menuOption = New-CsAutoAttendantMenuOption -DtmfResponse Automatic -Action DisconnectCall
$menu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($menuOption)
$callFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($greeting) -Menu $menu
$callFlowId = $callFlow.Id

$callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $scheduleId -


CallFlowId $callFlowId

This example creates the following


a new holiday schedule
a new holiday call flow
a new holiday call handling association

Parameters
-CallFlowId
The CallFlowId parameter represents the call flow to be associated with the schedule.
You can create a call flow by using the New-CsAutoAttendantCallFlow cmdlet.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Disable
The Disable parameter, if set, establishes that the call handling association is created as disabled. This parameter
can only be used when the Type parameter is set to AfterHours.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ScheduleId
The ScheduleId parameter represents the schedule to be associated with the call flow.
You can create a schedule by using the New-CsOnlineSchedule cmdlet. Additionally, you can use
Get-CsOnlineSchedule cmdlet to get the schedules configured for your organization.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
The Type parameter represents the type of the call handling association. Currently, only the following types are
supported:
AfterHours
Holiday

Type: Object
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.OAA.Models.CallHandlingAssociation

Related Links
New -CsAutoAttendantCallFlow
New -CsOnlineSchedule
`Get-CsOnlineSchedule`
minutes to read • Edit Online

New-CsAutoAttendantDialScope
In ths Article

Use New -CsAutoAttendantDialScope cmdlet to create dial-scopes for use with Auto Attendant (AA) service.

Syntax
New-CsAutoAttendantDialScope -GroupScope -GroupIds <List> [-Tenant <Guid>] [<CommonParameters>]

Description
This cmdlet creates a new dial-scope to be used with Auto Attendant (AA) service. AAs use dial-scopes to restrict
the scope of call transfers that can be made through directory lookup feature.
NOTE
The returned dial-scope model composes a member for the underlying type/implementation, e.g. in case of the
group-based dial scope, in order to modify its Group IDs, you can access them through
DialScope.GroupScope.GroupIds .

Examples
-------------------------- Example 1 --------------------------

$groupIds = @("00000000-0000-0000-0000-000000000000")
$dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds

In Example 1, the New -CsAutoAttendantDialScope cmdlet is used to create a dial-scope with a group whose id is
00000000-0000-0000-0000-000000000000.
-------------------------- Example 2 --------------------------

$groupIds = Find-CsGroup -SearchQuery "Contoso Sales" | % { $_.Id }


$dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds

In Example 2, we use the Find-CsGroup cmdlet to find groups with name "Contoso Sales", and then use the
identities of those groups to create an auto attendant dial scope using the New -CsAutoAttendantDialScope cmdlet.

Parameters
-GroupIds
Refers to the IDs of the groups that are to be included in the dial-scope.
Group IDs can be obtained by using the Find-CsGroup cmdlet.
Type: System.Collections.Generic.List
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GroupScope
Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.OAA.Models.DialScope

Related Links
Find-CsGroup
minutes to read • Edit Online

New-CsAutoAttendantMenu
In ths Article

The New -CsAutoAttendantMenu cmdlet creates a new menu.

Syntax
New-CsAutoAttendantMenu -Name <String> [-MenuOptions <List>] [-Prompts <List>] [-EnableDialByName] [-Tenant
<Guid>] [<CommonParameters>]

Description
The New -CsAutoAttendantMenu cmdlet creates a new menu for the Auto Attendant (AA) service. The OAA service
uses menus to provide callers with choices, and then takes action based on the selection.

Examples
-------------------------- Example 1 --------------------------

$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign."
$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -EnableDialByName

This example creates a new menu that allows the caller to reach a target by name.
-------------------------- Example 2 --------------------------

$menuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0


$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now,
followed by the pound sign. For operator, press zero."
$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -MenuOptions @($menuOptionZero) -
EnableDialByName

This example creates a new menu that allows the caller to reach a target by name or the operator by pressing the 0
key.

Parameters
-EnableDialByName
The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the
party.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MenuOptions
The MenuOptions parameter is a list of menu options for this menu. These menu options specify what action to
take when the user sends a particular input.
You can create menu options by using the New -CsAutoAttendantMenuOption cmdlet.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The Name parameter represents a friendly name for the menu.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Prompts
The Prompts parameter reflects the prompts to play when the menu is activated.
You can create new prompts by using the New -CsAutoAttendantPrompt cmdlet.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.Menu

Related Links
New -CsAutoAttendantMenuOption
New -CsAutoAttendantPrompt
minutes to read • Edit Online

New-CsAutoAttendantMenuOption
In ths Article

Use the New -CsAutoAttendantMenuOption cmdlet to create a new menu option.

Syntax
New-CsAutoAttendantMenuOption -Action <DisconnectCall | TransferCallToOperator | TransferCallToTarget> -
DtmfResponse <Tone0 | Tone1 | Tone2 | Tone3 | Tone4 | Tone5 | Tone6 | Tone7 | Tone8 | Tone9 | Automatic> [-
VoiceResponses <Object>] [-CallTarget <Object>] [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsAutoAttendantMenuOption cmdlet creates a new menu option for the Auto Attendant (AA) service.
The AA service uses the menu options to respond to a caller with the appropriate action.

Examples
-------------------------- Example 1 --------------------------

$menuOption = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0

This example creates a menu option to call the operator when the 0 key is pressed.
-------------------------- Example 2 --------------------------

$troubleShootObjectId = (Get-CsOnlineUser troubleShoot@contoso.com).ObjectId


$troubleShootEntity = New-CsAutoAttendantCallableEntity -Identity $troubleShootObjectId -Type
AApplicationEndpoint
$menuOption = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone1 -VoiceResponses
"Sales" -CallTarget $troubleShootEntity

This example creates a menu option to transfer the call to an application endpoint when the caller speaks the word
"Sales" or presses the 1 key.

Parameters
-Action
The Action parameter represents the action to be taken when the menu option is activated. The Action must be set
to one of the following values:
DisconnectCall - The call is disconnected.
TransferCallToOperator - the call is transferred to the operator.
TransferCallToTarget - The call is transferred to the menu option’s call target.
Type: Object
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallTarget
The CallTarget parameter represents the target for call transfer after the menu option is selected.
CallTarget is required if the action of the menu option is TransferCallToTarget.
Use the New -CsAutoAttendantCallableEntity cmdlet to create new callable entities.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DtmfResponse
The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option.
The DtmfResponse must be set to one of the following values:
Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9.
Automatic - The action is executed without user response.

Type: Object
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VoiceResponses
The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are
enabled for the auto attendant.
Voice responses are currently limited to one voice response per menu option.
Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption

Related Links
New -CsAutoAttendantCallableEntity
minutes to read • Edit Online

New-CsAutoAttendantPrompt
In ths Article

Use the New -CsAutoAttendantPrompt cmdlet to create a new prompt.

Syntax
New-CsAutoAttendantPrompt -AudioFilePrompt <Object> [-Tenant <Guid>] [<CommonParameters>]

New-CsAutoAttendantPrompt -TextToSpeechPrompt <String> [-Tenant <Guid>] [<CommonParameters>]

New-CsAutoAttendantPrompt -ActiveType <None | TextToSpeech | AudioFile> -AudioFilePrompt <Object> -


TextToSpeechPrompt <String> [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsAutoAttendantPrompt cmdlet creates a new prompt for the Auto Attendant (AA) service. A prompt is
either an audio file that is played, or text that is read aloud to give callers additional information. A prompt can be
disabled by setting the ActiveType to None.

Examples
-------------------------- Example 1 --------------------------

$ttsPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!"

This example creates a new prompt that reads the supplied text.
-------------------------- Example 2 --------------------------

$content = Get-Content "C:\Media\Welcome.wav" -Encoding byte -ReadCount 0


$audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "hello.wav" -Content $content
$audioFilePrompt = New-CsAutoAttendantPrompt -AudioFilePrompt $audioFile

This example creates a new prompt that plays the selected audio file.
-------------------------- Example 3 --------------------------

$content = Get-Content "C:\Media\Welcome.wav" -Encoding byte -ReadCount 0


$audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "hello.wav" -Content $content
$dualPrompt = New-CsAutoAttendantPrompt -ActiveType AudioFile -AudioFilePrompt $audioFile -TextToSpeechPrompt
"Welcome to Contoso!"

This example creates a new prompt that has both audio file and text-to-speech data, but will play the audio file
when the prompt is activated (rendered).

Parameters
-ActiveType
PARAMVALUE: None | TextToSpeech | AudioFile
The ActiveType parameter identifies the active type (modality) of the AA prompt. It can be set to None (the prompt
is disabled), TextToSpeech (text-to-speech is played when the prompt is rendered) or AudioFile (audio file data is
played when the prompt is rendered).
This is explicitly required if both Audio File and TTS prompts are specified. Otherwise, it is inferred.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioFilePrompt
The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered).
This parameter is required when audio file prompts are being created. You can create audio files by using the
Import-CsOnlineAudioFile cmdlet.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TextToSpeechPrompt
The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS ) prompt that is to be read when the prompt
is activated.
This parameter is required when text to speech prompts are being created.

Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt

Related Links
Import-CsOnlineAudioFile
minutes to read • Edit Online

New-CsAutodiscoverConfiguration
In ths Article

Creates a new collection of Autodiscover configuration settings at the site scope. The Autodiscover service provides
a way for client applications such as Microsoft Lync Mobile to locate key resources such as a user's home pool or
the URL for joining a dial-in conference. This cmdlet was introduced in the cumulative update for Lync Server 2010:
November 2011.

Syntax
New-CsAutodiscoverConfiguration [-Identity] <XdsIdentity> [-Confirm] [-ExternalSipClientAccessFqdn <String>]
[-ExternalSipClientAccessPort <UInt32>] [-Force] [-InMemory] [-WebLinks <PSListModifier>] [-WhatIf]
[-EnableCertificateProvisioningServiceUrl <Boolean>] [<CommonParameters>]

Description
For client applications to make the most effective use of Skype for Business Server those applications need to know
the location of key Skype for Business Server components. For example, authenticated users must be able to locate
their home pool; after all, they can only be authenticated by that home pool. Likewise, unauthenticated users must
be able to do such things as locate the URL used for joining a conference.
If all your users logged on from behind the organization's firewall discovering these locations would be a relatively
simple task. However, this relatively simple task gets more and more complicated as users access the system from
external locations using applications like Microsoft Lync Mobile.
This is especially true in split-domain scenarios, scenarios in which some of an organization's users have accounts
on the on-premises version of Skype for Business Server while other users have accounts on Skype for Business
Online. In cases such as this, user accounts might be located in different Active Directory forests. That can pose a
problem: for example, if a US -based user logs on from Europe the system must be able to recognize his or her
forest and then refer the logon request to the proper pool.
The Autodiscover service was introduced in the cumulative update for Lync Server: November 2011 in order to
address these issues. When a client application attempts to access Skype for Business Server, the Autodiscover
service parses the client SIP address and then redirects that request to the appropriate pool. Client applications
connect to the Autodiscover service by sending an HTTP request to an Autodiscover URL; these URLs must be
configured by administrators in order for the Autodiscover service to work. (Note that, in addition to configuring
URLs, administrators must also create DNS records that correspond to these URLs.)
Autodiscover URLs are assigned to Autodiscover configuration settings; in turn, these settings can be applied to the
global scope or to the site scope. When you install Skype for Business Server a global collection of settings will be
created for you. (However, no Autodiscover URLs will be assigned to that collection.) If a single collection of
Autodiscover settings will not fill your needs, then you can use the New -CsAutoDiscoverConfiguration cmdlet to
create additional configuration settings at the site scope.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsAutoDiscoverConfiguration -Identity "site:Redmond"

The command shown in Example 1 creates a new collection of Autodiscover configuration settings for the
Redmond site. Because the WebLinks parameter was not included, these settings will not contain any Autodiscover
URLs.
-------------------------- EXAMPLE 2 --------------------------

$Link1 = New-CsWebLink -Token "Fabrikam" -Href "http://LyncDiscover.fabrikam.com"

$Link2 = New-CsWebLink -Token "Fabrikam" -Href "http://LyncDiscoverInternal.fabrikam.com"

New-CsAutoDiscoverConfiguration -Identity "site:Redmond" -WebLinks @{Add=$Link1,$Link2}

The commands shown in Example 2 create a new collection of Autodiscover configuration settings for the
Redmond site and assign those new settings a pair of Autodiscover URLs: http://LyncDiscover.fabrikam.com and
http://LyncDiscoverInternal.fabrikam.com. In order to carry out this task, the first two commands use the New -
CsWebLink cmdlet to create the two Autodiscover URLs; the newly-created URLs are then stored in variables
named $Link1 and $Link2. After the two URLs are created, the third command uses the New -
CsAutoDiscoverConfiguration cmdlet to create the new Autodiscover configuration settings. In order to assign the
two URLs to these settings, the WebLinks parameter is included along with the parameter value
@{Add=$Link1,$Link2}. That syntax causes the values stored in the variables $Link1 and $Link2 to be added to the
WebLinks property.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCertificateProvisioningServiceUrl
When set to True (the default value), the Certificate Provisioning Service URL is included in Autodiscover Service
responses.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalSipClientAccessFqdn
Fully qualified domain name of the server used for external client access.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalSipClientAccessPort
Port used for eternal client access.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of Autodiscover configuration settings to be modified. To create a collection
configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of a command called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling the Set-CsAutoDiscoverConfiguration cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WebLinks
Collection of Autodiscover URLs. These URLs must be created by using the New -CsWebLink cmdlet.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
New -CsAutoDiscoverConfiguration does not accept pipelined input.

Inputs
The New -CsAutoDiscoverConfiguration cmdlet does not accept pipelined input.

Outputs
Creates new instances of the
Microsoft.Rtc.Management.WriteableConfig.Settings.AutoDiscoverConfiguration.AutoDiscoverConfiguration
object.
minutes to read • Edit Online

New-CsAVEdgeConfiguration
In ths Article

Creates a new collection of configuration settings for computers running the A/V Edge service (these computers
are also known as A/V Edge servers). An A/V Edge server enables internal users to share audio and video data with
external users (that is, users who are not logged on to your internal network). This cmdlet was introduced in Lync
Server 2010.

Syntax
New-CsAVEdgeConfiguration [-Identity] <XdsIdentity> [-MaxTokenLifetime <TimeSpan>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [-MaxBandwidthPerPortKb <UInt32>] [-MaxBandwidthPerUserKb <UInt32>] [<CommonParameters>]

Description
An A/V Edge server provides a way for audio and video traffic to be exchanged across an organization's firewall.
Among other things, this enables users to use Skype for Business Server across the Internet, and then exchange
audio and video data with users who have logged onto the system from inside the firewall. Edge Server
configuration settings can be assigned at the global scope, the site scope, and the service scope. The A/V Edge
configuration settings enable administrators to manage the amount of time that user authentication is valid before
it must be renewed, and to limit the amount of bandwidth that can be used by a single user or a single port.
The New -CsAVEdgeConfiguration cmdlet enables you to create new collections of A/V Edge configuration settings
at either the site or the service scope. As noted, A/V Edge settings can also be configured at the global scope.
However, you cannot create a new collection at the global scope.
Note that any given site or service can host, at most, a single collection of A/V Edge configuration settings. If the
Redmond site already hosts a collection of A/V Edge settings, you cannot create a new collection with the Identity
site:Redmond.
Unless instructed by Microsoft support personnel, it is recommended that you do not change the default A/V Edge
configuration settings. Because of that, you will probably not need to create a new collection of settings for a site or
service.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsAVEdgeConfiguration -Identity site:Redmond -MaxTokenLifetime "04:00:00"

The command shown in Example 1 creates a new collection of A/V Edge configuration settings for the Redmond
site. In this example, the MaxTokenLifetime property is set to 4 hours (04 hours : 00 minutes : 00 seconds).
-------------------------- EXAMPLE 2 --------------------------
$x = New-CsAVEdgeConfiguration -Identity site:Redmond -InMemory

$x.MaxTokenLifetime = "04:00:00"

Set-CsAVEdgeConfiguration -Instance $x

Example 2 demonstrates how you can create a new collection of A/V Edge configuration settings in memory, and
then later transform those virtual settings into an actual collection of A/V Edge settings. To do this, the first
command in the example creates a new collection of settings for the Redmond site; the InMemory parameter is
added to ensure that these settings are created in memory only and are not immediately applied to the Redmond
site. (Because these settings exist in memory only, they must be stored in a variable, in this case, a variable named
$x.)
In the second command, the value of the MaxTokenLifetime property is set to 4 hours (04 hours : 00 minutes : 00
seconds). The third command then uses the Set-CsAVEdgeConfiguration cmdlet to apply the settings stored in $x
to the Redmond site.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of A/V Edge configuration settings to be created. To create a collection of
settings to be applied at the site scope, use syntax similar to this: -Identity site:Redmond. (Note that this command
will fail if a collection of A/V Edge configuration settings have already been applied to the Redmond site.) Settings
configured at the service scope should use syntax similar to this:
-Identity service:EdgeServer:atl-cs-001.litwareinc.com.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxBandwidthPerPortKb
Indicates the maximum amount of bandwidth (in kilobits per second) that can be allocated to a single port. The
maximum bandwidth can be set to any integer value between 1 and 4294967296 (4096 gigabits) per second; the
default value is 3000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxBandwidthPerUserKb
Indicates the maximum amount of bandwidth (in kilobits per second) that can be allocated to any one user. The
maximum bandwidth can be set to any integer value between 1 and 4294967296 (4096 gigabits) per second; the
default value is 10000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxTokenLifetime
The maximum amount of time that an authentication token can be used before it expires and must be renewed.
Token lifetimes are expressed using the following format: Days.Hours:Minutes:Seconds. For example, 13 days must
be expressed like this, with a period (.) following the number of days, and colons (:) used to separate the hours,
minutes, and seconds:
13.00:00:00
The default value of 8 hours must be expressed like this:
08:00:00
The minimum allowed token lifetime is 1 minute (00:01:00); the maximum allowed lifetime is 180 days
(180.00:00:00).
Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsAVEdgeConfiguration cmdlet does not accept pipelined input.

Outputs
Creates instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings object.

Related Links
Get-CsAVEdgeConfiguration
Remove-CsAVEdgeConfiguration
Set-CsAVEdgeConfiguration
minutes to read • Edit Online

New-CsBandwidthPolicyServiceConfiguration
In ths Article

Creates a new bandwidth policy service configuration. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsBandwidthPolicyServiceConfiguration [-Identity] <XdsIdentity> [-EnableLogging <Boolean>]
[-LogCleanUpInterval <TimeSpan>] [-MaxLogFileSizeMb <UInt32>] [-MaxTokenLifetime <TimeSpan>] [-Force]
[-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call admission control (CAC ) is a way of determining whether to allow real-time communications sessions, such as
voice or video calls, to be established based on bandwidth constraints. Within the Skype for Business Server
implementation of CAC, regions, sites, and subnets are defined within a network along with the relationships and links
between those entities in order to place bandwidth constraints between them. Bandwidth Policy service is the
component that performs CAC functionality in the Skype for Business Server deployment, enabling the decision as to
whether sufficient bandwidth exists for a call to be established. This cmdlet configures a new bandwidth policy service at
the site level.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsBandwidthPolicyServiceConfiguration -Identity site:Redmond

This example creates a new bandwidth policy service configuration at the site Redmond ( -Identity site:Redmond ). No
other parameters are specified, so the defaults are used for all configuration values.
-------------------------- EXAMPLE 2 --------------------------

New-CsBandwidthPolicyServiceConfiguration -Identity site:Dublin -EnableLogging $True -LogCleanupInterval 30.00:00:00

In this example we again create a new bandwidth policy service configuration, this time for the Dublin site (
-Identity site:Dublin ). For this site, rather than accepting the default values, we want to enable logging and set the
number of days that pass before logs are cleaned up to 30 days. We do this by passing a value of True ($True) to the
EnableLogging parameter, and then passing a value of 30.00:00:00 to the parameter LogCleanupInterval. The
LogCleanupInterval value is a TimeSpan object, which is in the format dd.hh:mm:ss, where d is days, h is hours, m is
minutes, and s is seconds.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableLogging
Set this parameter to True to generate CAC failure and link status logs related to the bandwidth policy service.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier that contains the scope and name of the configuration. This configuration can be created only at the
site scope, so the Identity will be in the following format: site:<site name>, where <site name> is the name of the site to
which the configuration applies.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output of
this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and
then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogCleanUpInterval
The period of time after which CAC failure and link status logs will be removed.
This value must be within the range 1 day through 60 days. The value must be entered in the format dd.hh:mm:ss,
where d is days, h is hours, m is minutes, and s is seconds.
Default: 10 days (10.00:00:00)

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxLogFileSizeMb
The maximum size the log file is allowed to reach. The value for this parameter must be a positive number; it specifies
the file size in megabytes.
Default: 3 (MB )

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxTokenLifetime
The maximum amount of time the token issued by the Bandwidth Policy Authentication service will exist.
This value must be in the range 1 hour through 24 hours. The value must be entered in the format dd.hh:mm:ss, where
d is days, h is hours, m is minutes, and s is seconds.
Default: 8 hours (08:00:00)

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicyServiceConfiguration.

Related Links
Remove-CsBandwidthPolicyServiceConfiguration
Set-CsBandwidthPolicyServiceConfiguration
Get-CsBandwidthPolicyServiceConfiguration
minutes to read • Edit Online

New-CsBlockedDomain
In ths Article

Adds a new domain to the list of domains blocked for federation. By definition, your users are not allowed to use
Skype for Business Server applications to communicate with people from the blocked domain; for example, users
cannot use Skype for Business to exchange instant messages with anyone with a SIP account in a domain that
appears on the blocked list. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsBlockedDomain [-Identity] <XdsGlobalRelativeIdentity> [-Comment <String>] [-Force] [-InMemory] [-WhatIf]
[-Confirm] [<CommonParameters>]

New-CsBlockedDomain [-Comment <String>] -Domain <String> [-Force] [-InMemory] [-WhatIf] [-Confirm]


[<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another by using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and, 3) federation between your organization and a third-party hosting provider.
Setting up direct federation with another organization involves several tasks. To begin with, you must enable your
servers running the Skype for Business Server Access Edge service to allow federation. In addition, the other
organization must enable federation with you; federation cannot be established unless both parties agree to the
relationship.
To establish a federated relationship you might also need to manage two federation-related lists: the allowed list
and the blocked list. The allowed list represents the organizations you have chosen to federate with; if a domain
appears on the allowed list then (depending on your configuration settings) your users will be able to exchange
instant messages and presence information with users who have accounts in that federated domain. Conversely,
the blocked list represents domains that users are expressly forbidden from federating with; for example, messages
sent from a blocked domain will automatically be rejected by Skype for Business Server.
The New -CsBlockedDomain cmdlet enables you to add a domain to the list of blocked domains.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsBlockedDomain -Identity "fabrikam.com" -Comment "Blocked per Ken Myer."


In Example 1, the domain fabrikam.com is added to the list of blocked domains. To do this, the New -
CsBlockedDomain cmdlet is called, along with the Identity parameter, which is assigned the name of the domain to
be blocked. In addition, the Comment parameter is included in order to add a comment to the blocked domain.
Note that this command will fail if fabrikam.com is already on the blocked list or on the allowed list.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsBlockedDomain -Identity "fabrikam.com" -InMemory

$x.Comment = "Blocked per Ken Myer."

Set-CsBlockedDomain -Instance $x

Example 2 demonstrates how you can use the InMemory parameter to create a new blocked domain that initially
exists only in memory. After you modify the property values of this in-memory-only domain you can then call the
Set-CsBlockedDomain cmdlet to add the domain to the blocked list.
To perform this task, the first line in the command uses the New -CsBlockedDomain cmdlet and the InMemory
parameter to create a blocked domain with the Identity fabrikam.com. Upon creation, this virtual domain is stored
in the variable $x.
In the second line, the Comment property of the virtual domain is modified. After that, line 3 uses the Set-
CsBlockedDomain cmdlet to add the virtual domain to the blocked list. Without line 3, the virtual domain would
exist only in memory and would never be added to the blocked list. Instead, the virtual domain will disappear as
soon as you end your Windows PowerShell session or delete the variable $x.

Parameters
-Comment
Optional string value that provides additional information about the blocked domain. For example, you might add a
Comment that explains why the domain has been blocked.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
FQDN (for example, fabrikam.com) of the domain to be added to the blocked list. You can use either the Identity or
the Domain parameter (but not both) in order to specify the domain name. If you use Identity, the Domain property
will be set to the same value that is assigned to Identity. If you use Domain, the Identity property will be set to the
same value that is assigned to Domain.
Note that Domains must be unique: if the specified domain already exists on either the blocked or the allowed list,
the command will fail.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the domain to be added to the blocked list; for example, "fabrikam.com".
You can use either the Identity or the Domain parameter (but not both) in order to specify the domain name. If you
use Identity, the Domain property will be set to the same value assigned to Identity. If you use Domain, the Identity
property will be set to the same value that is assigned to Domain.
Note that Identities must be unique: if the specified domain already exists on either the blocked or the allowed list,
the command will fail.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsBlockedDomain cmdlet does not accept pipelined input.

Outputs
Creates instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain object.

Related Links
Get-CsBlockedDomain
Remove-CsBlockedDomain
Set-CsAccessEdgeConfiguration
Set-CsBlockedDomain
minutes to read • Edit Online

New-CsCallerIdPolicy
In ths Article

Provide the topic introduction here.

Syntax
New-CsCallerIdPolicy [-Tenant <Guid>] [-Description <String>] [-Name <String>]
[-EnableUserOverride <Boolean>] [-ServiceNumber <String>] [-CallerIDSubstitute <CallerIDSubstitute>]
[-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallerIDSubstitute
PARAMVALUE: Anonymous | Service | LineUri

Type: CallerIDSubstitute
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableUserOverride
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsIdentity

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServiceNumber
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

New-CsCallingLineIdentity
In ths Article

Use the New -CsCallingLineIdentity cmdlet to create a new Caller ID policy for your organization.

Syntax
New-CsCallingLineIdentity [-Tenant <Guid>] [-Description <String>] [-EnableUserOverride <Boolean>]
[-ServiceNumber <String>] [-CallingIDSubstitute <CallingIDSubstituteType>]
[-BlockIncomingPstnCallerID <Boolean>] [-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
You can either change or block the Caller ID (also called a Calling Line ID ) for a user. By default, the Skype for
Business Online user's phone number can be seen when that user makes a call to a PSTN phone, or when a call
comes in. You can create a Caller ID policy to provide an alternate displayed number, or to block any number from
being displayed.
Note:
Identity must be unique.
ServiceNumber must be a valid Service Number in the Skype for Business Online online telephone number
inventory.
If CallerIdSubstitute is given as “Service”, then ServiceNumber cannot be empty.

Examples
-------------------------- Example 1 --------------------------

New-CsCallingLineIdentity -Identity Anonymous -Description "anonymous policy" -CallingIDSubstitute Anonymous -


EnableUserOverride $false

The following example creates a new Caller ID policy that sets the Caller ID to Anonymous.
-------------------------- Example 2 --------------------------

New-CsCallingLineIdentity -Identity "UKOrgAA" -CallingIdSubstitute "Service" -ServiceNumber "14258828080" -


EnableUserOverride $false -Verbose

The following example creates a new Caller ID policy that sets the Caller ID to a specified service number.
-------------------------- Example 3 --------------------------

New-CsCallingLineIdentity -Identity Anonymous -Description "anonymous policy" -CallingIDSubstitute Anonymous -


EnableUserOverride $false -BlockIncomingPstnCallerID $true
The following example creates a new Caller ID policy that blocks the incoming Caller ID.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BlockIncomingPstnCallerID
The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is
false.
The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True
and if this policy is assigned to a Lync user, then Caller ID for incoming calls is suppressed/anonymous.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallingIDSubstitute
PARAMVALUE: Anonymous | Service | LineUri
The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The default value is LineUri.

Type: CallingIDSubstituteType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
The Description parameter briefly describes the Caller ID policy.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableUserOverride
The EnableUserOverride switch lets the user override the Caller ID policy.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter identifies the Caller ID policy.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet’s matching Set-.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServiceNumber
The ServiceNumber parameter lets you add any valid service number for the CallingIdSubstitute.
Note: Do not add ‘+’ to the Service number. For example, if the Service number is +1425-xxx-xxxx then valid input
is 1425xxxxxxx

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None

Related Links
Get-CsCallingLineIdentity
Grant-CsCallingLineIdentity
Remove-CsCallingLineIdentity
Set-CsCallingLineIdentity
minutes to read • Edit Online

New-CsCallParkOrbit
In ths Article

Creates a new, named range of numbers assigned for parking calls within an organization. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsCallParkOrbit [-Identity] <XdsGlobalRelativeIdentity> [-NumberRangeStart] <String>
[-NumberRangeEnd] <String> [-CallParkService] <String> [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-Type <OrbitType>] [<CommonParameters>]

Description
Parking a call assigns a received phone call to a specific number for later retrieval. A call park orbit range is the set
of call park locations assigned to a specific Call Park service for this purpose. The New -CsCallParkOrbit cmdlet
defines the numbers for a call park orbit range and applies them to a specific service. Calls parked within the given
range will be parked on the specified Call Park service. You can create multiple call park orbits; each must have a
globally unique name and a unique range of numbers.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsCallParkOrbit -Identity "Redmond CPO 1" -NumberRangeStart 100 -NumberRangeEnd 199 -CallParkService
ApplicationServer:pool0.litwareinc.com

This example creates a new call park orbit named "Redmond CPO 1" on the Application Server with the service ID
ApplicationServer:pool0.litwareinc.com. The available number range for this call park orbit is 100 through 199.
-------------------------- EXAMPLE 2 --------------------------

New-CsCallParkOrbit -Identity "Redmond CPO 2" -NumberRangeStart "*1000" -NumberRangeEnd "*1999" -


CallParkService pool0.litwareinc.com

This example creates a new call park orbit named "Redmond CPO 2" on the Call Park application server with the
FQDN pool0.litwareinc.com. The available range for this call park orbit is *1000 through *1999.
-------------------------- EXAMPLE 3 --------------------------

New-CsCallParkOrbit -Identity "Redmond CPO 3" -NumberRangeStart "#1000" -NumberRangeEnd "#1999" -


CallParkService ApplicationServer:redmond.litwareinc.com

This example creates a new call park orbit range named "Redmond CPO 3" on the Call Park application server with
the service ID ApplicationServer:redmond.litwareinc.com. The available range for this call park orbit is #1000
through #1999.

Parameters
-CallParkService
The fully qualified domain name (FQDN ) or service ID of the Application service that hosts the Call Park
application. All calls parked to numbers within the range specified by the NumberRangeStart and
NumberRangeEnd parameters will be routed to this server or pool.

Type: String
Required: True
Position: 5
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The name of the call park orbit range. This name must be unique within the Skype for Business Server deployment.
This string can be any value, but should be something that allows for easy identification of the particular call park
orbit range. All call park orbit ranges are created with a global scope.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberRangeEnd
The last number in the range for this call park orbit. The value must be greater than or equal to the
NumberRangeStart. The value must also be the same length as the value of the NumberRangeStart. For example, if
NumberRangeStart is set to 100, NumberRangeEnd cannot be set to 1001. In addition, if the NumberRangeStart
begins with a * or #, then NumberRangeEnd must begin with the same character.
Valid values: Must match the regular expression string ([*|#]?[1-9]\d{0,7})|([1-9]\d{0,8}). This means that the value
must be a string beginning with either the character * or # or a number 1 through 9 (the first character cannot be a
zero). If the first character is * or # the following character must be a number 1 through 9 (it cannot be a zero).
Subsequent characters can be any number 0 through 9 up to seven additional characters. (For example, #6000,
*92000, and *95551212.) If the first character is not * or #, the first character must be a number 1 through 9 (it
cannot be zero), followed by up to eight characters, each a number 0 through 9. (For example:
915551212;41212;300)

Type: String
Required: True
Position: 4
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberRangeStart
The first number in the range for this call park orbit. The value must be less than or equal to the NumberRangeEnd.
The value must also be the same length as the value of the NumberRangeEnd.
Valid values: Must match the regular expression string ([*|#]?[1-9]\d{0,7})|([1-9]\d{0,8}). This means that the value
must be a string beginning with either the character * or # or a number 1 through 9 (the first character cannot be a
zero). If the first character is * or # the following character must be a number 1 through 9 (it cannot be a zero).
Subsequent characters can be any number 0 through 9 up to seven additional characters. (For example, #6000,
*92000, and *95551212.) The number following the * or # must be greater than 100. If the first character is not * or
#, the first character must be a number 1 through 9 (it cannot be zero), followed by up to eight characters, each a
number 0 through 9. (For example, 915551212;41212;300)

Type: String
Required: True
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Specifies the type of call park orbit being created. Skype for Business Server allows for two different types of call
park orbits:
CallPark. This is the standard call park orbit, in which a user places a call on hold and then can retrieve that call from
any phone by dialing the specified call park number. CallPark is the default orbit type and will be used if the Type
parameter is not specified.
GroupPickup. With group pickup, users can answer any incoming call that is made to any member of their call
pickup group. Call pickup groups are configured by administrators.
To specify a call park orbit type, use syntax similar to this:
-Type GroupPickup

This parameter was introduced in the February 2013 release of Lync Server 2013.

Type: OrbitType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an object of type Microsoft.Rtc.Management.Voice.Helpers.DisplayCallParkOrbit.

Related Links
Remove-CsCallParkOrbit
Set-CsCallParkOrbit
Get-CsCallParkOrbit
minutes to read • Edit Online

New-CsCallViaWorkPolicy
In ths Article

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.

Syntax
New-CsCallViaWorkPolicy [-Identity] <XdsIdentity> [-AdminCallbackNumber <String>] [-Confirm]
[-Enabled <Boolean>] [-Force] [-InMemory] [-Tenant <Guid>] [-UseAdminCallbackNumber <Boolean>] [-WhatIf]
[<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "<DesiredCmdletName>"}

Examples
-------------------------- Example 1 --------------------------

New-CsCallViaWorkPolicy -Identity Site:Redmond -Enabled $true -AdminCallbackNumber +14258881234 -


UseAdminCallbackNumber $true

This example creates a call via work policy for the Redmond site. The policy is enabled, the administrative callback
number is specified and enforced.

Parameters
-AdminCallbackNumber
Specifies the number that will be called during the call back to the Skype for Business user before placing the
external call. Typically this is the user's desk phone. If you want the user be able to change the callback number, use
the UseAdminCallbackNumber switch. The input must contain only digits and can optionally start with a "+". For
instance, "12068881234" or "+12068881234".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Specifies whether the policy is enabled at creation. The default is false ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identity to be assigned to the policy. New policies can be created at the site or per-user scope. To create a
new site policy, use the prefix "site:" and the name of the site as the Identity. For example, to create a new policy for
the Redmond site you would use this syntax: -Identity site:Redmond. To create a new per-user policy, this syntax:
-Identity SalesDepartmentPolicy.

You cannot create a new global policy. If you want to make changes to the global policy, use the Set-CsCallViawork
cmdlet instead. Likewise, you cannot create a new site or per-user policy if a policy with that Identity already exists.
If you need to make changes to an existing policy, use the Set-CsCallViawork cmdlet.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseAdminCallbackNumber
If true ($True), the number specified in the AdminCallbackNumber is the only number that will be used for the
callback to the user, or first leg, of the outbound call. If false ($False), the user has the opportunity to change the
callback number through the client. The user might choose to change the call back number to a personal phone
number like a mobile, home, or hotel phone number.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The New -CsCallViaWorkPolicy returns
Microsoft.Rtc.Management.WritableConfig.Policy.CallViaWork.CallViaWorkPolicy instances.

Related Links
Remove-CsCallViaWorkPolicy
Set-CsCallViaWorkPolicy
Grant-CsCallViaWorkPolicy
Get-CsCallViaWorkPolicy
minutes to read • Edit Online

New-CsCdrConfiguration
In ths Article

Creates a new set of call detail recording (CDR ) settings. CDR enables you to track usage of such things as peer-to-
peer instant messaging sessions, Voice over Internet Protocol (VoIP ) phone calls, and conferencing calls. This usage
data includes information about who called whom, when they called, and how long they talked. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsCdrConfiguration [-Identity] <XdsIdentity> [-EnableCDR <Boolean>] [-EnablePurging <Boolean>]
[-KeepCallDetailForDays <UInt32>] [-KeepErrorReportForDays <UInt32>] [-PurgeHourOfDay <UInt32>] [-Force]
[-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call detail recording (CDR ) provides a way for you to track usage of Skype for Business Server capabilities such as
Voice over IP (VoIP ) phone calls; instant messaging (IM ); file transfers; audio/video (A/V ) conferencing; and
application sharing sessions. CDR (which is available only if you have deployed the Monitoring service) keeps track
of usage information: it logs information such as the parties involved in the call; the length of the call; and whether
or not any files were transferred. (However, CDR not make a recording of the call itself.)
CDR also keeps track of call error information: detailed diagnostic data for both peer-to-peer sessions and for
conferencing calls.
As an administrator, you can determine whether or not CDR is used in your organization; if the Monitoring Service
has been deployed, you can easily enable or disable CDR. In addition, you can make this decision globally (in which
case CDR will either be enabled or disabled throughout the organization) or on a site-by-site basis; for example,
you could use CDR in the Redmond site but not use CDR in the Paris site.
The New -CsCdrConfiguration cmdlet enables you to create new CDR setting collections at the site scope. (New
settings cannot be created at the global scope.) Note that a site can only host a single collection of CDR settings.
That means that you cannot create a new collection for the Redmond site if the site already has a set of CDR
configuration settings. If you try this, the command will fail.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsCdrConfiguration -Identity site:Redmond -EnableCDR $False

The command in Example 1 uses the New -CsCdrConfiguration cmdlet to create a new set of CDR settings with the
Identity site:Redmond. In addition to the Identity site:Redmond, the new settings also have the EnableCDR property
set to False. Because site settings take precedence over global settings, this means that CDR will not be used in the
Redmond site, regardless of whether or not CDR has been enabled at the global scope.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsCdrConfiguration -Identity site:Redmond -InMemory

$x.EnableCDR = $False

Set-CsCdrConfiguration -Instance $x

Example 2 uses the InMemory parameter to demonstrate how you can create a new collection of CDR
configuration settings that initially exist only in memory. To do this, the example first uses the New -
CsCdrConfiguration cmdlet and the InMemory parameter to create a virtual collection of settings with the Identity
site:Redmond. This virtual collection is stored in the variable $x; if the collection was not stored in a variable it
would be created and then immediately disappear.
After the virtual collection has been created, the command shown in line 2 sets the value of the EnableCDR
property to False ($False). In line 3,the Set-CsCdrConfiguration cmdlet is then used to transform the virtual
collection $x into an actual collection of CDR configuration settings that is applied to the Redmond site. If the Set-
CsCdrConfiguration cmdlet was not called, the virtual collection would disappear as soon as the Windows
PowerShell session was terminated or the variable $x was deleted.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCDR
Indicates whether or not CDR is enabled. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePurging
Indicates whether or not CDR records will periodically be deleted from the CDR database. If True (the default
value), records will be deleted after the time period specified by the properties KeepCallDetailForDays (CDR
records) and the KeepErrorReportForDays (CDR errors). If False, CDR records will be maintained indefinitely.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Represents the unique identifier to be assigned to the new collection of CDR configuration settings. Because you
can only create new collections at the site scope, the Identity will always be the prefix "site:" followed by the site
name; for example "site:Redmond".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeepCallDetailForDays
Indicates the number of days that CDR records will be kept in the CDR database; any records older than the
specified number of days will automatically be deleted. (Note that purging will take place only if the EnablePurging
property has been set to True.)
KeepCallDetailForDays can be set to any integer value between 1 and 2562 days (approximately 7 years). The
default value is 60.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeepErrorReportForDays
Indicates the number of days that CDR error reports are kept; any reports older than the specified number of days
will automatically be deleted. CDR error reports are diagnostic reports uploaded by client applications such as
Skype for Business.
You can set this property to any integer value between 1 and 2562 days (approximately 7 years). The default value
is 60.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeHourOfDay
Indicates the local time of day when expired records are deleted from the CDR database. The time of day is
specified using a 24-hour clock, with 0 representing midnight (12:00 A.M.) and 23 representing 11:00 P.M. Note
that you can only specify the hour of the day; that means that you can schedule purging to take place at 4:00 A.M.
but you cannot schedule it to take place at 4:30 A.M. or 4:15 A.M. The default value is 2 (2:00 A.M.). It is
recommended that purging take place during non-working hours.
Database purging takes place only if the EnablePurging property is set to True.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsCdrConfiguration cmdlet does not accept pipelined input.

Outputs
Creates instances of the Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CdrSettings
object.

Related Links
Get-CsCdrConfiguration
Remove-CsCdrConfiguration
Set-CsCdrConfiguration
minutes to read • Edit Online

New-CsClientPolicy
In ths Article

Creates a new client policy. Among other things, client policies help determine the features of Skype for Business
Server that are made available to users; for example, you might give some users the right to transfer files while
denying this right to other users. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsClientPolicy [-Tenant <Guid>] [-PolicyEntry <>] [-Description <String>]
[-AddressBookAvailability <AddressBookAvailability>] [-AttendantSafeTransfer <Boolean>]
[-AutoDiscoveryRetryInterval <TimeSpan>] [-BlockConversationFromFederatedContacts <Boolean>]
[-CalendarStatePublicationInterval <UInt32>] [-CustomizedHelpUrl <String>]
[-CustomLinkInErrorMessages <String>] [-CustomStateUrl <String>] [-DGRefreshInterval <TimeSpan>]
[-DisableCalendarPresence <Boolean>] [-DisableContactCardOrganizationTab <Boolean>]
[-DisableEmailComparisonCheck <Boolean>] [-DisableEmoticons <Boolean>]
[-DisableFeedsTab <Boolean>] [-DisableFederatedPromptDisplayName <Boolean>]
[-DisableFreeBusyInfo <Boolean>] [-DisableHandsetOnLockedMachine <Boolean>]
[-DisableMeetingSubjectAndLocation <Boolean>] [-DisableHtmlIm <Boolean>]
[-DisableInkIM <Boolean>] [-DisableOneNote12Integration <Boolean>]
[-DisableOnlineContextualSearch <Boolean>] [-DisablePhonePresence <Boolean>]
[-DisablePICPromptDisplayName <Boolean>] [-DisablePoorDeviceWarnings <Boolean>]
[-DisablePoorNetworkWarnings <Boolean>] [-DisablePresenceNote <Boolean>]
[-DisableRTFIM <Boolean>] [-DisableSavingIM <Boolean>] [-DisplayPhoto <DisplayPhoto>]
[-EnableAppearOffline <Boolean>] [-EnableCallLogAutoArchiving <Boolean>]
[-EnableClientAutoPopulateWithTeam <Boolean>] [-EnableClientMusicOnHold <Boolean>]
[-EnableConversationWindowTabs <Boolean>] [-EnableEnterpriseCustomizedHelp <Boolean>]
[-EnableEventLogging <Boolean>] [-EnableExchangeContactSync <Boolean>]
[-EnableExchangeDelegateSync <Boolean>] [-EnableExchangeContactsFolder <Boolean>]
[-EnableFullScreenVideo <Boolean>] [-EnableHighPerformanceConferencingAppSharing <Boolean>]
[-EnableHotdesking <Boolean>] [-EnableIMAutoArchiving <Boolean>]
[-EnableMediaRedirection <Boolean>] [-EnableMeetingEngagement <Boolean>]
[-EnableNotificationForNewSubscribers <Boolean>] [-EnableServerConversationHistory <Boolean>]
[-EnableSkypeUI <Boolean>] [-EnableSQMData <Boolean>] [-EnableTracing <Boolean>]
[-EnableURL <Boolean>] [-EnableUnencryptedFileTransfer <Boolean>]
[-EnableVOIPCallDefault <Boolean>] [-ExcludedContactFolders <String>] [-HotdeskingTimeout <TimeSpan>]
[-IMWarning <String>] [-MAPIPollInterval <TimeSpan>] [-MaximumDGsAllowedInContactList <UInt32>]
[-MaximumNumberOfContacts <UInt16>] [-MaxPhotoSizeKB <UInt32>] [-MusicOnHoldAudioFile <String>]
[-P2PAppSharingEncryption <P2PAppSharingEncryption>] [-EnableHighPerformanceP2PAppSharing <Boolean>]
[-PlayAbbreviatedDialTone <Boolean>] [-RequireContentPin <String>] [-SearchPrefixFlags <UInt16>]
[-ShowRecentContacts <Boolean>] [-ShowManagePrivacyRelationships <Boolean>]
[-ShowSharepointPhotoEditLink <Boolean>] [-SPSearchInternalURL <String>] [-SPSearchExternalURL <String>]
[-SPSearchCenterInternalURL <String>] [-SPSearchCenterExternalURL <String>] [-TabURL <String>]
[-TracingLevel <TracingLevel>] [-TelemetryTier <String>] [-PublicationBatchDelay <UInt32>]
[-EnableViewBasedSubscriptionMode <Boolean>] [-WebServicePollInterval <TimeSpan>]
[-HelpEnvironment <String>] [-RateMyCallDisplayPercentage <UInt16>]
[-RateMyCallAllowCustomUserFeedback <Boolean>] [-IMLatencySpinnerDelay <UInt32>]
[-IMLatencyErrorThreshold <UInt32>] [-SupportModernFilePicker <Boolean>] [-EnableOnlineFeedback <Boolean>]
[-EnableOnlineFeedbackScreenshots <Boolean>] [-ConferenceIMIdleTimeout <TimeSpan>]
[-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Client policies are applied each time a user accesses the system, regardless of where the user logs on from and
regardless of the type of device the user logs on with. In addition, client policies, like other Skype for Business
Server policies, can readily be targeted toward selected groups of users. You can even create a custom policy that
gets assigned to a single user.
The New -CsClientPolicy cmdlet enables you to create new client policies at either the site or the per-user scope.
Note that any given site can have, at most, a single client policy; if you try to create a policy for the Redmond site
and that site already hosts a client policy, your command will fail. Likewise, your command will fail if you try to
create a new client policy at the global scope because the global scope already contains a client policy. If you need
to make changes to the global policy, use the Set-CsClientPolicy cmdlet instead.
Keep in mind that client policies differ from many other policies in that most of the policy settings do not have
default values.
The following parameters are not applicable to Skype for Business Online: AddressBookAvailability, AsJob,
AttendantSafeTransfer, AutoDiscoveryRetryInterval, BlockConversationFromFederatedContacts,
CalendarStatePublicationInterval, ConferenceIMIdleTimeout, CustomizedHelpUrl, CustomLinkInErrorMessages,
CustomStateUrl, Description, DGRefreshInterval, DisableContactCardOrganizationTab,
DisableFederatedPromptDisplayName, DisableFeedsTab, DisableMeetingSubjectAndLocation,
DisableOneNote12Integration, DisableOnlineContextualSearch, DisablePhonePresence,
DisablePICPromptDisplayName, EnableEventLogging, EnableExchangeContactsFolder,
EnableExchangeDelegateSync, EnableFullScreenVideo, EnableHighPerformanceConferencingAppSharing,
EnableHighPerformanceP2PAppSharing, EnableMediaRedirection, EnableMeetingEngagement,
EnableNotificationForNewSubscribers, EnableOnlineFeedback, EnableOnlineFeedbackScreenshots,
EnableSQMData, EnableTracing, EnableViewBasedSubscriptionMode, EnableVOIPCallDefault, Force,
HelpEnvironment, Identity, IMLatencyErrorThreshold, IMLatencySpinnerDelay, InMemory, MAPIPollInterval,
MaximumDGsAllowedInContactList, MaximumNumberOfContacts, MaxPhotoSizeKB, P2PAppSharingEncryption,
PipelineVariable, PolicyEntry, PublicationBatchDelay, RateMyCallAllowCustomUserFeedback, RequireContentPin,
SearchPrefixFlags, SPSearchCenterExternalURL, SPSearchCenterInternalURL, SPSearchExternalURL,
SPSearchInternalURL, SupportModernFilePicker, TabURL, TelemetryTier, Tenant, and WebServicePollInterval

Examples
-------------------------- EXAMPLE 1 -------------------------- (Skype for Business Server)

New-CsClientPolicy -Identity RedmondClientPolicy -DisableCalendarPresence $True -DisablePhonePresence $True -


DisplayPhoto "PhotosFromADOnly"

The command shown in Example 1 creates a new client policy with the Identity RedmondClientPolicy. In addition to
specifying the Identity, this command also includes three optional parameters and their parameter values:
DisableCalendarPresence, DisablePhonePresence, and DisplayPhoto.
-------------------------- EXAMPLE 2 -------------------------- (Skype for Business Server)

$x = New-CsClientPolicy -Identity RedmondClientPolicy -InMemory

$x.DisableCalendarPresence = $True

$x.DisablePhonePresence = $True

$x.DisplayPhoto = "PhotosFromADOnly"

Set-CsClientPolicy -Instance $x

Example 2 also creates a new client policy with the Identity RedmondClientPolicy; the difference between these
commands and the command used in Example 1 is that, in Example 2, the new policy is created in memory only,
and is only later turned into an actual client policy. To do this, the New -CsClientPolicy cmdlet is first called along
with two parameters: Identity (to specify the Identity for the new policy), and InMemory, which specifies that the
new policy should be created in memory only and not immediately put into use. Because this policy is created in
memory only, it must be stored in a variable; in this example, that's a variable named $x.
After the virtual policy has been created, the next three commands are used to modify properties for this virtual
policy; for example, command 2 sets the value of the DisableCalendarPresence property to True ($True). After all
the intended modifications have been made, the final command uses the Set-CsClientPolicy cmdlet to turn this
virtual policy into an actual client policy that can be assigned to users. Note that this final command is critical. If you
do not call the Set-CsClientPolicy cmdlet the policy RedmondClientPolicy will not be created, and the virtual policy
will disappear as soon as you end your Windows PowerShell session or delete the variable $x.

Parameters
-AddressBookAvailability
Indicates how users are allowed to access information by using the Address Book Web Query service and/or by
downloading a copy of the Address Book to their local computer). AddressBookAvailability must be set to one of
the following values:
WebSearchAndFileDownload
WebSearchOnly
FileDownloadOnly

Type: AddressBookAvailability
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AttendantSafeTransfer
When set to True, Attendant operates in "safe transfer" mode; this means that transferred calls that do not reach the
intended recipient will reappear in the incoming area along with a "Failed Transfer" notice. When set to False,
transferred calls that fail to reach the intended recipient will not reappear in the incoming area.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AutoDiscoveryRetryInterval
After a failed connection attempt, specifies the amount of time Skype for Business waits before trying again to
connect to Skype for Business Server. The AutoDiscoveryRetryInterval can be set to value between 1 second and
60 minutes (1 hour), inclusive.
When specifying the AutoDiscoveryRetryInterval you must use the format hours:minutes:seconds. For example, to
set the interval to 25 minutes use this syntax: - AutoDiscoveryRetryInterval 00:25:00

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BlockConversationFromFederatedContacts
When set to True, contacts from outside your organization will not be allowed to initiate instant messaging
conversations with any user that this policy applies to. However, outside users will be able to participate in
conversations as long as the internal user initiates that conversation. When set to False, outside contacts are
allowed to send unsolicited instant messages to users in your organization.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CalendarStatePublicationInterval
Specifies the amount of time, in seconds, that Skype for Business waits before retrieving calendar information from
Microsoft Outlook and adding this data to your presence information.
For example, to set the CalendarStatePublicationInterval to 10 minutes (600 seconds) use this syntax:
- CalendarStatePublicationInterval 600

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConferenceIMIdleTimeout
Indicates the number of minutes that a user can remain in an instant messaging session without either sending or
receiving an instant message.
The ConferenceIMIdleTimeout must be less than or equal to 1 hour, and must be specified using the format
hours:minutes:seconds. For example, this syntax sets the timeout value to 45 minutes:
-ConferenceIMIdleTimeout 00:45:00
Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomizedHelpUrl
URL for custom help set up by an organization. This help, rather than the default product help, will be displayed any
time a user clicks the Help menu in Skype for Business.
Customized help will not be available unless you also set EnableEnterpriseCustomizedHelp to True.
This parameter has been deprecated for use with Skype for Business Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomLinkInErrorMessages
URL for the website that can be added to error messages that appear in Skype for Business. If a URL is specified,
that URL will appear at the bottom of any error message that occurs in Skype for Business. Users can then click
that link and be taken to a custom website that contains additional information, such as troubleshooting tips.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomStateUrl
Specifies the location of the XML file used to add custom presence states to Skype for Business. (Skype for
Business allows up to four custom presence states in addition to the built-in states such as Available, Busy, and Do
Not Disturb.) The location of the XML file should be specified using the HTTPS protocol.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Allows administrators to provide additional information about a policy. For example, the Description might indicate
which users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DGRefreshInterval
Indicates the amount of time Skype for Business waits before automatically refreshing the membership list of any
distribution group that has been "expanded" in the Contacts list. (Expanding a distribution group means displaying
all the members in that group.) DGRefreshInterval can be set to any integer value between 30 seconds and 28,800
seconds (8 hours), inclusive. The default value is 28,800 seconds.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableCalendarPresence
When set to True, calendar data taken from Microsoft Outlook will not be included in your presence information.
When set to False, calendar data will be included in your presence information. For example, free/busy information
will be reported in your contact card. Likewise, your status will automatically be set to Busy any time Outlook
shows that you are in a meeting.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableContactCardOrganizationTab
When set to True, the contact card Organization tab is not visible within the Skype for Business user interface.
When set to False, the contact card Organization tab is available in Skype for Business.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableEmailComparisonCheck
When set to True, Skype for Business will not attempt to verify that any currently running instance of Microsoft
Outlook belongs to the same user running Skype for Business; for example, the software will not verify that both
Outlook and Skype for Business are running under Ken Myer's user account. Instead, it will be assumed that the
two applications are running under the same account and, in turn, will include contact and calendar data in Outlook
with Skype for Business.
When set to False, Skype for Business will use SMTP addresses to verify that Outlook and Skype for Business are
running under the same account. If the SMTP addresses do not match, then contact and calendar data in Outlook
will not be incorporated into Skype for Business.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableEmoticons
When set to True, users will not be able to send or receive emoticons in their instant messages; instead they will be
see the text equivalent of those emoticons. For example, instead of seeing a graphical "smiley face," users will see
the text equivalent:
:)
When set to False, users will be able to include emoticons in their instant messages, and to view emoticons in
instant messages they receive.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableFederatedPromptDisplayName
When set to True, any notification dialog box generated when you are added to a federated user's Contacts list will
use the federated user's SIP address (for example, sip:kenmyer@fabrikam.com). When set to False, the notification
dialog box will use the federated user's display name (for example, Ken Myer) instead.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DisableFeedsTab
When set to True, the activity feeds tab will not be displayed in Skype for Business. When set to False, the feeds tab
will be available within Skype for Business.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableFreeBusyInfo
When set to True, free/busy information retrieved from Microsoft Outlook will not be displayed in your contact
card. When set to False, free/busy information is displayed in your contact card. For example, your contact card
might include a note similar to this:
Calendar: Free until 2:00 PM

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableHandsetOnLockedMachine
When set to True, users will not be able to use their Polycom handset if the computer that the handset is connected
to is locked. To use the handset, users will first have to unlock the computer.
When set to False, users will be allowed to use their Polycom handset even if the computer the handset is
connected to is locked.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableHtmlIm
When set to True, any HTML text copied from a webpage will be converted to plain text when pasted into an instant
message. When set to False, HTML formatting (such as font size and color, drop-down lists, and buttons) will be
retained when pasted into an instant message.
Note that, even when set to False, scripts and other potentially malicious items (such as tags that play a sound) will
not be copied into an instant message. You can copy and paste buttons and other controls into a message, but any
scripts attached to those controls will automatically be removed.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableICE
When set to True, Lync 2010 will not use the Interactive Connectivity Establishment (ICE ) protocol to traverse
firewalls and network address translation (NAT) devices; this effectively prevents users from making Lync 2010
calls across the Internet. When set to False, Lync 2010 will use the ICE protocol to enable Lync 2010 calls to
traverse firewalls and NAT devices.
This setting is equivalent to the Communications Server 2007 R2 Group Policy setting "Disable Interactive
Connectivity Establishment (ICE )."

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableInkIM
When set to True, users will not be allowed to receive instant messages containing Tablet PC ink. (Ink is a
technology that enables you to insert handwritten notes into a document.) When set to False, users will be allowed
to receive messages that contain Tablet PC ink.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableMeetingSubjectAndLocation
When set to False, detailed information about a meeting -- namely, the meeting subject and the location where the
meeting is being held -- will be displayed as a tooltip when you view free/busy information in a contact card. When
set to True, this detailed information will not be displayed. To completely prevent the display of meeting-related
information you should also set DisableCalendarPresence to True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableOneNote12Integration
When set to True, the ability to start Microsoft OneNote from within Skype for Business (and the ability to
automatically link instant messaging sessions and OneNote notes) is disabled. When set to False, the option Take
Notes Using OneNote is enabled in Skype for Business. In addition, if you locate an instant message transcript in
Microsoft Outlook's Conversation History, you can retrieve any OneNote notes associated with that conversation
just by clicking the Edit conversation notes button.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableOnlineContextualSearch
When set to True, disables the Find Previous Conversations menu option that appears when you right-click a user
in your Contacts list. (This option enables you to search the Microsoft Outlook Conversation History folder for
previous instant messaging sessions involving the user in question.) When set to False, the Find Previous
Conversations option will be available when you right-click a user in your Contacts list.
Note that this setting only applies to users who are not running Microsoft Outlook in cached mode. That's because
any searches conducted by those users must take place on Microsoft Exchange Server, and administrators might
want to limit the network traffic generated by these searches. If you are running Outlook in cached mode, searches
take place on a user's locally-cached copy of his or her Inbox. Cached searches are not affected by this setting.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePhonePresence
When set to True, Skype for Business does not take phone calls into consideration when determining your current
status. When set to False, phone calls are taken into consideration when determining your status. For example, any
time you are on the phone your status will automatically be set to Busy.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePICPromptDisplayName
When set to True, any notification dialog box generated when you are added to the Contacts list of a user with an
account on a public instant messaging service such as MSN will display that person's SIP address (for example,
sip:kenmyer@litwareinc.com). When set to False, the notification dialog box will use the person's display name (for
example, Ken Myer) instead.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DisablePoorDeviceWarnings
When set to True, Skype for Business will not issue warnings (for example, upon startup, in the Tuning Wizard, and
in the Conversation window ) if an audio or video device is not working correctly. When set to False, these warnings
will be issued.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePoorNetworkWarnings
When set to True, Skype for Business will not display warnings about poor network quality.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePresenceNote
When set to True, any Out of Office message you configure in Microsoft Outlook will not be displayed as part of
your presence information. When set to False, your Out of Office message will be displayed any time a user holds
the mouse over your name in their Contacts list.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableRTFIM
When both this setting and the DisableHtmlIm setting are set to True, prevents rich text formatting (for example,
different fonts, font sizes, and font colors) from being used in instant messages; instead, all messages sent and
received will be converted to plain text format. When set to False, rich text formatting will be allowed in instant
messages.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableSavingIM
When set to True, the options for saving an instant messaging session are removed from the menu bar in the Skype
for Business Conversation window. When set to False, these options are available in the Conversation window.
Note that setting this value to True removes the menu options that make it easy for users to save instant messaging
transcripts. However, it does not prevent users from copying all the text in a transcript to the clipboard, pasting that
text into another application, and then saving the transcript that way.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayPhoto
Determines whether or not photos (of both the user and his or her contacts) will be displayed in Skype for
Business. Valid settings are:
NoPhoto - Photos are not displayed in Skype for Business.
PhotosFromADOnly - Only photos that have been published in Active Directory can be displayed.
AllPhotos - Either Active Directory or custom photos can be displayed.
The default value is AllPhotos.

Type: DisplayPhoto
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAppearOffline
When set to True an additional presence state, Appear Offline, is available in Skype for Business. This state makes it
appear as though the user is offline; however, he or she will actually be online and available to answer phone calls
and respond to instant messages. When set to False, the Appear Offline presence state will not be available in
Skype for Business.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCallLogAutoArchiving
When set to True, information about your incoming and outgoing phone calls is automatically saved to the
Conversation History folder in Microsoft Outlook. (The actual call itself is not recorded. What is recorded is
information such as who took part in the call; the length of the call; and whether this was an incoming or an
outgoing call.) When set to False, this information is not saved to Outlook.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-EnableClientAutoPopulateWithTeam
When set to true, allows a user's Skype client to be autopopulated with members of his or her immediate team.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableClientMusicOnHold
When set to True, music will be played any time a caller is placed on hold. When set to False, music will not be
played any time a caller is placed on hold. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableConversationWindowTabs
When set to True, supplemental information related to an instant messaging session will be displayed in a separate
browser window. This type of information is available only for custom applications that use the Microsoft Unified
Communications APIs. For example, customer service or support team personnel can automatically access related
information while chatting with someone.
When set to False, supplemental information will not be displayed in a separate browser window. Although the user
can still take part in an instant messaging session he or she will not have access to any additional information that
accompanies the session.
This parameter has been deprecated for use with Skype for Business Server.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableEnterpriseCustomizedHelp
When set to True, users who click the Help menu in Skype for Business will be given custom help set up by the
organization.
This parameter has been deprecated for use with Skype for Business Server.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableEventLogging
When set to True, detailed information about Skype for Business will be recorded in the Application event log.
When set to False, only major events (such as the failure to connect to Skype for Business Server) are recorded in
the event log.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExchangeContactsFolder
When set to false, this allows admins to hide Skype for Business contacts from showing up in users' Outlook and
Outlook on the Web clients.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExchangeContactSync
When set to True (the default value) Skype for Business creates a corresponding personal contact in Microsoft
Outlook for each person on a user's Skype for Business Contacts list.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExchangeDelegateSync
When set to True, delegates that a user has configured in Microsoft Exchange will be allowed to schedule meetings
for that user.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFullScreenVideo
When set to True, this parameter does two things: 1) enables full-screen video (with the correct aspect ratio) for
Skype for Business calls; and, 2) disables video preview for Skype for Business calls. When set to False, full-screen
video is not available in Skype for Business, but video preview is available.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableHighPerformanceConferencingAppSharing
When set to True, enables better performance in applications (such as CAD/CAM applications) that have a high
screen refresh rate. However, this improved performance will reduce the system resources and network bandwidth
available to other applications.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableHighPerformanceP2PAppSharing
When set to True, allows a peer-to-peer application sharing session to exceed the maximum frame rate of 2.5
frames per second. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableHotdesking
When set to True, enables users to log on to a phone running Skype for Business Phone Edition in a shared
workspace by using their Skype for Business Server account. (Among other things, this provides the user access to
his or her contacts.) When set to False, users are not allowed to log on to a phone by using their own credentials.
Note that this setting applies only to common area phones and not to users. When set to True and applied to a
common area phone, any user will be able to log on to that phone using his or her credentials. When set to False,
no users will be allowed to log on to a common area phone where this policy setting has been applied.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableIMAutoArchiving
When set to True, a transcript of every instant messaging session that a user takes part in will be saved to the
Conversation History folder in Microsoft Outlook. When set to False, these transcripts will not be saved
automatically. (However, users will have the option to manually save instant messaging transcripts.)
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMediaRedirection
When set to True ($True) allows audio and video streams to be separated from other network traffic; in turn, this
allows client devices to do encoding and decoding of audio and video locally. Media redirection typically results in
lower bandwidth usage, higher server scalability, and a more-optimal user experience compared to similar
techniques such as device remoting or codec compression.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMeetingEngagement
{{Fill EnableMeetingEngagement Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableNotificationForNewSubscribers
When set to True, any time you are added to someone's Contacts list you will receive notification that you have
been added to the list. In addition, the notification dialog box will provide options for you to add this person to your
Contacts list, or to block them from viewing your presence information. When set to False, you will not be notified if
you are added to someone's Contacts list.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOnlineFeedback
When set to true, allows users to provide feedback through the "help->report a problem" menu options in the
client.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOnlineFeedbackScreenshots
When set to true, allows users to provide screenshots of their clients when reporting problems.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableServerConversationHistory
When set to True ($True), allows conversation histories, missed call notifications, and missed IM notifications to be
stored on the server instead of in client mailboxes. This makes it easier for users to retrieve that information from a
mobile device.
The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSkypeUI
When set to True ($True), this parameter allows administrators to enable the Skype for Business user interface
instead of the Lync interface for the Skype for Business client.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSQMData
Note: This setting has been deprecated for Skype for Business Server.
When EnableSQMData is set to True, the user will not automatically be enrolled in the Customer Experience
Program. However, Skype for Business will provide the user with the option to join the program.
When set to False, the user will not be enrolled in the Customer Experience Improvement Program. In addition,
Skype for Business will not give users the option of joining the program. The only way for a user to participate in
the CEIP program is for EnableSQMData to be set to True and the user to then manually opt-in to the program.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableTracing
When set to True, software tracing will be enabled in Skype for Business; when set to False, software tracing will be
disabled. Software tracing involves keeping a detailed record of everything that a program does (including tracking
API calls). Tracing is mostly useful to developers and to application support personnel.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableUnencryptedFileTransfer
When set to True, users will be allowed to exchange files with external users whose instant messaging software
does not support encrypted file transfers. When set to False, users will only be able to exchange files with external
users who have software that supports encrypted file transfers.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableURL
When set to True, hyperlinks embedded in an instant message will be "clickable;" that is, users can click that link and
their web browser will open to the specified location. When set to False, hyperlinks will appear in instant messages
as plain text. To navigate to the location, users will need to copy the link text and paste it into their web browser.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableViewBasedSubscriptionMode
{{Fill EnableViewBasedSubscriptionMode Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-EnableVOIPCallDefault
When set to True, a Skype for Business call will be placed any time a user employs the click-to-call feature.
This policy setting only affects the initial state of the click-to-call feature. If the user modifies the value of the click-
to-call setting then the user-selected value will override this policy setting. After a user has modified the click-to-call
setting that setting will remain in use and will not be affected by the EnableVOIPCallDefault policy.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludedContactFolders
Indicates which Microsoft Outlook contact folders (if any) should not be searched any time Skype for Business
searches for new contacts. Multiple folders can be specified by separating the folder names using semicolons; for
example, -ExcludedContactFolders "SenderPhotoContacts;OtherContacts".

NOTE: When using a Skype for Business client, with either Office 2013 or Office 2016, this policy won't work in the
same way. In that combination, the Skype for Business client uses the search capabilities of Office (mso.dll), which
finds contacts from Exchange mailbox contact folders. There isn't an option to suppress the search of those contact
folders for the Office search component.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpEnvironment
When set to Office 365, the Skype for Business Online client help documentation for Skype for Business will be
shown to users rather than the on-premises help shown by default. You can either set HelpEnvironment to Office
365 or to a null value ($Null). If set to a null value (the default value) then the on-premises help will be shown to
users.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-HotdeskingTimeout
Timeout interval for a user logged on to a hot-desked phone. (A hot-desked phone is a phone running Skype for
Business Phone Edition that is located in a shared workspace, and that users can log on to by using their Skype for
Business Server account.) The hot-desk timeout specifies the number of minutes that can elapse before a user is
automatically logged off of a hot-desked phone. When specifying a hot desking timeout you must use the format
hours:minutes:seconds. For example, this syntax sets the hot desking timeout interval to 45 minutes:
-HotdeskingTimeout 00:45:00

Note that this policy setting applies only to common area phones and not to users. The default value is 5 minutes
(00:05:00), and the minimum value is 30 seconds (00:00:30).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity to be assigned to the new policy. New client policies can be created at the site or per-user scope. To
create a new site policy, use the prefix "site:" and the name of the site as your Identity. For example, use this syntax
to create a new policy for the Redmond site: -Identity site:Redmond. To create a new per-user policy, use an
identity similar to this: -Identity SalesClientPolicy.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IMLatencyErrorThreshold
If IM latency is greater than the threshold value (in milliseconds), the client will submit a CER.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IMLatencySpinnerDelay
Amount of time, in milliseconds, to wait before showing the spinner in the client when IM message delivery is
delayed.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-IMWarning
When configured, the specified message appears in the Conversation window each time a user takes part in an
instant messaging session. For example, if IMWarning is set to "All information is the property of Litwareinc" then
that message will appear in the Conversation window each time a user takes part in an instant messaging session.
If set to a null value ($Null), then no message appears in the Conversation window.
Your warning message should be limited to 256 characters, and can only contain plain text. You cannot use any
formatting (such as boldface or italics) and you cannot clickable URLs within the text.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MAPIPollInterval

IMPORTANT
This parameter has been deprecated for use with Skype for Business Server.

For users of Microsoft Exchange Server 2003, MAPIPollInterval specifies how often Skype for Business retrieves
calendar data from the Exchange public folders. MAPIPollInterval can be set to any value between 1 second and 1
hour; inclusive. To configure the MAPI poll interval, use the format hours:minutes:seconds. For example, this
command sets the MAPI poll interval to 45 minutes:
-MapiPollInterval 00:45:00

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaximumDGsAllowedInContactList
Indicates the maximum number of distribution groups that a user can configure as a contact.
MaximumDGsAllowedInContactList can be set to any integer value between 0 and 64, inclusive. The default value
is 10.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaximumNumberOfContacts
Indicates the maximum number of contacts a user is allowed to have. The maximum contacts can be set to any
integer value between 0 and 1000, inclusive. When set to 0, that prevents the user from having any contacts.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxPhotoSizeKB
Indicates the maximum size (in kilobytes) for photos displayed in Skype for Business.
The default value is 30 kilobytes.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MusicOnHoldAudioFile
Path to the audio file to be played when a caller is placed on hold. If a value is configured for this property, then
music on hold will be enabled and users will not be allowed to disable the feature. If no value is configured for this
property, then users can specify their own music-on-hold file, provided that EnableClientMusicOnHold is set to
True.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-P2PAppSharingEncryption
Indicates whether or not desktop and application sharing data exchanged during a peer-to-peer conversation is
encrypted. Allowed values are:
Supported. Desktop and application sharing data will be encrypted, if possible.
Enforced. Desktop and application sharing data must be encrypted. If the data cannot be encrypted, then desktop
and application sharing will not be enabled for the conversation.
NotSupported. Desktop and application sharing data will not be encrypted.
Type: P2PAppSharingEncryption
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PlayAbbreviatedDialTone
When set to True, a 3-second dial tone will be played any time a Skype for Business-compatible handset is taken off
the hook. (A Skype for Business handset looks like a standard telephone, but plugs into a USB port on a computer
and is used to make Skype for Business calls rather than "regular" phone calls.) When set to False, a 30-second dial
tone is played any time a Skype for Business-compatible handset is taken off the hook.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyEntry
Provides a way to add settings not covered by the default parameters. For example, when testing pre-release
versions of Lync 2010 it was possible to add a Send Feedback option to the user interface. That was done by using
code similar to this:
$x = New-CsClientPolicyEntry -Name "OnlineFeedbackURL" -Value "http://www.litwareinc.com/feedback"Set-
CsClientPolicy -Identity global -PolicyEntry @{Add=$x}

For more details and examples, see the New -CsClientPolicyEntry cmdlet help topic.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PublicationBatchDelay
{{Fill PublicationBatchDelay Description}}

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RateMyCallAllowCustomUserFeedback
When set to True, a free-text input field will be displayed in the Rate My Call window for users to submit custom
feedback.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RateMyCallDisplayPercentage
This parameter controls how often the form is shown.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequireContentPin
{{Fill RequireContentPin Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SearchPrefixFlags
Represents the Address Book attributes that should be used any time a user searches for a new contact. The search
prefix flags are constructed as a binary number like 11101111, in which a 1 indicates that the attribute should be
searched and a 0 indicates that the attribute should not be searched. The attributes in the binary value are (from
right to left):
Primary email address
Email alias
All email addresses
Company
Display name
First name
Last name
The binary value 1110111 means that all attributes should be searched except attribute 4: Company. To search only
last name, first name, and display name you would construct this value:
1110000
After the binary value has been constructed, it must then be converted to a decimal value before being assigned to
SearchPrefixFlags. To convert a binary number to a decimal number, you can use the a Windows PowerShell
command similar to this:
\[Convert\]::ToInt32("1110111", 2)

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowManagePrivacyRelationships
When set to True, shows the Relationships option in the Skype for Business Contacts list window. When set to
False, hides the Relationships option.
Note that this setting applies only to Lync 2010. Skype for Business will not show these relationships even if
ShowManagePrivacyRelationships has been set to True.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowRecentContacts
This parameter currently has no effect on the client.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowSharepointPhotoEditLink
If set to True, Skype for Business will include a link that enables users to edit the personal photo stored on their
SharePoint My Site. The default value is False, which means that Skype for Business will not include a link to the
SharePoint My Site.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SPSearchCenterExternalURL
External URL for the SharePoint site used for keyword searches (also known as expert searches). This URL will
appear at the bottom of any keyword search results that appear in Skype for Business. If the user clicks this URL,
his or her web browser will open up to the SharePoint site, giving the user the opportunity to conduct searches
using the search capabilities of SharePoint. (SharePoint offers more search options than does Skype for Business.)
SPSearchCenterExternalURL represents the URL for external users; that is, for users logging on from outside the
organization's firewall. The parameter SPSearchCenterInternalURL is for users who log on from inside the firewall.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SPSearchCenterInternalURL
Internal URL for the SharePoint site used for keyword searches (also known as expert searches). This URL will
appear at the bottom of any keyword search results that appear in Skype for Business. If the user clicks this URL,
his or her web browser will open up to the SharePoint site, giving the user the opportunity to conduct searches
using the search capabilities of SharePoint. (SharePoint offers more search options than Skype for Business does.)
SPSearchCenterInternalURL represents the URL for internal users; that is, for users logging on from inside the
organization's firewall. The parameter SPSearchCenterExternalURL is for users who log on from outside the
firewall.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SPSearchExternalURL
External URL for the SharePoint site used for keyword searches (also known as expert searches). Skype for
Business will use the SharePoint site located at this URL any time an external user (that is, a user who has accessed
the system from outside the organization's firewall) conducts a keyword search.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SPSearchInternalURL
Internal URL for the SharePoint site used for keyword searches (also known as expert searches). Skype for
Business will use the SharePoint site located at this URL any time an internal user (that is, a user who has logged
on from inside the organization's firewall) conducts a keyword search.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SupportModernFilePicker
{{Fill SupportModernFilePicker Description}}
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TabURL
Specifies the location of the XML file used to create custom tabs located at the bottom of the Skype for Business
Contacts list window. This parameter has been deprecated for use with Skype for Business Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelemetryTier
{{Fill TelemetryTier Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new client policy
is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TracingLevel
Enables Administrators to manage event tracing and logging in Skype for Business. Allowed values are:
Off - Tracing is disabled and the user cannot change this setting.
Light - Minimal tracing is performed, and the user cannot change this setting.
Full - Verbose tracing is performed, and the user cannot change this setting.
By default TracingLevel is set to Light.

Type: TracingLevel
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WebServicePollInterval
For users of Microsoft Exchange Server 2007 and later versions of the product, WebServicePollInterval specifies
how often Skype for Business retrieves calendar data from Microsoft Exchange Server Web Services.
WebServicePollInterval can be set to any value between 1 second and 1 hour; inclusive. To configure the Web
Service poll interval, use the format hours:minutes:seconds. For example, this command sets the Web Service poll
interval to 45 minutes:
-WebServicePollInterval 00:45:00

Note that this setting does not apply to users whose email account is on Exchange 2003. For those users, calendar
retrieval is managed using MAPIPollInterval.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Inputs
None. The New -CsClientPolicy cmdlet does not accept pipelined input.

Outputs
System.Object

Outputs
The New -CsClientPolicy cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy object.
Related Links
Get-CsClientPolicy
Grant-CsClientPolicy
New -CsClientPolicyEntry
Remove-CsClientPolicy
Set-CsClientPolicy
minutes to read • Edit Online

New-CsClientPolicyEntry
In ths Article

Adds new options to Skype for Business Server client policies. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsClientPolicyEntry -Name <String> -Value <String> [<CommonParameters>]

Description
Client policies are the primary mechanism used by Skype for Business Server to manage client software such as
Skype for Business. When you create or configure a client policy, you have numerous options available to you; for
example, you can specify whether or not photos should be used in Skype for Business, whether or not emoticons
are allowed in instant messages, and whether or not Skype for Business automatically saves transcripts of instant
messaging sessions. These options cover many of the client-related settings that administrators need to manage.
However, they might not cover all the client settings that administrators need to manage. In order to add
management flexibility and extensibility, client policies include a property named PolicyEntry. This multi-valued
property enables administrators to add new management options that are not explicitly called out in client policies.
For example, prior to the release of Lync Server, beta testers were given the ability to add a feedback option to
Skype for Business. This option was added as a new policy entry, and was created using the New -
CsClientPolicyEntry cmdlet.
Note that you cannot arbitrarily create new policy entries and expect those entries to manage Skype for Business or
some other client applications. Instead, you will need to wait for notification from Microsoft regarding names and
values that can be used to construct new client policy entries.

Examples
-------------------------- EXAMPLE 1 --------------------------

$x = New-CsClientPolicyEntry -Name "OnlineFeedbackURL" -Value "http://www.litwareinc.com/feedback"

$y = Get-CsClientPolicy -Identity global

$y.PolicyEntry.Add($x)

Set-CsClientPolicy -Instance $y

The commands shown in Example 1 demonstrate how a new policy entry can be added to the global client policy.
This example adds a new feedback option to Skype for Business. Note that this example is for demonstration
purposes. You should not expect to be able to run these commands and add a similar feedback option to your copy
of Skype for Business.
In order to add the new policy entry, the first command in the example uses the New -CsClientPolicyEntry cmdlet to
create an entry with the Name OnlineFeedbackURL and the Value http://www.litwareinc.com/feedback. The
resulting policy entry object is stored in a variable named $x.
In the second command, the Get-CsClientPolicy cmdlet is used to create an object reference ($y) to the global client
policy. After the object reference has been created, the Add method is used to add the new policy entry to the
PolicyEntry property. If PolicyEntry already has one or more entries, the new value will simply be appended to the
end of that collection.
Finally, the last command in the example uses the Set-CsClientPolicy cmdlet to write the changes to the actual
global policy. If you do not call the Set-CsClientPolicy cmdlet, your changes will exist only in memory, and will
disappear as soon as you end your Windows PowerShell session or delete the variable $x.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsClientPolicyEntry -Name "OnlineFeedbackURL" -Value "http://www.litwareinc.com/feedback"

Set-CsClientPolicy -Identity global -PolicyEntry $x

Example 2 is a variation of the commands shown in Example 1. In this case, however, the new policy entry replaces
all the items currently in the global policy's PolicyEntry property. To do that, the first command in the example
creates a new policy entry that is stored in a variable named $x. The second command then uses the Set-
CsClientPolicy cmdlet to set the value of the PolicyEntry property to $x. After the command finishes running the
only item in the PolicyEntry property will be the new entry. Any items contained in that property before the Set-
CsClientPolicy cmdlet was called will have replaced by the new entry.
-------------------------- EXAMPLE 3 --------------------------

$y = Get-CsClientPolicy -Identity global

$y.PolicyEntry.RemoveAt(0)

Set-CsClientPolicy -Instance $y

Example 3 demonstrates how you can remove a client policy entry from the global policy. To do this, the first
command in the example retrieves the global client policy and stores that information in a variable named $y.
After the global policy has been retrieved, the second command in the example uses the RemoveAt() method to
delete the first policy entry in that policy. The policy entry to be removed is indicated by its index number: the first
policy entry has an index number of 0, the second policy entry has an index number of 1, and so on. The syntax
RemoveAt(0) means that the first policy entry will be removed.
As soon as the policy entry has been removed from the in-memory instance of the global policy, the Set-
CsClientPolicy cmdlet is then called in order to write these changes to the actual instance of the global client policy.
-------------------------- EXAMPLE 4 --------------------------

Set-CsClientPolicy -Identity global -PolicyEntry $Null

The command shown in Example 4 removes all the client policy entries configured for the global policy. This is
done by using the PolicyEntry parameter and setting the parameter value to null ($Null).

Parameters
-Name
Name of the new policy entry. For example: -Name "OnlineFeedbackURL".
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Value
Value to be assigned to the new policy entry. For example: -Value http://www.litwareinc.com/feedback.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsClientPolicyEntry cmdlet does not accept pipelined input.

Outputs
The New -CsClientPolicyEntry cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Client.PolicyEntryType object.

Related Links
New -CsClientPolicy
Set-CsClientPolicy
minutes to read • Edit Online

New-CsClientVersionConfiguration
In ths Article

Creates a new collection of client version configuration settings. Client version configuration settings determine
whether or not Skype for Business Server checks the version number of each client application that logs on to the
system. If client version filtering is enabled, then the ability of that client application to access the system will be
based on settings configured in the appropriate client version policy. This cmdlet was introduced in Lync Server
2010.

Syntax
New-CsClientVersionConfiguration [-Identity] <XdsIdentity> [-DefaultAction <DefaultAction>]
[-Enabled <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-DefaultURL <String>] [<CommonParameters>]

Description
Skype for Business Server gives administrators considerable leeway when it comes to specifying the client software
(and, equally important, the version number of that software) that users can use to log on to the system. For
example, there is no technical reason that requires users to log on to Skype for Business Server by using Skype for
Business; there are no technical limitations that would prevent users from logging on by using Microsoft Office
Communicator 2007 R2.
However, there might be some non-technical reasons why you would prefer that your users do not log on by using
Office Communicator 2007 R2. For example, Office Communicator 2007 R2 does not support all of the features
and capabilities found in Skype for Business; as a result, users who log on with Office Communicator 2007 R2 will
have a different experience than users who log on by using Skype for Business. This can create difficulties for your
users; it can also create difficulties for help desk personnel, who must provide support for a number of different
client applications.
If this could be a problem for your organization you can employ client version filtering in order to specify the client
applications that can be used to log on to Skype for Business Server. When you install Skype for Business Server, a
global set of client version configuration settings is installed and enabled. These settings are used to determine
whether or not client version filtering is enabled.
In addition to the global settings, the New -CsClientVersionConfiguration cmdlet enables you to create client
version configuration settings at the site scope. When client version configuration settings are applied at the site
scope, those settings take precedence over the global settings. For example, suppose you have enabled client
version filtering at the global scope, and then you create a separate collection of settings for the Redmond site, a
collection of settings where client version filtering is disabled. In that case, client version filtering will be disabled for
all the users who have accounts on the Redmond site.
Note, however, that anonymous users are only affected by global settings. That's because anonymous users are not
associated with a site.
Note that client version configuration is not a security feature. The technology relies on self-reporting from client
applications, and does not attempt to verify that an application is really the application and the version number of
that application that it claims to be.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsClientVersionConfiguration -Identity site:Redmond -Enabled $False

The command shown in Example 1 creates a new collection of client version configuration settings for the
Redmond site. In this command, the Enabled parameter is set to False, which means that client filtering is disabled
for the Redmond site.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsClientVersionConfiguration -Identity site:Redmond -InMemory

$x.DefaultAction = "Block"

Set-CsClientVersionConfiguration -Instance $x

Example 2 shows how you can create a new collection of client version configuration settings in memory, modify
that collection, and then turn these virtual settings into an actual collection of settings applied to the Redmond site.
To do this, the first command uses the New -CsClientVersionConfiguration cmdlet and the InMemory parameter to
create an in-memory-only collection of settings with the Identity site:Redmond. This collection is stored in a
variable named $x and exists in memory only: if you terminate your Windows PowerShell session or delete the
variable $x these client version configuration settings will disappear and will never be applied to the Redmond site.
In command 2 the value of the DefaultAction property for the virtual settings is set to Block. In command 3, the
Set-CsClientVersionConfiguration cmdlet is used to transform the virtual settings into an actual collection of client
version configuration settings applied to the Redmond site.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultAction
Indicates the action to be taken if a user tries to log on from a client application with a version number that cannot
be found in the appropriate client version policy. DefaultAction must be set to one of the following values:
Allow. The client application will be allowed to log on.
AllowWithUrl. The client application will be allowed to log on. In addition, a message box will be displayed to the
user that includes the URL of a webpage where that user can download an approved client application. The URL for
this webpage should be specified as the value for the DefaultUrl property.
Block. The client application will be prevented from logging on.
BlockWithUrl. The client application will be prevented from logging on. However, the "Access denied" message box
displayed to the user will include the URL of a webpage where that user can download an approved client
application. The URL for this webpage should be specified as the value for the DefaultUrl property.
This property is ignored if the Enabled property is set to False. When the Enabled property is set to False, then no
client version filtering of any kind takes place.

Type: DefaultAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultURL
Specifies the URL of the webpage where users can download an approved client application. If specified, and if the
DefaultAction is set to BlockWithUrl, this URL will appear in the "Access denied" message box displayed any time a
user tries to log on from an unsupported client application.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether client version filtering is enabled or disabled. If the Enabled property is True, the server will check
the version number of each client application that attempts to log on; the server will then allow or deny access
based on the appropriate client version policy. If the Enabled property is False, then any client application capable of
logging on will be allowed to log on.
The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Represents the unique identifier to be assigned to the new collection of client version configuration settings.
Because you can only create new collections at the site scope, the Identity will always be the prefix "site:" followed
by the site name; for example "site:Redmond". Note that the preceding command will fail if a collection of settings
with the Identity site:Redmond already exists.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsClientVersionConfiguration cmdlet does not accept pipelined input.

Outputs
Creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration object.

Related Links
Get-CsClientVersionConfiguration
Remove-CsClientVersionConfiguration
Set-CsClientVersionConfiguration
minutes to read • Edit Online

New-CsClientVersionPolicy
In ths Article

Creates a new client version policy. Client version policies enable you to specify which versions of clients (such as
Microsoft Office Communicator 2007 R2) will be able to log on to your Skype for Business Server system. This
cmdlet was introduced in Lync Server 2010.

Syntax
New-CsClientVersionPolicy [-Identity] <XdsIdentity> [-Description <String>] [-Rules <PSListModifier>] [-Force]
[-InMemory] [-WhatIf] [-Confirm] [-Tenant <Guid>] [<CommonParameters>]

Description
Client version policies represent a collection of client version rules; in turn, client version rules are used to
determine which client applications are allowed to log on to Skype for Business Server. When a user attempts to
log on to Skype for Business Server, his or her client application sends a SIP header to the server; this header
includes detailed information about the application itself, including the software's major version, minor version, and
build number. The version information included in the SIP header is then checked against a collection of client
version rules to see if any rules apply to that particular application. If such a rule exists, Skype for Business Server
will then take the action specified by the rule. For example, the rule might tell Skype for Business Server to allow
the logon, to block it, or to allow the logon but then silently upgrade the client application to the latest version (for
example, upgrade Communicator 2007 R2 to Skype for Business).
Client version policies, which can be applied at the global scope, the site scope, the service scope (Registrar service
only), or the per-user scope, give you flexibility in determining which client applications can be used to access the
system. For example, as a general rule you might want to prevent users from logging on to Skype for Business
Server by using Communicator 2007 R2; you might want to do that because the older client application does not
support the same features and capabilities as Skype for Business. However, due to hardware or software conflicts,
you might also have a group of users who cannot upgrade to Skype for Business. In that case, you can create a
separate rule -- and a separate client version policy -- that allows those users to log on from within Communicator
2007 R2.
Note, however, that anonymous users are only affected by global policies. That's because anonymous users are not
associated with a site or service, and cannot be assigned a per-user policy.
New client version policies are created by using the New -CsClientVersionPolicy cmdlet. These new policies can be
created at the site scope, the service scope (Registrar service only), or at the per-user scope.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.
Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsClientVersionPolicy -Identity site:Redmond

In Example 1, a new client version policy is created for the Redmond site. Because no parameters are specified
(other than the mandatory Identity parameter), the new policy will contain all of the default values for a client
version policy.
-------------------------- EXAMPLE 2 --------------------------

Get-CsSite | Select-Object Identity | ForEach-Object {New-CsClientVersionPolicy -Identity ("site:" +


$_.Identity)}

The command shown in Example 2 creates a new client version policy for each site in the organization. To
accomplish this task, the command first calls the Get-CsSite cmdlet without any additional parameters; that returns
a collection of all the sites in the topology. This collection of sites is then piped to the Select-Object cmdlet, which
extracts the Identity property for each site. Those Identities are then piped to the ForEach-Object cmdlet, which
takes each site in the collection and creates a new client version policy for that site.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables you to provide explanatory text about the policy. For example, you might include information about the
users that the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be created. To create a policy at the site scope, use syntax similar to this:
-Identity "site:Redmond". To create a policy at the service scope, use syntax similar to this:
-Identity "Registrar:atl-cs-001.litwareinc.com". The Registrar service is the only service that can host a client
version policy.
Policies can also be created at the per-user scope. To create a per-user policy, use syntax similar to this:
-Identity "SalesDepartmentPolicy".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Rules
Collection of client version policy rules. You can add and remove rules from a policy by using the New -
CsClientVersionPolicyRule cmdlet and the Remove-CsClientVersionPolicyRule cmdlet. To add a rule at the time you
create the new policy, create the rule and store the value in a variable (for example, $x). You can then use syntax
similar to this when creating the new policy:
New-CsClientVersionPolicy -Identity "RedmondClientVersionPolicy" -Rules @{Add=$x}

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new client version
policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Get-CsClientVersionPolicy cmdlet does not accept pipelined input.

Outputs
The New -CsClientVersionPolicy cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionPolicy object.

Related Links
Get-CsClientVersionPolicy
Grant-CsClientVersionPolicy
Remove-CsClientVersionPolicy
Set-CsClientVersionPolicy
minutes to read • Edit Online

New-CsClientVersionPolicyRule
In ths Article

Creates a new client version policy rule. Client version policy rules help determine whether users can use a specific
client application to log on to Skype for Business Server.

Syntax
New-CsClientVersionPolicyRule [-Identity] <XdsIdentity> [-MajorVersion <UInt16>] [-MinorVersion <UInt16>]
[-UserAgent <String>] [-Action <Action>] [-ActionUrl <String>] [-BuildNumber <UInt16>]
[-CompareOp <CompareOp>] [-Description <String>] [-Enabled <Boolean>] [-Priority <Int32>]
[-QfeNumber <UInt16>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-UserAgentFullName <String>] [-Tenant <Guid>]
[<CommonParameters>]

New-CsClientVersionPolicyRule [-MajorVersion <UInt16>] [-MinorVersion <UInt16>] [-UserAgent <String>]


[-Action <Action>] [-ActionUrl <String>] [-BuildNumber <UInt16>] [-CompareOp <CompareOp>]
[-Description <String>] [-Enabled <Boolean>] -Parent <String> [-Priority <Int32>] [-QfeNumber <UInt16>]
-RuleId <String> [-Force] [-InMemory] [-WhatIf] [-Confirm] [-UserAgentFullName <String>] [-Tenant <Guid>]
[<CommonParameters>]

Description
Client version policy rules are used to determine which client applications are allowed to log on to Skype for
Business Server. When a user attempts to log on to Skype for Business Server, his or her client application sends a
SIP header to the server; this header includes detailed information about the application itself, including the
software's major version, minor version, and build number. The version information is then checked against a
collection of client version rules to see if any rules apply to that particular application. For example, suppose a user
attempts to log on by using Microsoft Office Communicator 2007 R2. Before the user can log on to Skype for
Business Server, the system will check to see if there is a client version rule that applies to Office Communicator
2007 R2. If a rule exists, Skype for Business Server will then take the action specified by the rule. That action must
be one of the following:
Allow. The user will be allowed to log on.
AllowAndUpgrade. The user will be allowed to log on, and his or her copy of Communicator 2007 R2 will
automatically be upgraded to the latest version of Skype for Business. Upgrades are carried out using either
Microsoft Update or Windows Server Update Services, depending on how you have configured your system.
AllowWithUrl. The user will be allowed to log on, and a message will be displayed pointing the user to a URL
where the latest version of Skype for Business can be downloaded and installed. The URL must point to a website
that you have created yourself; no such site is created for you when you install Skype for Business Server.
Block. The user will not be allowed to log on.
BlockAndUpgrade. The user will not be allowed to log on, but his or her copy of Communicator 2007 R2 will
automatically be upgraded to the latest version of Skype for Business. The user can then try to log on by using the
new client application. Upgrades are carried out using either Microsoft Update or Windows Server Update
Services, depending on how you have configured your system.
BlockWithUrl. The user will not be allowed to log on, but a message will be displayed pointing him or her to a URL
where the latest version of Skype for Business can be downloaded and installed. The URL must point to a website
that you have created yourself; no such site is created for you when you install Skype for Business Server.
Client version policy rules are collected in client version policies, policies that can be configured at the global scope,
the site scope, the service scope (Registrar service), or the per-user scope. New client version rules are created by
using the New -CsClientVersionPolicyRule cmdlet. When you create a new rule you must also specify the Identity
for that rule; that Identity consists of a scope (for example, site:Redmond) and a globally unique identifier (GUID ).
You can either put together an Identity yourself, or provide the scope (the Parent parameter) and the GUID (the
RuleId parameter) to have the New -CsClientVerisonPolicyRule cmdlet create the Identity for you.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.

Examples
-------------------------- EXAMPLE 1 --------------------------

$x = \[guid\]::NewGuid()

New-CsClientVersionPolicyRule -Parent "site:Redmond" -RuleId $x -MajorVersion 4 -UserAgent InHouse

Example 1 demonstrates how you can create a new client version policy rule. Policy rules have Identities that are
composed of two parts: the scope where the announcement is to be assigned, and a 36-character GUID. Creating
an Identity for a new client version policy rule first requires you to use the .NET Framework method NewGuid to
create a new GUID. This step is carried out in the first command in the example, with the resulting GUID being
stored in the variable $x.
After the GUID has been created, you can then use the New -CsClientVersionPolicyRule cmdlet to create the new
rule. This command uses four parameters: Parent, with a parameter value representing the scope (site:Redmond)
for the new rule; RuleId, with the parameter value $x (representing the newly-created GUID ); MajorVersion (4); and
UserAgent (InHouse). In this case, the UserAgent parameter represents an in-house client application.
-------------------------- EXAMPLE 2 --------------------------

$x = \[guid\]::NewGuid()

$z = New-CsClientVersionPolicyRule -Parent "site:Redmond" -RuleId $x -InMemory

$z.MajorVersion = 4

$z.UserAgent = "Inhouse"

Set-CsClientVersionPolicyRule -Instance $z

The commands shown in Example 2 represent a variation of the command shown in Example 1: in this case,
however, the new rule is initially created in memory only, and only later added to Skype for Business Server. To
carry out this task, the first command in the example creates the GUID portion of the Identity. In command 2, a
new in-memory-only client version policy rule is created; the InMemory parameter ensures that the rule exists only
in memory and is not immediately added to the Skype for Business Server infrastructure. As in Example 1, the
Parent and RuleId parameters are used to specify the scope and GUID for the new rule, the two pieces that make
up the rule Identity.
After the virtual rule has been created, the next two commands are used to assign values to the MajorVersion and
UserAgent properties, respectively. When those tasks are complete, the final command in the example and the Set-
CsClientVersionPolicyRule cmdlet is used to create the actual client version policy rule and assign the rule to the
Redmond site.

Parameters
-Action
Action to be taken any time the rule is triggered (that is, any time someone attempts to log on by using the
specified software). Valid values are:
Allow. The user will be allowed to log on.
AllowWithUrl. The user will be allowed to log on, and a message will be displayed pointing him or her to a URL
where the latest version of Lync can be downloaded and installed.
AllowAndUpgrade. The user will be allowed to log on, and his or her copy of Communicator will automatically be
upgraded to the latest version of Lync.
Block. The user will not be allowed to log on.
BlockWithUrl. The user will not be allowed to log on, but a message will be displayed pointing him or her to a URL
where the latest version of Lync can be downloaded and installed.
BlockAndUpgrade. The user will not be allowed to log on, but his or her copy of Communicator will automatically
be upgraded to the latest version of Lync. The user can then try to log on by using the new client application.

Type: Action
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ActionUrl
URL where users can download the latest version of Lync. This property is required if the Action is set to
BlockWithUrl or AllowWithUrl.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BuildNumber
Build number of the software. For example, if your copy of Communicator is version 2.0.6362.111, then the
BuildNumber is 6362. Build numbers represent internal versions of the software during the development process,
and help to ensure that you are using the final release version as opposed to a pre-release version.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CompareOp
Comparison operator used to determine if the client software attempting to log on was released before, after, or at
the same time as the version specified in the rule. Valid values are:
EQL (equal to)
NEQ (not equal to)
GTR (greater than)
GEQ (greater than or equal to)
LSS (less than)
LEQ (less than or equal to)

Type: CompareOp
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional information about the client version rule. For example, the Description
might include information about who to contact if you believe the rule should be changed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether or not the client version rule is to be used. If the Enabled property is set to False ($False), then the
rule will be ignored any time a user attempts to log on with the specified software. The default value is True.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the client version policy rule to be created. The Identity of a client version policy rule consists
of the scope where the rule has been configured plus a globally unique identifier (GUID ). That means that a rule
will have an Identity similar to this: site:Redmond/1987d3c2-4544-489d-bbe3-59f79f530a83.
Instead of using the Identity parameter you can use the Parent and RuleId parameters to have the New -
CsClientVerisonPolicyRule cmdlet create the Identity for you.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MajorVersion
Major version of the software. For example, if your copy of Communicator is version 2.0.6362.111, then the
MajorVersion is 2. Major versions equate to primary releases of the software. You must assign a value to the
MajorVersion property any time you create a new rule.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MinorVersion
Minor version of the software. For example, if your copy of Communicator is version 2.0.6362.111, then the
MinorVersion is 0. Minor versions equate to interim releases of the software.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Scope information for the new rule. To use the Parent parameter and create a new rule for the global policy, use this
syntax: -Parent global. To create a new rule for a site policy, use syntax similar to this: -Parent "site:Redmond". To
create a new rule for a service policy, use syntax similar to this: -parent "Registrar:atl-cs-001.litwareinc.com". To
create a new rule for a per-user policy, use syntax similar to this: -Parent "RedmondClientVersionPolicy".

You must use either the Identity parameter or both the Parent and RuleId parameters when creating a new rule.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
Relative priority of the rule. Rules are processed in priority order, with the rule that has priority 0 being processed
first, the rule that has priority 1 being processed second, and so on. If you assign a priority that is already in use, the
new rule will use that priority and other rules will be renumbered accordingly.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-QfeNumber
Quick fix engineering number of the software. For example, if your copy of Communicator is version 2.0.6362.111,
then the QfeNumber is 111. QFE numbers represent planned updates to an application that are made available
after the software's official release.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RuleId
Globally unique identifier (GUID ) for the rule. In Windows PowerShell, you can create a GUID by using the
following command:
$x = \[guid\]::NewGuid()

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new client version
policy rule is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserAgent
Designator used to identify the software client. For example, OC is the user agent designation for Communicator.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserAgentFullName
Enables administrators to provide a friendly name for the user agent. For example, instead of relying on the user
agent UCCP to identify the agent administrators might spell the name out in full: Microsoft Unified
Communications Client.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsClientVersionPolicyRule cmdlet does not accept pipelined input.

Outputs
The New -CsClientVersionPolicyRule cmdlet creates new instances of
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule object.

Related Links
Get-CsClientVersionPolicyRule
Remove-CsClientVersionPolicyRule
Set-CsClientVersionPolicyRule
minutes to read • Edit Online

New-CsCloudCallDataConnectorConfiguration
In ths Article

Creates a new set of Cloud Call Data Connector configuration settings.

Syntax
New-CsCloudCallDataConnectorConfiguration [-EnableCallDataConnector <Boolean>] [-Identity] <XdsIdentity>
[-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call Data Connector greatly simplifies call monitoring in a hybrid environment because you no longer need to use
different sets of on-premises and online tools to monitor all of your users' call quality. Whether your users are
homed on premises or online, you can choose to view call quality for your entire organization online.
With Call Data Connector, the Skype for Business Server pushes call data to the cloud service so that you can
leverage the Skype for Business Online Call Analytics (CA) and Call Quality Dashboard (CQD ) tools.

Examples
Example 1

PS C:\> New-CsCloudCallDataConnectorConfiguration -Identity site:Redmond -EnableCallDataConnector $True

The command in Example 1 uses the New -CsCloudCallDataConnectorConfiguration cmdlet to create a new set of
Cloud Call Data Connector configuration settings with the Identity site:Redmond. In addition to the Identity
site:Redmond, the new settings also have the EnableCallDataConnector property set to True. Because site settings
take precedence over global settings, this means that Call Data Connector will be used in the Redmond site,
regardless of whether Call Data Connector has been enabled at the global scope.
EXAMPLE 2

$x = New-CsCloudCallDataConnectorConfiguration -Identity site:Redmond -InMemory

$x.EnableCallDataConnector = $False

Set-CsCloudCallDataConnectorConfiguration -Instance $x

Example 2 uses the InMemory parameter to demonstrate how you can create a new collection of Cloud Call Data
Connector configuration settings that initially exist only in memory. To do this, the example first uses the New -
CsCloudCallDataConnectorConfiguration cmdlet and the InMemory parameter to create a virtual collection of
settings with the Identity site:Redmond. This virtual collection is stored in the variable $x; if the collection was not
stored in a variable, it would be created and then immediately disappear.
After the virtual collection has been created, the command shown in line 2 sets the value of the
EnableCallDataConnector property to False ($False). In line 3, the Set-CsCdrConfiguration cmdlet is then used to
transform the virtual collection $x into an actual collection of Cloud Call Data Connector configuration settings that
is applied to the Redmond site. If the Set-CsCloudCallDataConnectorConfiguration cmdlet was not called, the
virtual collection would disappear as soon as the Windows PowerShell session was terminated or the variable $x
was deleted.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCallDataConnector
Enables upload of call data (CDR and QoE ).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Represents the unique identifier to be assigned to the new collection of CloudCallDataConnector configuration
settings. Because you can only create new collections at the site scope, the Identity will always be the prefix "site:"
followed by the site name; for example, "site:Redmond".

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Creates instances of the Microsoft.Rtc.Management.WritableConfig.Settings.CallDataConnectorConfiguration
object.
minutes to read • Edit Online

New-CsClsConfiguration
In ths Article

Creates a new collection of centralized logging configuration settings. Centralized logging provides a way for
administrators to simultaneously enable or disable Skype for Business Server tracing on multiple computers. This
cmdlet was introduced in Lync Server 2013.

Syntax
New-CsClsConfiguration [-Identity] <XdsIdentity> [-CacheFileLocalFolders <String>]
[-CacheFileLocalMaxDiskUsage <UInt32>] [-CacheFileLocalRetentionPeriod <UInt32>]
[-CacheFileNetworkFolder <String>] [-ComponentThrottleLimit <UInt32>] [-ComponentThrottleSample <UInt32>]
[-Confirm] [-EtlFileFolder <String>] [-EtlFileRolloverMinutes <UInt32>] [-EtlFileRolloverSizeMB <UInt32>]
[-Force] [-InMemory] [-MinimumClsAgentServiceVersion <UInt32>] [-Regions <PSListModifier>]
[-Scenarios <PSListModifier>] [-SearchTerms <PSListModifier>] [-SecurityGroups <PSListModifier>]
[-TmfFileSearchPath <String>] [-WhatIf] [-NetworkUsagePacketSize <UInt32>] [-NetworkUsageThreshold <UInt32>]
[-Version <String>] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
It is also possible to define custom scenarios by using the New -CsClsScenario cmdlet.
Centralized logging is managed by using collections of centralized logging service configuration settings. When
you install Skype for Business Server, you install a global set of these configuration settings; in addition,
administrators can add custom settings collections at the site scope. This is done by using the New -
CsClsConfiguration cmdlet.
Skype for Business Server Control Panel: The functions carried out by the New -CsCClsConfiguration cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsClsConfiguration -Identity "site:Redmond" -EtlFileRolloverSizeMB 40 -EtlFileRolloverMinutes 120

The command shown in Example 1 creates a new collection of centralized logging configuration settings for the
Redmond site. In this new collection, the ETL file rollover size is set to 40 megabytes, and the ETL file rollover time
is set to 2 hours (120 minutes).

Parameters
-CacheFileLocalFolders
One or more full paths to the local folders where the cache files will be stored. The default value is
%TEMP%\Tracing. If more than one path is specified, then separate them with semi-colons.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CacheFileLocalMaxDiskUsage
Maximum amount of disk space (percentage) that can be used for the cache files. The default value is 80.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CacheFileLocalRetentionPeriod
Maximum number of days that cache files are retained locally. The default value is 14.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CacheFileNetworkFolder
Full UNC path to the network cache folder. There is no default value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ComponentThrottleLimit
Maximum rate at which a component is allowed to generate trace records before its tracing is throttled. The default
value is 5000 trace calls per second.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ComponentThrottleSample
Maximum number of times the ComponentThrottleLimit can be exceeded within a one minute interval. The default
value is 3.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EtlFileFolder
Full path to the folder where the event log trace files will be stored. The default value is %TEMP%\Tracing. Note
that %TEMP% is evaluated in the contents of the CLS Service so it actual expands to
%WINDIR%\ServiceProfiles\NetworkService\AppData\Local

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EtlFileRolloverMinutes
Maximum amount of time (in minutes) that can elapse before a new event log trace file is created. (This new file will
be created even if the existing trace file has not reached the specified rollover size.) The default value is 60.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-EtlFileRolloverSizeMB
Maximum size (in megabytes) that at event trace log file can reach before a new file is created. The default value is
20.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the centralized logging configuration settings to be created. Because these settings can only be
created at the site scope, use syntax similar to this, with the prefix "site:" followed by the name of the site:
-Identity "site:Redmond"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MinimumClsAgentServiceVersion
Specifies the minimum version of the centralized logging service agent to be used when logging data; any
computers with an agent version lower than the minimum value will be excluded from the logging operations. The
default value is 6, representing Skype for Business Server. This parameter is intended for use with Skype for
Business Online.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkUsagePacketSize
Packet size (in kilobytes) for transmitting agent search results and copying cache files over the network. The default
value is 64 KB.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkUsageThreshold
Bandwidth usage threshold (in MB per second) for transmitting agent search results and copying cache files over
the network. The default value is 10.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Regions
Collection of regions defined for the centralized logging configuration settings. Regions are defined using the New -
CsClsRegion cmdlet.
This parameter is intended for use with Skype for Business Online.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Scenarios
Collection of components/situations that can be traced using centralized logging. Scenarios are managed using the
CsClsScenario cmdlets.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SearchTerms
Collection of terms that help determine the personally identifiable information available to technical support
personnel who search the centralized logging files. Search terms are managed using the CsClsSearchTerm cmdlets.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecurityGroups
Security groups who are allowed to access the log files.
This parameter is intended for use with Skype for Business Online.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TmfFileSearchPath
Search path for TMF (trace message format) files. TMF files convert binary trace messages to a human-readable
format.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Version
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsClsConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsClsConfiguration cmdlet creates new instances of the
icrosoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.CentralizedLoggingConfiguration object.

Related Links
Get-CsClsConfiguration
Remove-CsClsConfiguration
Set-CsClsConfiguration
minutes to read • Edit Online

New-CsClsProvider
In ths Article

Creates a new centralized logging trace provider. Trace providers are application components that generate trace
messages or trace events useful in troubleshooting problems with Skype for Business Server. This cmdlet was
introduced in Lync Server.

Syntax
New-CsClsProvider -Flags <String> -Level <ProviderLevel> -Name <String> -Type <ProviderType> [-Guid <String>]
[-Role <String>] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
Each centralized logging scenario requires one or more trace providers to generate the messages and events that
are logged in the trace logs. Skype for Business Server ships with a large number of these providers predefined for
you. The New -CsClsProvider cmdlet provides a way for developers who are Skype for Business Server to take
advantage of centralized logging for custom new application/component.
It is also possible to define custom scenarios by using the New -CsClsScenario cmdlet.
Skype for Business Server Control Panel: The functions carried out by the New -CsClsProvider cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

$provider = New-CsClsProvider -Name "WebInfrastructure" -Type "WPP" -Level "Warning" -Flags "All"

Set-CsClsScenario -Identity "site:Redmond/WAC" -Provider @{Add=$provider}


The commands shown in Example 1 create a new centralized logging scenario provider and then add that provider
to the WAC scenario configured for the Redmond site. To do this, the first command in the example uses the New -
CsClsProvider cmdlet to create a new provider with the name WebInfrastructure; this new provider is stored in a
variable named $provider. The second command in the example then adds this new provider to the scenario
site:Redmond/WAC. Because the command uses the syntax @{Add=$provider} the new provider will be added to
the WAC scenario in addition to any other providers already configured for that
-------------------------- Example 2 --------------------------

$provider = New-CsClsProvider -Name "WebInfrastructure" -Type "WPP" -Level "Warning" -Flags "All"

Set-CsClsScenario -Identity "site:Redmond/WAC" -Provider @{Replace=$provider}

The command shown in Example 2 is a variation of the command shown in Example 1. In Example 2, however, the
new provider will replace any (and all) the existing providers configured for the WAC scenario. This is done by
using the syntax @{Replace=$provider}.

Parameters
-Flags
Specifies individual protocols and subcomponents involved in the trace. For example, the SipStack provider
includes the following flags: TF_COMPONENT, TF_RTCHTTP, TF_CONNECTION, TF_DIAG.
Most providers are configured to use all available flags.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Guid
Globally unique identifier assigned to the provider.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Level
Tracing level for events recorded by the provider: Allowed values are:
Fatal
Error
Warning
Info
Verbose
Debug
Type: ProviderLevel
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name for the new provider.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Role
Skype for Business Server server role for the provider. For example, FE for Front End server or Edge for Edge
Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Type of tracing used by the provider. Allowed values are:
WPP (Windows software trace preprocessor)
EventLog
IISLog

Type: ProviderType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsClsProvider cmdlet does not accept pipelined input.

Outputs
The New -CsClsProvider cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Provider object.
Related Links
New -CsClsScenario
Set-CsClsScenario
minutes to read • Edit Online

New-CsClsRegion
In ths Article

Creates a new centralized logging configuration region. Centralized logging provides a way for administrators to
simultaneously enable or disable event tracing on multiple computers. Centralized logging regions are intended for
use with Skype for Business Online.

Syntax
New-CsClsRegion [-Identity] <XdsIdentity> -OtherRegionAccess <String> -SecurityGroupSuffix <String> [-Confirm]
[-Force] [-InMemory] [-Sites <String>] [-WhatIf] [<CommonParameters>]

New-CsClsRegion -Name <String> -OtherRegionAccess <String> -Parent <String> -SecurityGroupSuffix <String>


[-Confirm] [-Force] [-InMemory] [-Sites <String>] [-WhatIf] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
With Skype for Business Online, regions are used to determine which users have access to the personally-
identifiable information that is written to the log files. Regions are created by using the New -CsClsRegion cmdlet
and then are added to a collection of centralized logging configuration settings.
Skype for Business Server Control Panel: The functions carried out by the New -CsClsRegion cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsClsRegion -Identity "global/Europe" -SecurityGroupSuffix "EMEA" -OtherRegionAccess "global/US"

The command shown in Example a creates a new global region named Europe. The new region uses the security
group suffix EMEA and also allows access by the global/US region.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new region. Region Identities consist of the centralized logging configuration scope where
the region will be created plus a unique region name. For example, to create a global region named Redmond use
this syntax:
-Identity "global/Redmond"

If you use the Identity parameter then you cannot use either the name parameter or the Parent parameter in that
same command.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name for the new region. For example:
-Name "Redmond"
If you use the Name parameter you must also use the Parent parameter. However, you should not use the Identity
parameter in the same command as the Name and Parent parameters.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OtherRegionAccess
Name of an additional region that can be accessed by authorized users for this region.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Scope of the centralized logging configuration settings where the new region will be located. For example, to add
the new region to the global settings, use this syntax:
-Parent "global"

You can return identities for all your centralizing logging "parents" by using this command:
Get-CsCentralizedLoggingConfiguration | Select-Object Identity
If you use the Name parameter you must also use the Parent parameter. However, you should not use the Identity
parameter in the same command as the Name and Parent parameters.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecurityGroupSuffix
Suffix to be added to the end of the name of any security group that will be authorized for this region.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Sites
Sites contained within this region. These correspond to the SiteId attribute values in the topology document.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsClsRegion cmdlet does not accept pipelined input.

Outputs
The New -CsClsRegion cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Region#Decorated object.

Related Links
Get-CsClsRegion
Remove-CsClsRegion
Set-CsClsRegion
minutes to read • Edit Online

New-CsClsScenario
In ths Article

Creates a new centralized logging configuration scenario. A scenario represents a particular Skype for Business
Server component or situation (such as IM and presence) that administrators can enable or disable for tracing. This
cmdlet was introduced in Lync Server.

Syntax
New-CsClsScenario [-Identity] <XdsIdentity> [-Confirm] [-Force] [-InMemory] [-Provider <PSListModifier>]
[-WhatIf] [<CommonParameters>]

New-CsClsScenario -Name <String> -Parent <String> [-Confirm] [-Force] [-InMemory] [-Provider <PSListModifier>]
[-WhatIf] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
Custom scenarios can be created by using the New -CsClsScenario cmdlet and then adding the new scenario to a
collection of centralized logging configuration settings.
Skype for Business Server Control Panel: The functions carried out by the New -CsClsScenario cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 -------------------------- (Lync Server 2013)

$provider = New-CsClsProvider -Name "RedmondHybridVoice" -Type "WPP" -Level "Info" -Flags "All"

New-CsClsScenario -Identity "global/RedmondHybridVoice"-Provider $provider


The commands shown in Example 1 create a new centralized logging scenario with the Identity
global/RedmondHybridVoice. In order to carry out this task, the first command in the example uses the New -
CsClsProvider cmdlet to create a provider to be assigned to the scenario; this new provider is stored in the variable
$provider.
After the description and the provider have been created, the final command in the example calls New -
CsClsScenario in order to create the scenario, using the data stored in $provider to assign a value to the Provider
property.
-------------------------- Example 1 -------------------------- (Skype for Business Server 2015)

$provider = New-CsClsProvider -Name "RedmondHybridVoice" -Type "WPP" -Level "Info" -Flags "All"

New-CsClsScenario -Identity "global/RedmondHybridVoice"-Provider $provider

The commands shown in Example 1 create a new centralized logging scenario with the Identity
global/RedmondHybridVoice. In order to carry out this task, the first command in the example uses the New -
CsClsProvider cmdlet to create a provider to be assigned to the scenario; this new provider is stored in the variable
$provider.
After the description and the provider have been created, the final command in the example calls the New -
CsClsScenario cmdlet in order to create the scenario, using the data stored in $provider to assign a value to the
Provider property.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new scenario. A scenario consists of two parts: the scope where the scenario is configured
(that is, the collection of centralized logging configuration settings where the scenario can be found) and the
scenario name. For example:
-Identity "site:Redmond/AddressBook"

If you use the Identity parameter then you cannot use either the name parameter or the Parent parameter in that
same command.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name for the new scenario. For example:
-Name "RedmondHybridVoice"

If you use the Name parameter you must also use the Parent parameter. However, you should not use the Identity
parameter in the same command as the Name and Parent parameters.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Scope of the centralized logging configuration settings where the new scenario will be located. For example, to add
the new scenario to the global settings, use this syntax:
-Parent "global"

You can return identities for all your centralizing logging "parents" by using this command:
Get-CsClsConfiguration | Select-Object Identity

If you use the Name parameter you must also use the Parent parameter. However, you should not use the Identity
parameter in the same command as the Name and Parent parameters.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Provider
Logging provider for the scenario. New providers must be created using the New -CsClsProvider cmdlet. For
example:
$provider = New-CsClsProvider -Name "UserServices" -Type "WPP" -Level "Info" -Flags "All"

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsClsScenario cmdlet does not accept pipelined input.

Outputs
The New -CsClsScenario cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Scenario#Decorated object.
minutes to read • Edit Online

New-CsClsSecurityGroup
In ths Article

Creates a new centralized logging configuration security group. Centralized logging provides a way for
administrators to simultaneously enable or disable event tracing on multiple computers. This cmdlet was
introduced in Lync Server.

Syntax
New-CsClsSecurityGroup [-Identity] <XdsIdentity> -AccessLevel <String> [-Confirm] [-Force] [-InMemory]
[-WhatIf] [<CommonParameters>]

New-CsClsSecurityGroup -AccessLevel <String> -Name <String> -Parent <String> [-Confirm] [-Force] [-InMemory]
[-WhatIf] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start, and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
With Skype for Business Online, security groups are used to determine which users have access to the personally-
identifiable information that is written to the log files. Security groups are created by using the New -
CsClsSecurityGroup cmdlet and then are added to a collection of centralized logging configuration settings.
Skype for Business Server Control Panel: The functions carried out by the New -CsClsSecurityGroup cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsClsSecurityGroup -Identity "global/HelpDesk" -AccessLevel "Tier3"

The command shown in Example 1 creates a new centralized logging security group with the Identity
global/HelpDesk. In this example, the AccessLevel property is set to Tier3.

Parameters
-AccessLevel
String value specifying the access level assigned to the group. Access levels are arbitrary string values assigned by
administrators and used to categorize security groups. For example:
-AccessLevel "Tier3"

Multiple groups can share the same access level. Currently the only values that have meaning are "Tier3", "Tier2",
"Product", "Ops", and "Pii".

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new security group. Security group Identities consist of the centralized logging
configuration scope where the group will be created plus a unique security group name. For example, to create a
global security group named HelpDesk use this syntax:
-Identity "global/HelpDesk"

If you use the Identity parameter then you cannot use either the name parameter or the Parent parameter in that
same command.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name for the new security group. For example:
-Name "HelpDesk"

If you use the Name parameter you must also use the Parent parameter. However, you should not use the Identity
parameter in the same command as the Name and Parent parameters.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Scope of the centralized logging configuration settings where the new security group will be located. For example,
to add the new security group to the global settings, use this syntax:
-Parent "global"

You can return identities for all your centralizing logging "parents" by using this command:
Get-CsCentralizedLoggingConfiguration | Select-Object Identity

If you use the Name parameter you must also use the Parent parameter. However, you should not use the Identity
parameter in the same command as the Name and Parent parameters.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsClsSecurityGroup cmdlet does not accept pipelined input.

Outputs
The New -CsClsSecurityGroup cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SecurityGroup#Decorated object.

Related Links
Get-CsClsSecurityGroup
Remove-CsClsSecurityGroup
Set-CsClsSecurityGroup
minutes to read • Edit Online

New-CsCommonAreaPhone
In ths Article

Creates a new common area phone that can be managed by using Skype for Business Server. Common area
phones are phones that are located in building lobbies, employee lounges, or other areas where they are likely to be
used by a number of different people and for a number of different uses. This cmdlet was introduced in Lync
Server.

Syntax
New-CsCommonAreaPhone -LineUri <String> -RegistrarPool <Fqdn> [-Description <String>] [-DisplayName <String>]
[-DisplayNumber <String>] -DN <ADObjectId> [-SipAddress <String>] [-PassThru] [-WhatIf] [-Confirm]
[<CommonParameters>]

New-CsCommonAreaPhone -LineUri <String> -RegistrarPool <Fqdn> [-Description <String>] [-DisplayName <String>]


[-DisplayNumber <String>] -OU <OUIdParameter> [-SipAddress <String>] [-PassThru] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Common area phones are IP telephones that are not associated with an individual user. Instead of being located in
someone's office, common area phones are typically located in building lobbies, cafeterias, employee lounges,
meeting rooms and other locations where a large number of people are likely to gather. This presents
administrators with a management challenge; that's because phone use in Skype for Business Server is typically
maintained by using voice policies and dial plans that are assigned to individual users. Common area phones do
not have individual users assigned to them.
One solution to this challenge is to create Active Directory contact objects for all your common area phones. (These
contact objects can be created by using the New -CsCommonAreaPhone cmdlet.) Like user accounts, these contact
objects can be assigned policies and voice plans. As a result, you will be able to maintain control over common area
phones even though those phones are not associated with an individual user. For example, if you do not want
people to have the ability to transfer or park calls from a common area phone, you can create a voice policy that
prohibits call transfers and call parking, and then assign that policy to the common area phone. (Or, more correctly,
to the contact object that represents the common area phone.) This command assigns the voice policy
CommonAreaPhoneVoicePolicy to all your common area phones:
Get-CsCommonAreaPhone | Grant-CsVoicePolicy -PolicyName "CommonAreaPhoneVoicePolicy"

As noted, new common area phones can be created by using the New -CsCommonAreaPhone cmdlet. The New -
CsCommonAreaPhone cmdlet can either create new contact objects for use with common area phones or it can
associate existing contact objects with a new common area phone. For more details, see the OU and the DN
parameter descriptions in this topic.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsCommonAreaPhone -LineUri tel:+14255556710 -RegistrarPool redmond-cs-001.litwareinc.com -DisplayName


"Building 14 Lobby" -OU "ou=Telecommunications,dc=litwareinc,dc=com"

The command shown in Example 1 creates a new common area phone for the phone number 1-425-555-6710.
(Note that the LineUri must be specified using the E.164 format.) In addition to specifying the phone number, the
command also specifies the Registrar pool (RegistrarPool); the Active Directory display name (DisplayName); and
the distinguished name of the OU where the corresponding contact object should be created (OU ).
-------------------------- EXAMPLE 2 --------------------------

New-CsCommonAreaPhone -LineUri tel:+14255556710 -RegistrarPool redmond-cs-001.litwareinc.com -DN "cn=Building


14 Lobby,ou=Telecommunications,dc=litwareinc,dc=com"

The command shown in Example 2 is a variation of the command shown in Example 1. In Example 2, however, the
new common area phone is associated with an existing Active Directory contact object. To do this, the command
employs the DN parameter instead of the OU parameter, using the distinguished name of the existing contact
object (cn=Building 14 Lobby,ou=Telecommunications,dc=litwareinc,dc=com) as the parameter value. In this
command the DisplayName is also left out, which means that the new common area phone will use the display
name already assigned to the existing contact object.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables you to set the Active Directory Description attribute for the common area phone. In turn, this provides a
way for you to supply additional information about the phone; for example, you might want to provide details
about who to contact in case of problems with the phone.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Enables you to set the Active Directory display name of the common area phone.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
Phone number as displayed in Skype for Business. The DisplayNumber property can be formatted any way you
prefer; for example 1-800-555-1234; 1-(800)-555-1234; 1.800.555.1234; and so on. When choosing a display
number, keep in mind that this number will be shown on the display screen of the common area phone only if the
number can be normalized. (Normalization is the process of translating number strings into a standard phone
number format.) If a normalization rule does not exist for the phone number format used when configuring the
display number, the display screen of the common area phone will show the value of the LineUri property rather
than the value of the DisplayNumber property.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DN
Enables you to associate an existing Active Directory contact object with the new common area phone. If you have
a contact object you want to associate with a common area phone, use the DN parameter followed by the
distinguished name of that contact. For example: -DN "cn=Building 14 Lobby,dc=litwareinc,dc=com". Note that
your command will fail if the specified contact does not exist. Your command will also fail if the specified contact
has already been enabled for Skype for Business Server. In that case, you must first disable the contact using the
Disable-CsUser and cmdlet then run the New -CsCommonAreaPhone cmdlet.
The DN parameter is particularly useful in organizations that have already created contact objects for conference
rooms and other entities. These contacts are often used for scheduling purposes. By using the DN parameter you
can create a new common area phone using one of these pre-existing contact objects.
You cannot use the OU and the DN parameters in the same command.

Type: ADObjectId
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineUri
Phone number for the common area phone. The line Uniform Resource Identifier (URI) should be specified using
the E.164 format, and be prefixed by the "TEL:" prefix. For example: TEL:+14255551297. Any extension number
should be added to the end of the line URI, for example: TEL:+14255551297;ext=51297.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Distinguished name of the Active Directory organizational unit (OU ) where the contact object should be located.
For example: -OU "ou=Redmond,dc=litwareinc,dc=com".
If you include the OU parameter, a new contact will be created in the specified OU, and the contact will
automatically be assigned a globally unique identifier (GUID ) as its common name. As a result, the contact object
will have a name similar to this: {ce84964a-c4da-4622-ad34-c54ff3ed361f}.

Type: OUIdParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Returns an object representing the common area phone.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegistrarPool
Fully qualified domain name (FQDN ) of the Registrar pool where the contact object should be homed. For example:
-RegistrarPool "atl-cs-001.litwareinc.com".

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
Unique identifier that allows the common area phone to communicate with SIP devices such as Skype for Business.
The SIP address must be prefaced by the prefix "sip:" and must include a valid SIP domain. For example:
sip:bldg14lobby@litwareinc.com.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsCommonAreaPhone cmdlet does not accept pipelined input.

Outputs
The New -CsCommonAreaPhone cmdlet creates new instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact object.

Related Links
Get-CsCommonAreaPhone
Move-CsCommonAreaPhone
Remove-CsCommonAreaPhone
Set-CsCommonAreaPhone
minutes to read • Edit Online

New-CsConferenceDirectory
In ths Article

Creates a new conference directory for use in your organization. Conference directories are used to help dial-in
conferencing users locate conference information. This cmdlet was introduced in Lync Server.

Syntax
New-CsConferenceDirectory [-Identity] <XdsGlobalRelativeIdentity> -HomePool <String> [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
When you create a dial-in conferencing Uniform Resource Identifier (URI), those URIs are assigned unique SIP
addresses. However, SIP addresses are difficult to translate to devices that are not SIP -aware; for example, a public
switched telephone network (PSTN ) telephone can't translate a SIP address. Because of that, Skype for Business
Server uses conference directories as a way to help these devices locate, and connect to, dial-in conferences. This is
done by creating a SIP conference directory that is associated with each dial-in conferencing URI, and is identified
by an integer value rather than a SIP URI. PSTN telephones and other devices can then use these numbers (rather
than a SIP URI) when connecting to conferences; the directory number is included in the PSTN conference
identification users enter when connecting to a dial-in conference.
New conference directories can be created by calling the New -CsConferenceDirectory cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsConferenceDirectory -Identity 42 -HomePool "atl-cs-001.litwareinc.com"

Creates a new conference directory with the Identity 42. This directory will be hosted on the pool atl-cs-
001.litwareinc.com.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HomePool
Fully qualified domain name (FQDN ) of the Registrar pool where the new conference directory will be hosted. For
example: -Identity atl-cs-001.litwareinc.com.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique numeric identifier for the new conference directory. Identities can be any integer value between 0 and 9999
inclusive; however, Identities must be unique. (For example, you cannot have two directories with the Identity 575.)
You do not need to follow a numeric order when creating new directories. For example, you can create a directory
with the Identity 999 followed by a directory with the Identity 2 followed by a directory with the Identity 438, and
so on.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsConferenceDirectory cmdlet does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.PstnConf.ConferenceDirectories
object.

Related Links
Get-CsConferenceDirectory
Move-CsConferenceDirectory
Remove-CsConferenceDirectory
minutes to read • Edit Online

New-CsConferencingConfiguration
In ths Article

Creates a new collection of conference configuration settings. Conference settings determine such things as the
maximum-allowed size for conference content and handouts, the content grace period (that is, the amount of time
content will be stored before being deleted), and the URLs for the internal and external downloads of the supported
client. This cmdlet was introduced in Lync Server.

Syntax
New-CsConferencingConfiguration [-Identity] <XdsIdentity> [-ClientAppSharingPort <UInt16>]
[-ClientAppSharingPortRange <UInt32>] [-ClientAudioPort <UInt16>] [-ClientAudioPortRange <UInt32>]
[-ClientFileTransferPort <UInt16>] [-ClientFileTransferPortRange <UInt32>] [-ClientMediaPort <UInt16>]
[-ClientMediaPortRange <UInt32>] [-ClientMediaPortRangeEnabled <Boolean>] [-ClientSipDynamicPort <UInt16>]
[-ClientSipDynamicPortRange <UInt32>] [-ClientVideoPort <UInt16>] [-ClientVideoPortRange <UInt32>]
[-ConsoleDownloadExternalUrl <String>] [-ConsoleDownloadInternalUrl <String>] [-ContentGracePeriod <TimeSpan>]
[-HelpdeskExternalUrl <String>] [-HelpdeskInternalUrl <String>] [-MaxBandwidthPerAppSharingServiceMb <UInt64>]
[-MaxContentStorageMb <UInt16>] [-Organization <String>] [-InMemory] [-Force] [-WhatIf] [-Confirm]
[-MaxUploadFileSizeMb <UInt16>] [-CloudPollServicePrimaryUrl <String>]
[-CloudPollServiceSecondaryUrl <String>] [<CommonParameters>]

Description
For conferences, management and administration is split between two sets of cmdlets. If you want to manage the
things users can and cannot do (for example, can users invite anonymous participants to join a conference, are
users allowed to offer application sharing in a conference, or are users allowed to transfer files within a conference),
then you need to use the CsConferencingPolicy cmdlets.
Administrators also need to manage the Web Conferencing service. For example, administrators need to be able to
do such things as specify the maximum amount of content storage allotted to a single conference and to specify the
grace period before that conference content is automatically deleted. They also need to be able to specify the ports
used for activities such as application sharing and file transfer.
These latter activities can be managed by using the CsConferencingConfiguration cmdlets. These cmdlets enable
you to manage the actual servers themselves. The CsConferencingConfiguration cmdlets (which can be applied to
the global, the site, and the service scopes) aren't used to specify whether or not a user can share applications
during a conference; if application sharing is allowed, however, these cmdlets enable you to indicate which ports
should be used for that activity. Likewise, the cmdlets enable you to specify such things as storage limits and
expiration periods, as well as pointers to internal and external URLs where users can obtain conferencing help and
resources.
When you install Skype for Business Server, the system provides you with a single collection of conferencing
configuration settings (the global collection). If you need to create custom settings for a site or service, you can do
so using the New -CsConferencingConfiguration cmdlet. Note that new settings can be applied only at the site or
service scope; you cannot create a new global collection of conferencing configuration settings. In addition, no site
or service can host more than one collection of settings. If you try to create new settings for the Redmond site and
the Redmond site already hosts a collection of conferencing configuration settings, then your command will fail.
Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsConferencingConfiguration -Identity site:Redmond -Organization Litwareinc

The command shown in Example 1 creates a new collection of conferencing configuration settings for the
Redmond site (site:Redmond). In this example, one additional parameter is included (Organization) which is used to
set the value of the Organization property to Litwareinc. Note that this command will fail if the Redmond site
already has a collection of conferencing configuration settings. That's because you can have only one such
collection per site.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsConferencingConfiguration -Identity site:Redmond -InMemory

$x.Organization = "Litwareinc"

Set-CsConferencingConfiguration -Instance $x

In Example 2, a new collection of conferencing configuration settings is initially created in memory only; these
virtual settings are only later applied to the Redmond site. To do this, the first command in the example uses the
New -CsConferencingConfiguration cmdlet to create a new, in-memory collection of settings stored in the variable
$x; the InMemory parameter specifies that the collection should be created in memory rather than immediately
applied to the Redmond site.
After the collection has been created, the second command sets the value of the Organization property to
Litwareinc. Finally, the third command uses the Set-CsConferencingConfiguration cmdlet to actually apply the new
settings to the Redmond site. (This command will fail if conferencing configuration settings have already been
applied to site:Redmond.) If you do not call the Set-CsConferencingConfiguration cmdlet the new settings will
never take effect. Instead, they will disappear as soon as you end your Windows PowerShell session or delete the
variable $x.

Parameters
-ClientAppSharingPort
Represents the starting port number used for application sharing. The ClientAppSharingPort must be a value port
number between 1024 and 65535, inclusive. The default value is 5350.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientAppSharingPortRange
Indicates the total number of ports available for application sharing. (The default value is 40.) To determine the
actual ports used for application sharing, use this value and the ClientAppSharingPort value. For example, if
ClientAppSharingPort is set to 5350 and ClientAppSharingPortRange is set to 3, then the following 3 ports are
available for application sharing: 5350; 5351; 5352.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientAudioPort
Represents the starting port number used for client audio. The ClientAudioPort must be a value port number
between 1024 and 65535, inclusive. The default value is 5350.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientAudioPortRange
Indicates the total number of ports available for client audio. (The default value is 40.) To determine the actual ports
used for client audio, use this value and the ClientAudioPort value. For example, if ClientAudioPort is set to 5350
and ClientAudioPortRange is set to 3, then the following 3 ports are available for client audio: 5350; 5351; 5352.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientFileTransferPort
Represents the starting port number used for file transfers. The ClientFileTransferPort must be a value port number
between 1024 and 65535, inclusive. The default value is 5350.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientFileTransferPortRange
Indicates the total number of ports available for file transfers. (The default value is 40.) To determine the actual
ports used for file transfers, use this value and the ClientFileTransferPort value. For example, if
ClientFileTransferPort is set to 5350 and ClientFileTransferPortRange is set to 3, then the following three ports are
available for file transfers: 5350; 5351; 5352.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientMediaPort
Represents the starting port number used for client media. Use this parameter for Microsoft Office Communicator
2007 R2 clients. The ClientMediaPort must be a value port number between 1024 and 65535, inclusive. The default
value is 5350.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientMediaPortRange
Indicates the total number of ports available for client media. (The default value is 40.) Use this parameter for
Office Communicator 2007 R2 clients. To determine the actual ports used for client media, use this value and the
ClientMediaPort value. For example, if ClientMediaPort is set to 5350 and ClientMediaPortRange is set to 3, then
the following three ports are available for client media: 5350; 5351; 5352.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientMediaPortRangeEnabled
When set to True, clients will use the specified port range for media traffic. When set to False (the default value) any
available port (from port 1024 through port 65535) will be used to accommodate media traffic.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientSipDynamicPort
Represents the starting port number used for SIP traffic. The ClientSipDynamicPort must be a value port number
between 1024 and 65535, inclusive. The default value is 7100.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientSipDynamicPortRange
Indicates the total number of ports available for SIP traffic. (The default value is 3.) To determine the actual ports
used for SIP traffic, use this value and the ClientSipDynamicPort value. For example, if ClientSipDynamicPort is set
to 7100 and ClientSipDynamicPortRange is set to 3, then the following three ports are available for client media:
7100; 7101; 7102.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientVideoPort
Represents the starting port number used for client video. The ClientVideoPort must be a value port number
between 1024 and 65535, inclusive. The default value is 5350.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientVideoPortRange
Indicates the total number of ports available for client video. (The default value is 40.) To determine the actual ports
used for client video, use this value and the ClientVideoPort value. For example, if ClientVideoPort is set to 5350
and ClientVideoPortRange is set to 3, then the following three ports are available for client video: 5350; 5351;
5352.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CloudPollServicePrimaryUrl
This parameter is not currently used with Skype for Business Server.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CloudPollServiceSecondaryUrl
This parameter is not currently used with Skype for Business Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConsoleDownloadExternalUrl
URL where external users can download a supported client such as Skype for Business. Note that this setting
applies only to legacy clients (such as Microsoft Office Communicator 2007 R2) that are logging on to a Skype for
Business Server 2015 pool.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConsoleDownloadInternalUrl
URL where internal users can download a supported client such as Skype for Business. Note that this setting
applies only to legacy clients (such as Microsoft Office Communicator 2007 R2) that are logging on to a Skype for
Business Server pool.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ContentGracePeriod
Indicates how long conference content will remain on the server following the end of a meeting. The
ContentGracePeriod must be specified using the format Days.Hours:Minutes:Seconds. For example, to set the
content grace period to 30 days use this syntax: -ContentGracePeriod 30.00:00:00.

The content grace period can be set to any value between 30 minutes (00:30:00) and 180 days (180.00:00:00). The
default value is 15 days (15.00:00:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpdeskExternalUrl
URL where external users who click Help during a conference will be directed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpdeskInternalUrl
URL where internal users who click Help during a conference will be directed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of conferencing configuration settings to be modified. To refer to a collection
configured at the site scope, use syntax similar to this: -Identity "site:Redmond". To refer to a collection at the
service scope, use syntax like the following: -Identity "service:ConferencingServer:atl-cs-001.litwareinc.com".
Note the Web Conferencing service is the only service that can host these configuration settings.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxBandwidthPerAppSharingServiceMb
Indicates the maximum amount of bandwidth (in megabytes) set aside for the Application Sharing Conferencing
service. MaxBandwidthPerAppSharingServiceMb can be set to any integer value between 50 and 100000,
inclusive. The default value is 375 megabytes.

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxContentStorageMb
Maximum amount of file space (in megabytes) allowed for the storage of conference content.
MaxContentStorageMb can be set to any integer value between 50 and 1024 (1 gigabyte), inclusive. The default
value is 500.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxUploadFileSizeMb
Maximum total size of the files (including handouts and PowerPoint slides) that can be used in a given conference.
This setting is typically used when conference content is being archived in Microsoft Exchange Server: by setting a
maximum upload file size you can ensure that the content used in the conference (and thus the content which must
be archived) does not exceed the maximum file size configured for Microsoft Exchange. The default value is 500
megabytes.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Organization
Name of the organization hosting the conference.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsConferencingConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsConferencingConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings object.

Related Links
Get-CsConferencingConfiguration
Remove-CsConferencingConfiguration
Set-CsConferencingConfiguration
minutes to read • Edit Online

New-CsConferencingPolicy
In ths Article

Creates a new conferencing policy for use in your organization. Conferencing policies determine the features and
capabilities that can be used in a conference; this includes everything from whether or not the conference can
include IP audio and video to the maximum number of people who can attend a meeting. This cmdlet was
introduced in Lync Server.

Syntax
New-CsConferencingPolicy [-Tenant <System.Guid>] [-AllowIPAudio <Boolean>] [-AllowIPVideo <Boolean>]
[-AllowMultiView <Boolean>] [-Description <String>] [-AllowParticipantControl <Boolean>]
[-AllowAnnotations <Boolean>] [-DisablePowerPointAnnotations <Boolean>]
[-AllowUserToScheduleMeetingsWithAppSharing <Boolean>] [-ApplicationSharingMode <String>]
[-AllowNonEnterpriseVoiceUsersToDialOut <Boolean>] [-AllowAnonymousUsersToDialOut <Boolean>]
[-AllowAnonymousParticipantsInMeetings <Boolean>] [-AllowFederatedParticipantJoinAsSameEnterprise <Boolean>]
[-AllowExternalUsersToSaveContent <Boolean>] [-AllowExternalUserControl <Boolean>]
[-AllowExternalUsersToRecordMeeting <Boolean>] [-AllowPolls <Boolean>] [-AllowSharedNotes <Boolean>]
[-AllowQandA <Boolean>] [-AllowOfficeContent <Boolean>] [-EnableDialInConferencing <Boolean>]
[-EnableAppDesktopSharing <EnableAppDesktopSharing>] [-AllowConferenceRecording <Boolean>]
[-EnableP2PRecording <Boolean>] [-EnableFileTransfer <Boolean>] [-EnableP2PFileTransfer <Boolean>]
[-EnableP2PVideo <Boolean>] [-AllowLargeMeetings <Boolean>]
[-EnableOnlineMeetingPromptForLyncResources <Boolean>] [-EnableDataCollaboration <Boolean>]
[-MaxVideoConferenceResolution <MaxVideoConferenceResolution>] [-MaxMeetingSize <UInt32>]
[-AudioBitRateKb <UInt32>] [-VideoBitRateKb <Int64>] [-AppSharingBitRateKb <Int64>]
[-FileTransferBitRateKb <Int64>] [-TotalReceiveVideoBitRateKb <Int64>] [-EnableMultiViewJoin <Boolean>]
[-CloudRecordingServiceSupport <CloudRecordingServiceSupport>] [-EnableReliableConferenceDeletion <Boolean>]
[-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Conferencing is an important part of Skype for Business Server: conferencing enables groups of users to come
together online to view slides and video, share applications, exchange files, and otherwise communicate and
collaborate.
It's important for administrators to maintain control over conferences and conference settings. In some cases, there
might be security concerns: by default, anyone, including unauthenticated users, can participate in meetings and
save any of the slides or handouts distributed during those meetings. In other cases, there might be bandwidth
concerns: having a multitude of simultaneous meetings, each involving hundreds of participants and each featuring
video feeds and file sharing, has the potential to cause problems with your network. In addition, there might be
occasional legal concerns. For example, by default meeting participants are allowed to make annotations on shared
content; however, these annotations are not saved when the meeting is archived. If your organization is required to
keep a record of all electronic communication, you might want to disable annotations.
Needing to manage conferencing settings is one thing; actually managing these settings is another. In Skype for
Business Server, conferences are managed by using conferencing policies. (In previous versions of the software,
these were known as meeting policies.) As noted, conferencing policies determine the features and capabilities that
can be used in a conference, including everything from whether or not the conference can include IP audio and
video to the maximum number of people who can attend a meeting. Conferencing policies can be configured at the
global scope; at the site scope; or at the per-user scope. This provides administrators with enormous flexibility when
it comes to deciding which capabilities will be made available to which users.
The New -CsConferencingPolicy cmdlet enables you to create new conferencing policies at either the site or the
per-user scope. You cannot create a new global policy because the global policy already exists. However, you can
modify the property values of the global policy by using the Set-CsConferencingPolicy cmdlet.
The following parameters are not applicable to Skype for Business Online: ApplicationSharingMode, AsJob,
AudioBitRateKb, Description, EnableMultiViewJoin, EnableOnlineMeetingPromptForLyncResources,
EnableReliableConferenceDeletion, FileTransferBitRateKb, Force, Identity, InMemory, MaxMeetingSize,
MaxVideoConferenceResolution, PipelineVariable, Tenant, and TotalReceiveVideoBitRateKb.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsConferencingPolicy -Identity SalesConferencingPolicy -MaxMeetingSize 50

The command shown in Example 1 uses the New -CsConferencingPolicy cmdlet to create a new conferencing policy
with the Identity SalesConferencingPolicy. This policy will use all the default values for a conferencing policy except
one: MaxMeetingSize; in this example, the maximum size for a meeting will be set to 50 instead of the default value
of 250.
-------------------------- EXAMPLE 2 --------------------------

New-CsConferencingPolicy -Identity site:Redmond -MaxMeetingSize 100 -AllowParticipantControl $False

In Example 2, the New -CsConferencingPolicy cmdlet is used to create a conferencing policy with the Identity
site:Redmond. In this example two different property values are configured: MaxMeetingSize is set to 100 and
AllowParticipantControl is set to False. All other policy properties will use the default values.

Parameters
-AllowAnnotations
Indicates whether or not participants are allowed to make on-screen annotations on any content shared during the
meeting; in addition, this setting determines whether or not whiteboarding is allowed in the conference. The default
value is True.
Note that annotations are not archived along with other meeting content.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will include annotations. However, the user can participate in other conferences where
annotations are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowAnonymousParticipantsInMeetings
Indicates whether anonymous users are allowed to participate in the meeting. If set to False then only authenticated
users (that is, users logged on to your Active Directory Domain Services or the Active Directory of a federated
partner) are allowed to attend the meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow anonymous participants. However, the user can take part in other conferences
where anonymous participants are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowAnonymousUsersToDialOut
Indicates whether or not anonymous users (unauthenticated users) are allowed to join a conference using dial-out
phoning. With dial-out phoning, the conferencing server telephones the user; when the user answers the phone, he
or she will be joined to the conference.
Note that dial-in conferencing is allowed even if this setting is False.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow anonymous participants to join the conference via dial-out phoning. However, the
user can take part in other conferences where anonymous users can join via dial out.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowConferenceRecording
Indicates whether users are allowed to record the meeting. The default value is False.
This setting applies to all users taking part in the conference.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExternalUserControl
Indicates whether external users (either anonymous users or federated users) are allowed to take control of shared
applications or desktops. The default value is False.
This setting is enforced at the per-user level, and for both conferences and peer-to-peer communication sessions.
That means that some users in a session might be allowed to give up control of a shared application or desktop to
an external user while other users might not be allowed to give up control.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExternalUsersToRecordMeeting
Indicates whether external users (either anonymous users or federated users) are allowed to record the meeting.
The default value is False.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow external users to record conferences. However, the user can take part in other
conferences where external users are allowed to record meetings.
Note that this setting takes effect only if the AllowConferenceRecording property is set to True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExternalUsersToSaveContent
Indicates whether external users (that is, users not currently logged-on to your network) are allowed to save
handouts, slides, and other meeting content. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow external users to save content. However, the user can take part in other
conferences where external users are allowed to save content.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowFederatedParticipantJoinAsSameEnterprise
When set to True ($True), allows federated meeting participants to join the meeting as though they were internal
users rather than external users.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowIPAudio
Indicates whether or not computer audio is allowed in the meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow IP audio. However, the user can take part in other conferences where IP audio is
allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowIPVideo
Indicates whether or not computer video is allowed in the meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow IP video. However, the user can take part in other conferences where IP video is
allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowLargeMeetings
When set to True, all online meetings are treated as "large meeting." With a large meeting, restrictions are placed
on the number of notifications that are sent to participants as well as the size of the meeting roster that is
transmitted by default.
The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowMultiView
When set to True (the default value) enables users to schedule conferences that allow multiview; that is, clients can
receive multiple video streams during a given conference. This setting applies to the user who organizes the
conference: if set to False, no conference created by a user affected by this policy can include multiview. However,
the user can participate in other conferences where multiview is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowNonEnterpriseVoiceUsersToDialOut
Indicates whether or users who have not been enabled for Enterprise Voice are allowed to join a conference using
dial-out phoning. With dial-out phoning the conferencing server will telephone the user; when the user answers the
phone, he or she will be joined to the conference.
Note that dial-in conferencing is allowed even when this setting is False.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow users who have not been enabled for Enterprise Voice to join the conference via
dial-out phoning. However, the user can take part in other conferences where users who have not been enabled for
Enterprise Voice can join via dial out.
The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowOfficeContent
When set to False, prevents users from using Office content in their conferences.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowParticipantControl
Indicates whether or not meeting participants are allowed to take control of applications or desktops shared during
the meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow participant control. However, the user can take part in other conferences where
participant control is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowPolls
Indicates whether or not users are allowed to conduct online polls during a meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow polls. However, the user can take part in other conferences where polls are allowed.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowQandA
When set to True (the default value) the user will be able to include the Questions and Answers Manager in any
online conference that he or she organizes. When set to False, the user will be prohibited from including Questions
and Answers Manager in any of his or her conferences.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow the use of the Questions and Answers Manager. However, the user can make use
of the Questions and Answers Manager in other conferences where polls are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowSharedNotes
When set to True (the default value) any open OneNote notebooks linked to the conference will automatically be
updated with information such as conference participants and details about content shared during the conference.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowUserToScheduleMeetingsWithAppSharing
Indicates whether or not users are allowed to organize meetings that include application sharing. The default value
is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow application sharing. However, the user can take part in other conferences where
application sharing is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ApplicationSharingMode
Determines the protocol used for screen sharing - VbSS vs RDP. This parameter is used only in SfB Server. To
disable VbSS for a user, use the value "RDP".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AppSharingBitRateKb
Bit rate (in kilobits) used for application sharing. The default value is 50000.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioBitRateKb
Bit rate (in kilobits) used for audio transmissions. The audio bit rate can be any whole number between 20 and 200,
inclusive; the default value is 200.
This setting is enforced at the per-user level, and for both conferences and peer-to-peer communication sessions.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CloudRecordingServiceSupport
{{Fill CloudRecordingServiceSupport Description}}

Type: CloudRecordingServiceSupport
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provider explanatory text about the conferencing policy. For example, the Description
might indicate the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePowerPointAnnotations
When set to True ($True) users will not be able to add annotations to PowerPoint slides used in a conference.
However (depending on the value of the AllowAnnotations property), users will still have access to other
whiteboarding features. The default value is False, meaning that PowerPoint annotations are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAppDesktopSharing
Indicates whether participants are allowed to share applications (or their desktop) during the course of a meeting.
Allowed values are:
Desktop. Users are allowed to share their entire desktop.
SingleApplication. Users are allowed to share a single application.
None. Users are not allowed to share applications or their desktop.
This setting is enforced at the per-user level. That means that some users in a conference might be allowed to share
their desktop or applications while other users in the same conference might not be allowed to do so.
The default value is Desktop.

Type: EnableAppDesktopSharing
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDataCollaboration
Indicates whether users can organize meetings that include data collaboration activities such as whiteboarding and
annotations.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow data collaboration. However, the user can take part in other conferences where
data collaboration is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDialInConferencing
Indicates whether users are able to join the meeting by dialing in with a public switched telephone network (PSTN )
telephone. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow dial-in conferencing. However, the user can take part in other conferences where
dial-in conferencing is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFileTransfer
Indicates whether file transfers to all the meeting participants are allowed during the meeting. The default value is
True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow file transfers. However, the user can take part in other conferences where file
transfers are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMultiViewJoin
When set to True (the default value) clients will attempt to join a conference using multiview (which allows the
client to receive multiple video streams during the conference). This parameter will be ignored if multiview is not
allowed in the conference being joined. This setting is enforced at the per-user level, and for both conferences and
peer-to-peer communication sessions. That means that some users in a session might be allowed to have multiple
video streams while other users in the same conference might not.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOnlineMeetingPromptForLyncResources
When set to True, users will be prompted any time they schedule a meeting in Outlook that includes invitees (such
as a meeting room) that would benefit from having the meeting held online. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableP2PFileTransfer
Indicates whether peer-to-peer file transfers (that is, file transfers that do not involve all participants) are allowed
during the meeting. The default value is True.
This setting is enforced at the per-user level. That means that one user in a peer-to-peer communication session
might be allowed to transfer files while the other user is not.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableP2PRecording
If True, users will be able to record peer-to-peer conferencing sessions. The default value is False.
This setting is enforced at the per-user level. That means that one user in a peer-to-peer communication session
might be allowed to record the session while the other user is not.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableP2PVideo
If True, users will be able to take part in peer-to-peer video conferencing sessions. The default value is False.
This setting is enforced at the per-user level. That means that one user in a peer-to-peer communication session
might be allowed to use video the session while the other user is not.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableReliableConferenceDeletion
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileTransferBitRateKb
Bit rate (in kilobits) used for file transfers. The default value is 50000.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the conferencing policy to be created. Conferencing policies can be created at the site or per-
user scopes. To create a site policy, use syntax similar to this: -Identity site:Redmond. To create a per-user policy,
use syntax similar to this: -Identity SalesConferencingPolicy.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxMeetingSize
Indicates the maximum number of people who are allowed to attend a meeting. After the maximum number of
participants has been reached, anyone else who tries to join the meeting will be turned away with the notice that
the meeting is full. The number of participants specified in this value can be any 32-bit whole number (any value
between 1 and 4,294,967,295), but the recommended size is between 2 and 250, inclusive; the default value is 250.
250 is the maximum for shared pool deployments, based on Microsoft testing. For information about supporting
meeting with more than 250 participants, see "Microsoft Lync Server 2010 Support for Large Meetings" at
http://go.microsoft.com/fwlink/p/?linkId=242073 (http://go.microsoft.com/fwlink/p/?linkId=242073).
This setting applies to the user who organizes the conference: no conference created by a user affected by this
policy will allow more than the specified number of participants. However, the user can take part in other
conferences where additional participants are allowed.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxVideoConferenceResolution
Indicates the maximum resolution for meeting video. Allowed values are:
CIF. Common Intermediate Format (CIF ) has a resolution of 352 pixels by 288 pixels.
VGA. VGA has a resolution of 640 pixels by 480 pixels.
The default value is VGA.

Type: MaxVideoConferenceResolution
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new conferencing
policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TotalReceiveVideoBitRateKb
Indicates the maximum allowed bitrate (in kilobytes per second) for all the video used in a conference; that is, the
combined total for all the video streams. The default value is 50000 kilobytes per second.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoBitRateKb
Bit rate (in kilobits) used for video transmissions. The default value is 50000.
This setting is enforced at the per-user level, and for both conferences and peer-to-peer communication sessions.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Inputs
None. The New -CsConferencingPolicy cmdlet does not accept pipelined input.

Outputs
System.Object

Outputs
The New -CsConferencingPolicy cmdlet creates a new instance of the
Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingPolicy object.

Related Links
Get-CsConferencingPolicy
Grant-CsConferencingPolicy
Remove-CsConferencingPolicy
Set-CsConferencingPolicy
minutes to read • Edit Online

New-CsCpsConfiguration
In ths Article

Creates a new collection of Call Park service settings. Call parking is a service that allows a user to "park" an
incoming phone call. Parking a call transfers it to a number in a specified range, or orbit, and immediately places the
call on hold. Anyone (not just the person who originally answered the call) can resume the conversation from any
telephone by entering the correct number. This cmdlet was introduced in Lync Server.

Syntax
New-CsCpsConfiguration [-Identity] <XdsIdentity> [-CallPickupTimeoutThreshold <TimeSpan>]
[-EnableMusicOnHold <Boolean>] [-MaxCallPickupAttempts <Int32>] [-OnTimeoutURI <String>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet is used to create a new Call Park service configuration. When Call Park service is installed, global
settings are configured by default and can be updated but cannot be removed. ("Removing" the global settings
simply resets them to the default values.) Therefore this cmdlet is used to create only site-specific settings.
A Call Park service configuration specifies what happens to a call once it's parked. For example, if a parked call isn't
answered after a period of time it can be automatically forwarded to someone else, such as an administrator, or to a
Response Group. Calls can be configured to ring after a certain period of time to ensure the call isn't forgotten. In
addition, Call Park service can be configured to play music on hold to the caller while the call is parked.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsCpsConfiguration -Identity site:Redmond -EnableMusicOnHold $False

The command shown in Example 1 uses the New -CsCpsConfiguration cmdlet to create a Call Park service
configuration for site Redmond. This configuration will be created with default values with the exception of
EnableMusicOnHold. This command sets this property to False, meaning the caller whose call has been parked will
not hear anything while on hold. (EnableMusicOnHold is set to True by default, assuming Call Park service has
been deployed.)
-------------------------- EXAMPLE 2 --------------------------

New-CsCpsConfiguration -Identity site:Redmond -OnTimeoutURI sip:kenmyer@litwareinc.com

The command shown in Example 2 uses the New -CsCpsConfiguration cmdlet to create a Call Park service
configuration for site Redmond1. By default no OnTimeoutURI is supplied, so this example adds a value for that
parameter. In this case the OnTimeoutURI is set to sip:kenmyer@litwareinc.com. The value passed to this
parameter must begin with the string "sip:" and should point to a user or Response Group that will receive parked
calls that aren't picked up after a specified number of ringback attempts.
-------------------------- EXAMPLE 3 --------------------------

New-CsCpsConfiguration -Identity site:Redmond -MaxCallPickupAttempts 2

This command uses the New -CsCpsConfiguration cmdlet to create a Call Park service configuration for site
Redmond1. For this site, the MaxCallPickupAttempts has been set to 2. That means the call rings back up to two
times.

Parameters
-CallPickupTimeoutThreshold
The amount of time that will elapse after a call has been parked before it will ring back to the phone on which the
call was answered.
This must be entered in the format hh:mm:ss (hh = hours, mm = minutes, ss = seconds)
Default: 00:01:30 (90 seconds); Minimum Value: 10 seconds (00:00:10); Maximum Value: 10 minutes (00:10:00)

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMusicOnHold
Determines whether music plays for the caller while a call is parked.
Skype for Business Server ships with a default Music on Hold file. You can change this file (thereby changing the
music the caller hears while parked) with the Set-CsCallParkServiceMusicOnHoldFile cmdlet.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The site to which the settings are applied. This must be entered in the format site:<sitename>, such as
site:Redmond. A configuration will always exist at the global scope and can't be removed, so a global configuration
can't be re-created with this cmdlet.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxCallPickupAttempts
The number of times a parked call will ring back to the answering phone before giving up and forwarding the call
to the fallback Uniform Resource Identifier (URI). The fallback URI is set with the OnTimeoutURI parameter.
Default: 1; Minimum Value: 1; Maximum Value: 10

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnTimeoutURI
The SIP address of the user or Response Group to which unanswered parked calls will be routed. The parked call
will be routed after the number of ringbacks defined with the MaxCallPickupAttempts parameter. If that parameter
is set to Null, the OnTimeoutURI will be ignored and the parked call will be disconnected after unsuccessful
ringback attempts.
Values must be SIP URIs, beginning with the string sip:. For example, sip:rgs1@litwareinc.com.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings.

Related Links
Remove-CsCpsConfiguration
Set-CsCpsConfiguration
Get-CsCpsConfiguration
Set-CsCallParkServiceMusicOnHoldFile
minutes to read • Edit Online

New-CsDeviceUpdateConfiguration
In ths Article

Below Content Applies To: Lync Server 2010 Creates a new instance of device update configuration settings. These
settings are used to manage the Device Update Web service, a Microsoft Lync Server 2010 component that enables
administrators to distribute firmware updates to telephones and other devices running Microsoft Lync 2010 Phone
Edition. Below Content Applies To: Lync Server 2013 Creates a new instance of device update configuration
settings. These settings are used to manage the Device Update Web service, a Lync Server component that enables
administrators to distribute firmware updates to telephones and other devices running Lync Server. This cmdlet
was introduced in Lync Server 2010. Below Content Applies To: Skype for Business Server 2015 Creates a new
instance of device update configuration settings. These settings are used to manage the Device Update Web
service, a Skype for Business Server 2015 component that enables administrators to distribute firmware updates to
telephones and other devices running Skype for Business Server 2015. This cmdlet was introduced in Lync Server
2010.

Syntax
New-CsDeviceUpdateConfiguration [-Identity] <XdsIdentity> [-LogCleanUpInterval <TimeSpan>]
[-LogCleanUpTimeOfDay <DateTime>] [-LogFlushInterval <TimeSpan>] [-MaxLogCacheLimit <UInt32>]
[-MaxLogFileSize <UInt32>] [-ValidLogFileExtensions <PSListModifier>] [-ValidLogFileTypes <PSListModifier>]
[-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Below Content Applies To: Lync Server 2010
The Device Update Web service provides a way for administrators to distribute firmware updates to devices that
run Lync 2010 Phone Edition. Periodically, administrators upload a set of device update rules to Lync Server 2010.
After those rules have been tested and approved, they can then be applied to the appropriate devices as those
devices connect to the system. Devices check for updates when they are first powered on, then check again when a
user logs on. After that, devices check for updates every 24 hours.
Device update configuration settings, which are used to manage the Device Update Web service, can be assigned to
the global level or to the site scope. To create a new collection of settings for a site, use the New -
CsDeviceUpdateConfiguration cmdlet. Note that you can only create new settings at the site scope; your command
will fail if you try to create a new collection of settings at the global scope. In addition, your command will fail if you
try to create a new collection of settings for, say, the Redmond site, and that site already hosts a collection of device
update configuration settings. That's because you can only have one collection of device update configuration
settings per site.
Who can run this cmdlet: By default, members of the following groups are authorized to run the New -
CsDeviceUpdateConfiguration cmdlet locally: RTCUniversalServerAdmins. To return a list of all the role-based
access control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created
yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "New -CsDeviceUpdateConfiguration"}
Below Content Applies To: Lync Server 2013
The Device Update Web service provides a way for administrators to distribute firmware updates to devices that
run Lync Server. Periodically, administrators upload a set of device update rules to Lync Server. After those rules
have been tested and approved, they can then be applied to the appropriate devices as those devices connect to the
system. Devices check for updates when they are first powered on, then check again when a user logs on. After that,
devices check for updates every 24 hours.
Device update configuration settings, which are used to manage the Device Update Web service, can be assigned to
the global level or to the site scope. To create a new collection of settings for a site, use the New -
CsDeviceUpdateConfiguration cmdlet. Note that you can only create new settings at the site scope; your command
will fail if you try to create a new collection of settings at the global scope. In addition, your command will fail if you
try to create a new collection of settings for, say, the Redmond site, and that site already hosts a collection of device
update configuration settings. That's because you can only have one collection of device update configuration
settings per site.
Who can run this cmdlet: By default, members of the following groups are authorized to run the New -
CsDeviceUpdateConfiguration cmdlet locally: RTCUniversalServerAdmins. To return a list of all the role-based
access control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created
yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "New -CsDeviceUpdateConfiguration"}
Below Content Applies To: Skype for Business Server 2015
The Device Update Web service provides a way for administrators to distribute firmware updates to devices that
run Skype for Business Server 2015. Periodically, administrators upload a set of device update rules to Skype for
Business Server 2015. After those rules have been tested and approved, they can then be applied to the appropriate
devices as those devices connect to the system. Devices check for updates when they are first powered on, then
check again when a user logs on. After that, devices check for updates every 24 hours.
Device update configuration settings, which are used to manage the Device Update Web service, can be assigned to
the global level or to the site scope. To create a new collection of settings for a site, use the New -
CsDeviceUpdateConfiguration cmdlet. Note that you can only create new settings at the site scope; your command
will fail if you try to create a new collection of settings at the global scope. In addition, your command will fail if you
try to create a new collection of settings for, say, the Redmond site, and that site already hosts a collection of device
update configuration settings. That's because you can only have one collection of device update configuration
settings per site.

Examples
-------------------------- Example 1 ------------------------ (Lync Server 2010)

New-CsDeviceUpdateConfiguration -Identity site:Redmond

The command shown in Example 1 creates a new set of device update configuration settings with the Identity
site:Redmond. Because no other parameters are included in the command, this new collection of configuration
settings will use the default values for each property.
-------------------------- EXAMPLE 1 -------------------------- (Lync Server 2013)

The command shown in Example 1 creates a new set of device update configuration settings with the Identity
site:Redmond. Because no other parameters are included in the command, this new collection of configuration
settings will use the default values for each property.
New -CsDeviceUpdateConfiguration -Identity site:Redmond
-------------------------- EXAMPLE 1 -------------------------- (Skype for Business Server 2015)

The command shown in Example 1 creates a new set of device update configuration settings with the Identity
site:Redmond. Because no other parameters are included in the command, this new collection of configuration
settings will use the default values for each property.
New -CsDeviceUpdateConfiguration -Identity site:Redmond
-------------------------- Example 2 ------------------------ (Lync Server 2010)

New-CsDeviceUpdateConfiguration -Identity site:Redmond -MaxLogFileSize 204800 -LogCleanUpInterval 7.00:00:00

The preceding command also creates a new set of device update configuration settings with the Identity
site:Redmond. In this case, two additional parameters are used in order to customize the new settings:
MaxLogFileSize is used to set the maximum log file size to 2048000 bytes, while LogCleanUpInterval is used to set
the log cleanup interval time to 7 days (7 days . 00 hours : 00 minutes : 00 seconds).
-------------------------- EXAMPLE 2 -------------------------- (Lync Server 2013)

Example 2 also creates a new set of device update configuration settings with the Identity site:Redmond. In this
case, two additional parameters are used in order to customize the new settings: MaxLogFileSize is used to set the
maximum log file size to 2048000 bytes, while LogCleanUpInterval is used to set the log cleanup interval time to 7
days (7 days . 00 hours : 00 minutes : 00 seconds).
New -CsDeviceUpdateConfiguration -Identity site:Redmond -MaxLogFileSize 204800 -LogCleanUpInterval
7.00:00:00
-------------------------- EXAMPLE 2 -------------------------- (Skype for Business Server 2015)

Example 2 also creates a new set of device update configuration settings with the Identity site:Redmond. In this
case, two additional parameters are used in order to customize the new settings: MaxLogFileSize is used to set the
maximum log file size to 2048000 bytes, while LogCleanUpInterval is used to set the log cleanup interval time to 7
days (7 days . 00 hours : 00 minutes : 00 seconds).
New -CsDeviceUpdateConfiguration -Identity site:Redmond -MaxLogFileSize 204800 -LogCleanUpInterval
7.00:00:00

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the new device update configuration settings. Because new settings can only be created at
the site scope, the Identity will look something like this: -Identity "site:Redmond".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Below Content Applies To: Lync Server 2010, Lync Server 2013
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.
Below Content Applies To: Skype for Business Server 2015
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogCleanUpInterval
Specifies the amount of time a device update log file is kept before it is deleted by the system.
The value must be entered in the format dd.hh:mm:ss where dd is days, hh is hours, mm is minutes, and ss is
seconds. To enter only days, you must follow the value with a period (.).
Minimum Value: 1.00:00:00 (1 Day)
Maximum Value: 365.00:00:00 (1 Year)
Default: 10.00:00:00 (10 Days)

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogCleanUpTimeOfDay
Indicates the time of day when the system checks to see if there are any expired log files that should be deleted.
(Expired log files are any files older than the value specified in by the LogCleanupInterval property.)

The value passed to the LogCleanupTimeOfDay parameter must be in the 24-hour time format hh:mm, where hh
represents the hours and mm represents the minutes. In this format, midnight is represented as 00:00; 8:30 A.M. is
represented as 08:30; and 11:52 P.M. is represented as 23:52. The default value is null.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogFlushInterval
Indicates how often information stored in the log file cache is written to the actual log file. By default, device update
information is not immediately written to the log file; instead, that information is cached in memory until: 1) the log
flush time interval has expired; or, 2) the cache has reached its maximum size. If this value is set to 10 minutes
(00:10:00), then information in the cache will be written to the log file every 10 minutes. After the data has been
logged the cache will be cleared.
The value must be entered in the format hh:mm:ss where hh is hours, mm is minutes, and ss is seconds.
Minimum Value: 00:01:00 (1 minute)
Maximum Value: 1:00:00 (1 hour)
Default: 00:05:00

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxLogCacheLimit
Indicates the maximum amount of information (in bytes) that can be held in the log file cache before that cache
must be cleared and the data written to a log file. By default, log files are "flushed" every X number of minutes. (For
details, see the description of the parameter LogFlushInterval.) However, if the cache reaches its maximum size, the
information in it will automatically be written to a log file (and the cache cleared) even if the log flush interval has
not yet expired.
Default: 512000

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxLogFileSize
Indicates the maximum size, in bytes, for an individual log file. When a file reaches the maximum size, the next
batch of data is automatically written to a new log file. The old log file will be retained until the log cleanup interval
has expired.
Default: 1024000

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ValidLogFileExtensions
Below Content Applies To: Lync Server 2010
Indicates the valid log file extensions that can be used with the Device Update Web service. This list can be
modified; however, there is no reason to modify the list unless you have a device running Lync 2010 Phone Edition
that creates log files that use a different file extension.
Default: .dmp, .clg, .clg2, .bak, .kdmp, .dat, .bin, .cat, .xml, .txt, .hex
Below Content Applies To: Lync Server 2013
Indicates the valid log file extensions that can be used with the Device Update Web service. This list can be
modified; however, there is no reason to modify the list unless you have a device running Lync Server that creates
log files that use a different file extension.
Default: .dmp, .clg, .clg2, .bak, .kdmp, .dat, .bin, .cat, .xml, .txt, .hex
Below Content Applies To: Skype for Business Server 2015
Indicates the valid log file extensions that can be used with the Device Update Web service. This list can be
modified; however, there is no reason to modify the list unless you have a device running Skype for Business that
creates log files that use a different file extension.
Default: .dmp, .clg, .clg2, .bak, .kdmp, .dat, .bin, .cat, .xml, .txt, .hex

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ValidLogFileTypes
Below Content Applies To: Lync Server 2010
Indicates the log file types retained by the device update system. The default file types include the following:
Watson. Log files automatically generated by a device in the event of a system crash.
Config. Microsoft RoundTable conferencing device profiles that are created any time you configure a RoundTable
device.
DiagLog. Self-diagnostic data for RoundTable devices.
CELog. Logs for phones running Lync 2010 that contain the results of functional tests as well as a record of critical
system events.
Additional file types can be added if you have a device running Lync 2010 Phone Edition that creates a different
kind of log file. You can also remove files. For example, if you do not want to store CELog files then you can remove
the CELog file type.
Below Content Applies To: Lync Server 2013
Indicates the log file types retained by the device update system. The default file types include the following:
Watson. Log files automatically generated by a device if the system stops responding.
CELog. Logs for phones running Lync that contain the results of functional tests and a record of critical system
events.
Additional file types can be added if you have a device running Lync Phone Edition that creates a different kind of
log file. You can also remove files. For example, if you do not want to store CELog files then you can remove the
CELog file type.
Below Content Applies To: Skype for Business Server 2015
Indicates the log file types retained by the device update system. The default file types include the following:
Watson. Log files automatically generated by a device if the system stops responding.
CELog. Logs for phones running Skype for Business that contain the results of functional tests and a record of
critical system events.
Additional file types can be added if you have a device running Skype for Business Phone Edition that creates a
different kind of log file. You can also remove files. For example, if you do not want to store CELog files then you
can remove the CELog file type.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsDeviceUpdateConfiguration does not accept pipelined input.

Inputs
None. The New -CsDeviceUpdateConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsDeviceUpdateConfiguration cmdlet creates instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration object.

Related Links
Online Version
Get-CsDeviceUpdateConfiguration
Remove-CsDeviceUpdateConfiguration
Set-CsDeviceUpdateConfiguration
Online Version
Online Version
minutes to read • Edit Online

New-CsDiagnosticConfiguration
In ths Article

Below Content Applies To: Lync Server 2010 Creates new diagnostic configuration settings. Diagnostic
configuration settings are used to determine whether traffic to or from a given domain or Uniform Resource
Identifier (URI) is recorded in your Microsoft Lync Server 2010 log files. Below Content Applies To: Lync Server
2013 Creates new diagnostic configuration settings. Diagnostic configuration settings are used to determine
whether traffic to or from a given domain or Uniform Resource Identifier (URI) is recorded in your Lync Server log
files. This cmdlet was introduced in Lync Server 2010. Below Content Applies To: Skype for Business Server 2015
Creates new diagnostic configuration settings. Diagnostic configuration settings are used to determine whether
traffic to or from a given domain or Uniform Resource Identifier (URI) is recorded in your Skype for Business
Server 2015 log files. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsDiagnosticConfiguration [-Identity] <XdsIdentity> [-Filter <Filter>] [-LoggingShare <String>] [-Force]
[-InMemory] [-WhatIf] [-Confirm] [-LogAllSipHeaders <Boolean>] [<CommonParameters>]

Description
Below Content Applies To: Lync Server 2010
If you enable logging for Lync Server 2010 then, by default, traffic traveling to or from any domain or URI is
included in those log files. This ensures that as much information as possible is recorded in the log files.
However, this can occasionally result in too much information. For example, if you are experiencing connectivity
problems with a particular domain, you might want to limit logging to traffic between your network and that
domain; that makes it easier for you to identify the relevant records and, in turn, might make it easier for you to
diagnose and correct the problem.
Diagnostic configuration settings make it possible for you to specify the domains or URIs that will be recorded in
the log files; for example, you can log only the traffic to or from specified domains. Lync Server enables you to
create diagnostic configuration settings at the site scope. In turn, this enables you to apply different settings to, say,
the Redmond site than you do on your other sites.
Note that you cannot create diagnostic configuration settings at the global scope; that's because the global scope
already hosts these settings. Likewise, you cannot create a new settings collection at the site scope if the specified
site already contains diagnostic configuration settings. For example, your command will fail if you try to create a
new collection for the Redmond site and that site already hosts diagnostic configuration settings.
Who can run this cmdlet: By default, members of the following groups are authorized to run the New -
CsDiagnosticConfiguration cmdlet locally: RTCUniversalServerAdmins. To return a list of all the role-based access
control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created
yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "New -CsDiagnosticConfiguration"}
Below Content Applies To: Lync Server 2013
If you enable logging for Lync Server then, by default, traffic traveling to or from any domain or URI is included in
those log files. This ensures that as much information as possible is recorded in the log files.
However, this can occasionally result in too much information. For example, if you are experiencing connectivity
problems with a particular domain, you might want to limit logging to traffic between your network and that
domain; that makes it easier for you to identify the relevant records and, in turn, might make it easier for you to
diagnose and correct the problem.
Diagnostic configuration settings make it possible for you to specify the domains or URIs that will be recorded in
the log files; for example, you can log only the traffic to or from specified domains. Lync Server enables you to
create diagnostic configuration settings at the site scope. In turn, this enables you to apply different settings to, say,
the Redmond site than you do on your other sites.
Note that you cannot create diagnostic configuration settings at the global scope; that's because the global scope
already hosts these settings. Likewise, you cannot create a new settings collection at the site scope if the specified
site already contains diagnostic configuration settings. For example, your command will fail if you try to create a
new collection for the Redmond site and that site already hosts diagnostic configuration settings.
Who can run this cmdlet: By default, members of the following groups are authorized to run the New -
CsDiagnosticConfiguration cmdlet locally: RTCUniversalServerAdmins. To return a list of all the role-based access
control (RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created
yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "New -CsDiagnosticConfiguration"}
Below Content Applies To: Skype for Business Server 2015
If you enable logging for Skype for Business Server 2015 then, by default, traffic traveling to or from any domain
or URI is included in those log files. This ensures that as much information as possible is recorded in the log files.
However, this can occasionally result in too much information. For example, if you are experiencing connectivity
problems with a particular domain, you might want to limit logging to traffic between your network and that
domain; that makes it easier for you to identify the relevant records and, in turn, might make it easier for you to
diagnose and correct the problem.
Diagnostic configuration settings make it possible for you to specify the domains or URIs that will be recorded in
the log files; for example, you can log only the traffic to or from specified domains. Skype for Business Server 2015
enables you to create diagnostic configuration settings at the site scope. In turn, this enables you to apply different
settings to, say, the Redmond site than you do on your other sites.
Note that you cannot create diagnostic configuration settings at the global scope; that's because the global scope
already hosts these settings. Likewise, you cannot create a new settings collection at the site scope if the specified
site already contains diagnostic configuration settings. For example, your command will fail if you try to create a
new collection for the Redmond site and that site already hosts diagnostic configuration settings.

Examples
-------------------------- Example 1 ------------------------ (Lync Server 2010)

New-CsDiagnosticConfiguration -Identity site:Redmond

The preceding command creates a new collection of diagnostic configuration settings for the Redmond site.
-------------------------- EXAMPLE 1 -------------------------- (Lync Server 2013)
Example 1 creates a new collection of diagnostic configuration settings for the Redmond site.
New -CsDiagnosticConfiguration -Identity site:Redmond
-------------------------- EXAMPLE 1 -------------------------- (Skype for Business Server 2015)

Example 1 creates a new collection of diagnostic configuration settings for the Redmond site.
New -CsDiagnosticConfiguration -Identity site:Redmond
-------------------------- Example 2 ------------------------ (Lync Server 2010)

$x = New-CsDiagnosticsFilter -Fqdn fabrikam.com -Uri "sip:user@fabrikam.com" -Enabled $False

New-CsDiagnosticConfiguration -Identity site:Redmond -Filter $x

The commands shown in Example 2 create a new diagnostics filter and then assign that filter to a new collection of
diagnostic settings. To carry out this task, the first command calls New -CsDiagnosticsFilter to create an in-
memory-only diagnostics filter; this filter adds the FQDN fabrikam.com and the URI sip:user@fabrikam.com to the
filter. The command also sets the Enabled property to True ($True) in order to activate the filter. The resulting virtual
filter is then stored in the variable $x.
In command 2, New -CsDiagnosticConfiguration is used to create a new diagnostic configuration settings collection
for the Redmond site. These new settings will use the diagnostic filter stored in the variable $x.
-------------------------- EXAMPLE 2 -------------------------- (Lync Server 2013)

The commands shown in Example 2 create a new diagnostics filter and then assign that filter to a new collection of
diagnostic settings. To carry out this task, the first command calls New -CsDiagnosticsFilter to create an in-
memory-only diagnostics filter; this command adds the FQDN fabrikam.com and the URI sip:user@fabrikam.com
to the filter. The command also sets the Enabled property to True ($True) in order to activate the filter. The resulting
virtual filter is then stored in the variable $x.
In command 2, New -CsDiagnosticConfiguration is used to create a new diagnostic configuration settings collection
for the Redmond site. These new settings will use the diagnostic filter stored in the variable $x.
$x = New -CsDiagnosticsFilter -Fqdn fabrikam.com -Uri "sip:user@fabrikam.com" -Enabled $False
New -CsDiagnosticConfiguration -Identity site:Redmond -Filter $x
-------------------------- EXAMPLE 2 -------------------------- (Skype for Business Server 2015)

The commands shown in Example 2 create a new diagnostics filter and then assign that filter to a new collection of
diagnostic settings. To carry out this task, the first command calls the New -CsDiagnosticsFilter cmdlet to create an
in-memory-only diagnostics filter; this command adds the FQDN fabrikam.com and the URI
sip:user@fabrikam.com to the filter. The command also sets the Enabled property to True ($True) in order to
activate the filter. The resulting virtual filter is then stored in the variable $x.
In command 2, the New -CsDiagnosticConfiguration cmdlet is used to create a new diagnostic configuration
settings collection for the Redmond site. These new settings will use the diagnostic filter stored in the variable $x.
$x = New -CsDiagnosticsFilter -Fqdn fabrikam.com -Uri "sip:user@fabrikam.com" -Enabled $False
New -CsDiagnosticConfiguration -Identity site:Redmond -Filter $x
-------------------------- Example 3 ------------------------ (Lync Server 2010)

$x = New-CsDiagnosticConfiguration -Identity site:Redmond -InMemory


$x.LoggingShare = "\\atl-fs-001\logs"
Set-CsDiagnosticConfiguration -Instance $x

The commands shown in Example 3 demonstrate how you can create diagnostic configuration settings that initially
exist only in memory. To do this, the first command calls New -CsDiagnosticConfiguration along with two
parameters: Identity (which specifies the Identity for the settings) and InMemory, which indicates that the new
settings should be created in memory only. The resulting object is stored in the variable $x.
After the virtual settings have been created, the second command is used to configure the LoggingShare property
to the UNC path \\atl-fs-001\logs. The final command is then used to transform the virtual diagnostic
configuration settings into an actual collection of settings applied to the Redmond site. Note that this final
command is mandatory. If you do not call Set-CsDiagnosticConfiguration, no settings will be applied to the
Redmond site, and the virtual settings will disappear as soon as you end your Windows PowerShell session or
delete the variable $x.
-------------------------- EXAMPLE 3 -------------------------- (Lync Server 2013)

The commands shown in Example 3 demonstrate how you can create diagnostic configuration settings that initially
exist only in memory. To do this, the first command calls New -CsDiagnosticConfiguration along with two
parameters: Identity (which specifies the Identity for the settings) and InMemory, which indicates that the new
settings should be created in memory only. The resulting object is stored in the variable $x.
After the virtual settings have been created, the second command is used to configure the LoggingShare property
to the UNC path \\atl-fs-001\logs. The final command is then used to transform the virtual diagnostic
configuration settings into an actual collection of settings applied to the Redmond site. Note that this final
command is mandatory. If you do not call Set-CsDiagnosticConfiguration, no settings will be applied to the
Redmond site, and the virtual settings will disappear as soon as you end your Windows PowerShell session or
delete the variable $x.
$x = New -CsDiagnosticConfiguration -Identity site:Redmond -InMemory
$x.LoggingShare = "\\atl-fs-001\logs"
Set-CsDiagnosticConfiguration -Instance $x
-------------------------- EXAMPLE 3 -------------------------- (Skype for Business Server 2015)

The commands shown in Example 3 demonstrate how you can create diagnostic configuration settings that initially
exist only in memory. To do this, the first command calls the New -CsDiagnosticConfiguration cmdlet along with
two parameters: Identity (which specifies the Identity for the settings) and InMemory, which indicates that the new
settings should be created in memory only. The resulting object is stored in the variable $x.
After the virtual settings have been created, the second command is used to configure the LoggingShare property
to the UNC path \\atl-fs-001\logs. The final command is then used to transform the virtual diagnostic
configuration settings into an actual collection of settings applied to the Redmond site. Note that this final
command is mandatory. If you do not call the Set-CsDiagnosticConfiguration cmdlet, no settings will be applied to
the Redmond site, and the virtual settings will disappear as soon as you end your Windows PowerShell session or
delete the variable $x.
$x = New -CsDiagnosticConfiguration -Identity site:Redmond -InMemory
$x.LoggingShare = "\\atl-fs-001\logs"
Set-CsDiagnosticConfiguration -Instance $x

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Collection of domains and URIs whose traffic will be logged if diagnostic filtering is enabled. The Filter property
consists of three separate items:
Fqdn - Collection of domains to be included in the filter. (More technically, this is the host portion of a SIP address.)
For example a fully qualified domain name (FQDN ) might look like this: fabrikam.com. Alternatively, you can use
wildcards to represent multiple domains: *.fabrikam.com. You can include more than one domain in a single filter.
Uri - Collection of URIs to be included in the filter. (The Uri is the user@host portion of a SIP address.) A Uri can
consist of any of the following patterns: user@fabrikam.com; user@*; *@fabrikam.com. You can include multiple
URIs in a single filter.
Enabled - Indicates whether or not the filter should be activated.

Type: Filter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the diagnostics configuration settings to be created. Because new settings can only be created
at the site scope you must use syntax similar to this: -Identity "site:Redmond".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Below Content Applies To: Lync Server 2010, Lync Server 2013
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.
Below Content Applies To: Skype for Business Server 2015
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogAllSipHeaders
When set to False, only the core SIP headers are recorded in the logs. Setting this value to False can help reduce the
size of the log files. When set to True, all SIP headers are logged.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LoggingShare
Shared folder where the diagnostic logs can be uploaded.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsDiagnosticConfiguration does not accept pipelined input.

Inputs
None. The New -CsDiagnosticConfiguration cmdlet does not accept pipelined input.

Outputs
New -CsDiagnosticConfiguration creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings.

Outputs
The New -CsDiagnosticConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings.

Related Links
Online Version
Get-CsDiagnosticConfiguration
New -CsDiagnosticsFilter
Remove-CsDiagnosticConfiguration
Set-CsDiagnosticConfiguration
Online Version
Online Version
minutes to read • Edit Online

New-CsDiagnosticHeaderConfiguration
In ths Article

Creates a new diagnostic header configuration setting collection. Diagnostic header configuration settings
determine whether SIP messages are accompanied by header information that can be useful in troubleshooting
and error reporting. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsDiagnosticHeaderConfiguration [-Identity] <XdsIdentity> [-SendToExternalNetworks <Boolean>]
[-SendToOutsideUnauthenticatedUsers <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-SendToExternalNetworksOnServiceEdge <Boolean>] [<CommonParameters>]

Description
Administrators have the option of attaching an ms-diagnostic header to each SIP message sent in an organization.
This message (which is not visible to end users) contains information that might be useful in troubleshooting
connection issues or in reporting errors. For example, the diagnostic header might contain error codes that enable
the client application (for example, Skype for Business) to take a predetermined course of action should a specific
situation arise.
For SIP messages sent within your internal network, there's little reason not to include these diagnostic headers:
they have a minimal impact on message size and can be an invaluable tool for administrators trying to
troubleshoot connectivity issues. However, diagnostic headers also contain information - such as the fully qualified
domain names (FQDNs) of your SIP servers - that you might not want to make available to people outside the
internal network. Because of this, the diagnostic header configuration settings enable you to decide whether you
want diagnostic headers sent to users on external networks (such as users in a federated domain) and/or to outside
users. (Outside users are users who have connected from outside the internal network and have not yet been
authenticated.)
By default, diagnostic headers are not included in messages sent either to external networks or to unauthenticated
users. However, you can modify the global diagnostic header settings to include headers to external networks
and/or unauthenticated users. Alternatively, you can create custom settings at the site scope or at the service scope
(for the Edge Server or the Registrar service). That way, you can choose to include diagnostic headers on messages
sent from one site, or through one Edge Server, while disallowing headers on messages sent from other sites or
through other Edge Servers.
Custom diagnostic header settings are created using the New -CsDiagnosticHeaderConfiguration cmdlet. As noted,
new settings can be created at either the site scope or the service scope (albeit for only the Edge Server and the
Registrar services). Keep in mind that you can only have one such settings collection per site or service. For
example, suppose you try to create a new collection for the Redmond site, and that site already hosts a diagnostic
header settings collection. In that case, your command will fail. Likewise, your command will fail if you try to create
a new collection at the global scope.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsDiagnosticHeaderConfiguration -Identity site:Redmond -SendToOutsideUnauthenticatedUsers $True

Example 1 creates a new diagnostic header configuration for the Redmond site ( -Identity site:Redmond ). In
addition to specifying the Identity, the command also uses the SendToOutsideAuthenticatedUsers parameter and
the parameter value $True; this enables the sending of information to authenticated users outside the internal
network.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsDiagnosticHeaderConfiguration -Identity site:Redmond -InMemory

$x.SendToOutsideUnauthenticatedUsers = $True

$x.SendToExternalNetworks = $True

Set-CsDiagnosticHeaderConfiguration -Instance $x

The commands shown in Example 2 demonstrate how you can create a collection of diagnostic header settings that
initially exist only in memory. To do this, the first command in the example calls the New -
CsDiagnosticHeaderConfiguration cmdlet along with Identity and the InMemorys parameter. The resulting object is
stored in the variable $x.
After the virtual settings have been created, commands 2 and 3 are used to modify the values of the
SendToOutsideUnauthenticatedUsers and SendToExternalNetworks properties, respectively. Finally, command 4 is
used to transform the virtual diagnostic header configuration settings into an actual collection of settings applied to
the Redmond site. Note that this final command is mandatory. If you do not call the Set-
CsDiagnosticHeaderConfiguration cmdlet, no settings will be applied to the site, and the virtual settings will
disappear as soon as you end your Windows PowerShell session or delete the variable $x.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the diagnostic header configuration settings to be created. To create a new settings collection
at the site scope, use syntax similar to this: -Identity "site:Redmond". To create a new settings collection at the
service scope, use syntax like this: -Identity "service:EdgeServer:atl-cs-001.litwareinc.com".

You cannot create new settings at the global scope. In addition, you cannot create new settings at the site or service
scope if the specified site or service (for example, site:Redmond) already hosts a settings collection.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendToExternalNetworks
When set to True, diagnostic headers will be attached to messages sent to external users.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendToExternalNetworksOnServiceEdge
When set to True, diagnostic headers will be attached to messages sent to networks on the service edge. The
default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendToOutsideUnauthenticatedUsers
When set to True, diagnostic headers will be attached to messages sent to outside users. Outside users are users
who have connected from outside the internal network (for example, through a proxy server) and have not yet been
authenticated.
The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsDiagnosticHeaderConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsDiagnosticHeaderConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings object.

Related Links
Get-CsDiagnosticConfiguration
Remove-CsDiagnosticHeaderConfiguration
Set-CsDiagnosticHeaderConfiguration
minutes to read • Edit Online

New-CsDiagnosticsFilter
In ths Article

Creates a new diagnostic filter to be used with diagnostic configuration settings. Diagnostic configuration settings
are used to determine whether traffic to or from a given domain or Uniform Resource Identifier (URI) is recorded
in your Skype for Business Server log files. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsDiagnosticsFilter [-Enabled <Boolean>] [-ExcludeConferenceMessages <Boolean>]
[-ExcludePresenceNotifications <Boolean>] [-ExcludeRegisterMessages <Boolean>] [-Fqdn <PSListModifier>]
[-Uri <PSListModifier>] [-ExcludeSubscribeMessages <Boolean>] [-ExcludeSuccessfulRequests <Boolean>]
[<CommonParameters>]

Description
If you enable logging for Skype for Business Server, then, by default, traffic traveling to or from any domain or URI
is included in those log files. This ensures that as much information as possible is recorded in the log files.
On the other hand, this can also result in cases of too much information. For example, if you are experiencing
connectivity problems with a particular domain, you might want to limit logging to traffic between your network
and that domain; that makes it easier for you to identify the relevant records and, in turn, might make it easier for
you to diagnose and correct the problem.
Diagnostic configuration settings make it possible for you to specify the domains or URIs that will be recorded in
the log files; for example, you might want to log only the traffic to or from specified domains. In addition to the
global settings, Skype for Business Server enables you to create diagnostic settings at the site scope or the service
scope (for either the Edge Server or the Registrar service). In turn, this enables you to apply different settings to the
Redmond site than are applied to your other sites.
The New -CsDiagnosticsFilter cmdlet enables you to add a filter to a collection of diagnostic settings. This collection
contains the domains and URIs that will have their traffic recorded in the log files. When a filter is added, only
information pertaining to the domains and URIs in the filter will be logged; for logging purposes, traffic from other
domains and URIs will be ignored.
Note that the New -CsDiagnosticsFilter cmdlet creates in-memory-only instances of a diagnostic filter. After
creating one of these virtual filters, you will then need to use either the New -CsDiagnosticConfiguration cmdlet or
the Set-CsDiagnosticConfiguration cmdlet to add the filter to a collection.

Examples
-------------------------- EXAMPLE 1 --------------------------

$x = New-CsDiagnosticsFilter -Fqdn "fabrikam.com" -Enabled $False

Set-CsDiagnosticConfiguration -Identity global -Filter $x


The commands shown in Example 1 use the New -CsDiagnosticsFilter cmdlet to create a new diagnostic filter and
then assign that filter to the global diagnostic configuration settings. To carry out this task, the first command calls
the New -CsDiagnosticsFilter cmdlet to create an in-memory-only diagnostic filter. This filter adds the FQDN
fabrikam.com and the URI user@fabrikam.com to the filter. The command also sets the Enabled property to True
($True) in order to activate the filter. The resulting virtual filter is then stored in the variable $x.

In the second command, the Set-CsDiagnosticConfiguration cmdlet is used to assign the new filter to the global
diagnostic configuration settings. In this case, any existing values in the Filter property will be replaced by the
newly-created filter stored in $x.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsDiagnosticsFilter -Fqdn "fabrikam.com","contoso.com" -Enabled $False

Set-CsDiagnosticConfiguration -Identity global -Filter $x

The commands shown in Example 2 are a variation of the commands shown in Example 1; in Example 2, however,
two FQDNs (fabrikam.com and contoso.com) are added to the filter's Fqdn property. To do this, both names
(separated by a comma) are used as parameter values for the Fqdn parameter.

Parameters
-Enabled
Indicates whether or not the filter should be employed. The default value is True ($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeConferenceMessages
If set to True, information about conference messages (that is, any message with a conference URI in its To or From
header) will not be recorded in the log files. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludePresenceNotifications
If set to True, information about presence notifications (that is, any message that uses the NOTIFY or BENOTIFY
method) will not be recorded in the log files. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ExcludeRegisterMessages
If set to True, information about client registrations (that is, any message that uses the REGISTER method) will not
be recorded in the log files. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeSubscribeMessages
If set to True, information about client subscriptions (that is, any message that uses the SUBSCRIBE method) will
not be recorded in the log files. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludeSuccessfulRequests
If set to True. Information about successful SIP requests will not be recorded in the log files. Instead, only
information about unsuccessful requests will be saved.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Fqdn
Collection of domains to be included in the filter. (More technically, these domains represent the host portion of a
SIP address.) For the FQDN property you can use a fully qualified domain name (FQDN ) like this: fabrikam.com.
Alternatively, you can use wildcards to represent multiple domains: *.fabrikam.com. You can have more than one
domain in a single filter.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Uri
Collection of URIs to be included in the filter. (The URI is the user@host portion of a SIP address.) A URI can
consist of any of the following patterns:
user@fabrikam.com
user@*
*@fabrikam.com
You can include multiple URIs in a single filter.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsDiagnosticsFilter cmdlet does not accept pipelined input.

Outputs
The New -CsDiagnosticsFilter cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.Filter object.

Related Links
New -CsDiagnosticConfiguration
Set-CsDiagnosticConfiguration
minutes to read • Edit Online

New-CsDialInConferencingAccessNumber
In ths Article

Creates a new dial-in conferencing access number. Dial-in conferencing provides a way for users to use a "regular"
telephone, cell phone or other device on the public switched telephone network (PSTN ) to join the audio portion of
a conference. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsDialInConferencingAccessNumber -PrimaryUri <String> [-DisplayName <String>] -DisplayNumber <String>
-LineURI <String> -Regions <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]>
-Pool <Fqdn> -PrimaryLanguage <String>
[-SecondaryLanguages <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]>]
[-ScopeToSite] [-PassThru] [-WhatIf] [-Confirm] [-Tenant <Guid>] [<CommonParameters>]

New-CsDialInConferencingAccessNumber -DisplayNumber <String> -HostingProviderProxyFqdn <Fqdn> -LineURI <String>


-PrimaryLanguage <String> -PrimaryUri <String> [-Confirm] [-DisplayName <String>] [-PassThru] [-ScopeToSite]
[-SecondaryLanguages <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]>]
[-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

New-CsDialInConferencingAccessNumber -DisplayNumber <String> -LineURI <String> -Pool <Fqdn>


-PrimaryLanguage <String> -PrimaryUri <String>
-Regions <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]> [-Confirm]
[-DisplayName <String>] [-PassThru] [-ScopeToSite]
[-SecondaryLanguages <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]>]
[-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

Description
Dial-in conferencing enables users to use any kind of telephone (such as standard "land line," a mobile phone, or a
Voice over Internet Protocol (VoIP ) phone) to join the audio portion of an online conference. This enables users to
participate in the meeting even if they do not have a computer or an Internet connection. Users have full audio
capabilities: they can speak to other participants and hear everything that takes place. They just aren't able to see
shared slides, video feeds, or other visual elements.
In order to provide users with dial-in conferencing capabilities, you must create dial-in conferencing access
numbers: phone numbers users can call in order to be connected to a meeting. Dial-in conferencing access
numbers are created by using the New -CsDialInConferencingAccessNumber cmdlet. When you create a new dial-
in conferencing access number, you actually create a new contact object in Active Directory Domain Services; this
contact object is used to represent the access number and all its properties.
When creating a new dial-in number you must include the following parameters: PrimaryUri; LineURI; Pool;
DisplayNumber; PrimaryLanguage; and Regions. All of these parameters (and their parameter values) are
reasonably straightforward, with perhaps one exception: Regions. When you create a new access number, that
number must be associated with one or more regions. In turn, a region cannot be associated with a dial-in
conferencing number unless that region appears in at least one dial plan. If a region appears in the
DialInConferencingRegion property of at least one dial plan, then it can be associated with an access number. If not,
then the region cannot be associated with an access number. That simply means you must first create a dial plan,
and specify a region for that dial plan, before you can create a dial-in conferencing access number.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsDialInConferencingAccessNumber -PrimaryUri "sip:RedmondDialIn@litwareinc.com" -DisplayNumber "1-800-555-


1234" -LineUri "tel:+18005551234" -Pool atl-cs-001.litwareinc.com -PrimaryLanguage "en-US" -Regions "Redmond"

Example 1 creates a new dial-in conferencing access number with the primary URI
sip:RedmondDialIn@litwareinc.com. In addition to the PrimaryUri parameter, the command also includes
parameters that configure the telephone number as displayed in Skype for Business (DisplayNumber); the
telephone number in the E.164 format (LineUri); the Registrar pool the new number is assigned to
(-Pool): the primary language for the number (PrimaryLanguage) ; and the region the new number is assigned to
(Regions).
-------------------------- EXAMPLE 2 --------------------------

New-CsDialInConferencingAccessNumber -PrimaryUri "sip:RedmondDialIn@litwareinc.com" -DisplayNumber "1-800-555-


1234" -LineUri "tel:+18005551234" -Pool atl-cs-001.litwareinc.com -PrimaryLanguage "en-US" -Regions "Redmond" -
SecondaryLanguages "fr-CA", "fr-FR"

The command shown in Example 2 is a variation of the command shown in Example 1; the only difference is that
the command shown in this example also assigns two secondary languages (French Canadian and French) to the
new dial-in conferencing access number. To assign these secondary languages, the SecondaryLanguages parameter
is included, along with a comma-separated list of the languages to be assigned (fr-CA and fr-FR ).
-------------------------- EXAMPLE 3 --------------------------

New-CsDialInConferencingAccessNumber -PrimaryUri "sip:RedmondDialIn@litwareinc.com" -DisplayNumber "1-800-555-


1234" -LineUri "tel:+18005551234" -Pool atl-cs-001.litwareinc.com -PrimaryLanguage "en-US" -Regions "Redmond" -
ScopeToSite

Example 3 creates a new dial-in conferencing access number that is scoped to the site where the contact object's
home pool is located. To do this, the command includes the parameter ScopeToSite.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Active Directory display name for the new contact object. This is the name that will also be displayed in Skype for
Business.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
Phone number as displayed in meeting invitations and on the dial-in conferencing webpage. The DisplayNumber
can be formatted any way you prefer; for example 1-800-555-1234; 1-(800)-555-1234; or 1.800.555.1234.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostingProviderProxyFqdn
Fully qualified domain name of the hosting provider that hosts your dial-in conferencing service.

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineURI
The actual dial-in conferencing phone number. The LineURI must be specified using the following syntax: the tel:
prefix followed by a plus sign (+) followed by the country/region calling code, area code, and phone number. For
example: tel:+18005551234. Note that spaces, hyphens, parentheses and other characters are not allowed.
LineURIs must be unique throughout Active Directory.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a contact object through the pipeline that represents the new dial-in conferencing access
number. By default, the New -CsDialInConferencingAccessNumber cmdlet does not pass objects through the
pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Pool
Home pool for the new contact object.

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryLanguage
Primary language used for making dial-in conferencing announcements. The language must be configured using
one of the available dial-in conferencing language codes; for example, en-US for U.S. English; fr-FR for French; etc.
To return a list of the available language codes, type the following command at the Windows PowerShell prompt:
Get-CsDialInConferencingLanguageList | Select-Object -ExpandProperty Languages.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
Unique SIP address to be assigned to the new contact object. When specifying the PrimaryUri you must include the
"sip:" prefix. For example: -PrimaryUri "sip:RedmondDialIn@litwareinc.com". Note that the sip: prefix must be
entered in all lowercase letters.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Regions
Dial plan regions associated with the dial-in number. If a region is not included in at least one dial plan, then it
cannot be associated with a dial-in conferencing access number. To specify multiple regions, use a comma-
separated list: -Regions "Northwest", "Southwest"

Type: Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ScopeToSite
If present, the new number will be scoped to the same site as the contact object's home pool. If the ScopeToSite
parameter is not included, the new number will be assigned to the global scope.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecondaryLanguages
Optional collection of languages that can also be used for making dial-in conferencing announcements. Secondary
languages must be configured as a comma-separated list of language codes; for example, the following syntax sets
French Canadian and French as secondary languages; -SecondaryLanguages "fr-CA", "fr-FR".

A single access number can have as many as four secondary languages.

Type: Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new dial-in
conferencing access number is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsDialInConferencingAccessNumber cmdlet does not accept pipelined input.

Outputs
The New -CsDialInConferencingAccessNumber cmdlet creates new instances of the
Microsoft.Rtc.Management.Xds.AccessNumber object.

Related Links
Get-CsDialInConferencingAccessNumber
Remove-CsDialInConferencingAccessNumber
Set-CsDialInConferencingAccessNumber
minutes to read • Edit Online

New-CsDialInConferencingConfiguration
In ths Article

Creates a new collection of dial-in conferencing configuration settings. These settings determine how Skype for
Business Server responds when users join or leave a dial-in conference. In particular, information is returned
regarding whether or not participants are required to record their name when joining a conference, and how (or if)
the system announces that someone has joined or left the call. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsDialInConferencingConfiguration [-Identity] <XdsIdentity> [-EnableNameRecording <Boolean>]
[-EntryExitAnnouncementsEnabledByDefault <Boolean>] [-EntryExitAnnouncementsType <EntryExitAnnouncementsType>]
[-Force] [-InMemory] [-WhatIf] [-Confirm] [-AllowAnonymousPstnActivation <Boolean>] [-PinAuthType <String>]
[<CommonParameters>]

Description
When users join (or leave) a dial-in conference, Skype for Business Server can respond in different ways. For
example, participants might be asked to record their name before they can enter the conference. Likewise,
administrators can decide whether they want to have Skype for Business Server announce that dial-in participants
have either left or joined a conference.
These conference "join behaviors" are managed using dial-in conferencing configuration settings; these settings can
be configured at the global scope or at the site scope. (Settings configured at the site scope take precedence over
settings configured at the global scope.) When you first install Skype for Business Server, the only dial-in
conferencing configuration settings you will have are the ones at the global scope; however, you can create new
settings at the site scope by using the New -CSDialInConferencingConfiguration cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CSDialInConferencingConfiguration -Identity site:Redmond -EnableNameRecording $False

The command shown in Example 1 creates a new collection of dial-in conferencing configuration settings that are
applied to the Redmond site. In addition, the optional parameter EnableNameRecording is included in order to set
the EnableNameRecording property to False.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CSDialInConferencingConfiguration -Identity site:Redmond -InMemory

$x.EnableNameRecording = $False

Set-CSDialInConferencingConfiguration -Instance $x
In Example 2 the InMemory parameter is used to create a new collection of dial-in conferencing configuration
settings that initially exist only in memory. To do this, the example first calls the New -
CSDialInConferencingConfiguration cmdlet, and the InMemory parameter to create a virtual settings collection
that is stored in the variable $x. (Note that this collection is given the Identity site:Redmond.) After creating the
virtual collection, line 2 is used to modify the value of the EnableNameRecording property. Finally, line 3 in the
example calls the Set-CSDialInConferencingConfiguration cmdlet to transform the virtual configuration settings
stored in $x into an actual collection of settings applied to the Redmond site.

Parameters
-AllowAnonymousPstnActivation
Specifies whether unauthenticated callers can start a meeting if they are the first person to join. An unauthenticated
caller is defined as a participant who joins a meeting over the phone and doesn't provide a PIN when joining the
meeting. $True to allow anonymous activation, otherwise $False. The default is $False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableNameRecording
Determines whether or not users are asked to record their name before entering the conference. Set to True ($True)
to require name recording; set to False ($False) to bypass name recording. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EntryExitAnnouncementsEnabledByDefault
If set to True announcements will be played each time a participant enters or exits a conference. If set to False (the
default value), entry and exit announcements will not be played.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EntryExitAnnouncementsType
Indicates the action taken by the system any time a participant enters or leaves a conference. Valid values are:
UseNames. The person's name is announced any time he or she enters or leaves a conference (for example, "Ken
Myer is exiting the conference").
ToneOnly. A tone is played any time a participant enters or leaves a conference.
The default value is UseNames. Note that announcements are played only if the
EntryExitAnnouncementsEnabledByDefault property is set to True.

Type: EntryExitAnnouncementsType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the dial-in conferencing configuration settings to be created. Because these settings can
only be created at the site scope, use syntax similar to this, with the prefix "site:" followed by the name of the site:
-Identity site:Redmond.

Note that there can only be one set of dial-in conferencing configuration settings per site. The sample command
will fail if a collection of settings with the Identity site:Redmond already exists.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PinAuthType
Specifies which users are allowed to use PIN authentication. Allowed values are:
Everyone
OrganizerOnly

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsDialInConferencingConfiguration cmdlet does not accept pipelined input.

Outputs
Creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfiguration
object.

Related Links
Get-CsDialInConferencingConfiguration
Remove-CsDialInConferencingConfiguration
Set-CsDialInConferencingConfiguration
minutes to read • Edit Online

New-CsDialInConferencingDtmfConfiguration
In ths Article

Creates a new collection of dual-tone multifrequency (DTMF ) signaling settings used for dial-in conferencing.
DTMF enables users who dial in to a conference to control conference settings (such as muting and unmuting
themselves or locking and unlocking the conference) by using the keypad on their telephone. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsDialInConferencingDtmfConfiguration [-Identity] <XdsIdentity> [-AdmitAll <String>]
[-AudienceMuteCommand <String>] [-CommandCharacter <String>] [-EnableDisableAnnouncementsCommand <String>]
[-HelpCommand <String>] [-LockUnlockConferenceCommand <String>] [-MuteUnmuteCommand <String>]
[-PrivateRollCallCommand <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-OperatorLineUri <String>]
[<CommonParameters>]

Description
Skype for Business Server enables users to join conferences by dialing in over the telephone. Dial-in users are not
able to view video or exchange instant messages with other conference attendees, but they are able to fully
participate in the audio portion of the meeting.
In addition to being able to join a conference, users are also able to manage selected portions of that conference by
using their telephone keypad. (The specific conference settings users can and cannot manage depend on whether
or not the user is a presenter.) For example, by default users can press the 6 key on their keypad to mute or unmute
themselves. Participants can privately play the names of all the other people attending the meeting, while
presenters can do such things as mute and unmute all the meeting participants and enable or disable the
announcement that is played any time someone joins or leaves a conference.
The ability to make selections like these using a telephone keypad is known as dual-tone multi-frequency (DTMF )
signaling: if you have ever dialed a phone number and been instructed to do something along the order of "Press 1
for English or press 2 for Spanish," then you have used DTMF signaling.
When you install Skype for Business Server, a global collection of DTMF settings is created for you. In addition to
those global settings, you can use the New -CSDialInConferencingDtmfConfiguration cmdlet to create custom
settings on a site-by-site basis. For example, you can create a new collection of settings for the Redmond site (and
only the Redmond site) that uses the 4 key instead of the 6 key as the mute/unmute key. Note that any settings you
configure at the site scope take precedence over the settings configured at the global scope. As a result, users in the
Redmond site will use the 4 key as the mute/unmute key even though the global settings use the 6 key for muting
and unmuting.
You can have only one collection of DTMF settings and one global collection per site. For example, suppose you
already have a collection with the Identity site:Redmond and you then try to run this command:
New- CSDialInConferencingDtmfConfiguration -Identity site:Redmond

That command will fail, because the site:Redmond collection already exists. If you want to modify the settings for
the Redmond site, either use the Set-CSDialInConferencingDtmfConfiguration cmdlet, or remove the existing
collection and then create a new collection that uses the Identity site:Redmond.
When configuring values for the DTMF commands, keep two things in mind. First, you can only use the numeric
keys 0 through 9 and the asterisk (*); any other keys that might be found on your keypad (such as the # key) are not
allowed. (With one exception: the CommandCharacter key accepts only the * key or the # key.) Second, commands
must be assigned unique keys; for example, the 4 key cannot be used both to mute and unmute yourself and to lock
and unlock a conference. That means that, when modifying the keys assigned to a command, you might need to
swap the keys used by two different commands. For example, if you want to assign the 4 key to
EnableDisableAnnouncementsCommand (default value: 9), then you should, in the same command, assign the 9
key to AudienceMuteCommand.
To disable a command, set its value to Null ($Null).

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CSDialInConferencingDtmfConfiguration -Identity site:Redmond -MuteUnmuteCommand 4 -AudienceMuteCommand 6

The command shown in Example 1 creates a new set of DTMF configuration settings for the Redmond site. In this
example, the MuteUnmuteCommand property is set to 4 and the AudienceMuteCommand property is set to 6.
-------------------------- EXAMPLE 2 --------------------------

New-CSDialInConferencingDtmfConfiguration -Identity site:Redmond -AdmitAll $Null

Example 2 creates a new set of DTMF configuration settings for the Redmond site. In this example, the AdmitAll
property is disabled; that's done by using the AdmitAll parameter and setting the parameter value to null.
-------------------------- EXAMPLE 3 --------------------------

$x = New-CSDialInConferencingDtmfConfiguration -Identity site:Redmond -InMemory

$x.AdmitAll = $Null

$x.MuteUnmuteCommand = 4

$x.AudienceMuteCommand = 6

Set-CSDialInConferencingDtmfConfiguration -Instance $x

Example 3 shows how you can use the InMemory parameter to create an in-memory-only instance of a DTMF
configuration settings collection, modify those settings, and then use the Set-
CSDialInConferencingDtmfConfiguration cmdlet to create an actual collection with the Identity site:Redmond. To
do this, the first command in the example creates a new in-memory-only instance of a DTMF configuration settings
collection, storing that instance in a variable named $x. These settings will exist only in memory; if you close
Windows PowerShell or delete the variable $x the settings will disappear and will never be applied to the Redmond
site.
The next 3 commands modify properties of this "virtual" DTMF settings collection: commands 2, 3, and 4 assign
new values to AdmitAll, MuteUnmuteCommand, and AudienceMuteCommand, respectively. The final command
then uses the Set-CSDialInConferencingDtmfConfiguration cmdlet and the Instance parameter to transform the
virtual settings stored in $x into an actual collection of settings configured for the Redmond site.
Parameters
-AdmitAll
Indicates the key to be pressed in order to allow all the users in the lobby to immediately join the conference. The
default value is 8.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudienceMuteCommand
Indicates the key a presenter can press to mute or unmute everyone else in the conference (that is, everyone other
than the presenter will be muted or unmuted). The default key is 4.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CommandCharacter
Indicates the key to be pressed at the beginning of a command. The default key is the asterisk (*). The only other
allowed value is #.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDisableAnnouncementsCommand
Indicates the key to be pressed to enable or disable announcements each time someone joins or leaves the
conference. The default key is 9.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpCommand
Indicates the key to be pressed in order to privately play a description of all the DTMF commands. The default key
is 1.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier to be assigned to the new collection of DTMF configuration settings. Because you can only create
new collections at the site scope, the Identity will always be the prefix "site:" followed by the site name; for example
"site:Redmond".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LockUnlockConferenceCommand
Indicates the key to be pressed to lock or unlock a conference. If a conference is locked, then no new participants
will be allowed to join that conference, at least not until the conference has been unlocked. The default key is 7.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MuteUnmuteCommand
Indicates the key to be pressed to mute or unmute yourself; the same key is used to toggle back and forth between
muting and unmuting. The default key is 6.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OperatorLineUri
Phone number that the dial-in conferencing auto-attendant will connect a PSTN user to any time that user presses
*0 on their telephone keypad. Pressing *0 is designed to connect dial-in conferencing users to operator assistance.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrivateRollCallCommand
Indicates the key to be pressed to privately play the name of each conference participant. The default key is 3.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None. The New -CsDialInConferencingDtmfConfiguration cmdlet does not accept pipelined input.

Outputs
Creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfiguration
object.

Related Links
Get-CsDialInConferencingDtmfConfiguration
Remove-CsDialInConferencingDtmfConfiguration
Set-CsDialInConferencingDtmfConfiguration
minutes to read • Edit Online

New-CsDialPlan
In ths Article

Creates a new dial plan. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsDialPlan [-Identity] <XdsIdentity> [-Description <String>] [-DialinConferencingRegion <String>]
[-ExternalAccessPrefix <String>] [-NormalizationRules <PSListModifier>] [-OptimizeDeviceDialing <Boolean>]
[-SimpleName <String>] [-State <String>] [-City <String>] [-CountryCode <String>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet creates a new dial plan (also known as a location profile). Dial plans provide information required to
enable Enterprise Voice users to make telephone calls. Dial plans are also used by the Conferencing Attendant
application for dial-in conferencing. A dial plan determines such things as which normalization rules are applied
and whether a prefix must be dialed for external calls.
Creating a dial plan automatically creates a default voice normalization rule. Normalization rules can be modified
by calling the Set-CsVoiceNormalizationRule cmdlet. New normalization rules can be added to a dial plan by
calling the New -CsVoiceNormalizationRule cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsDialPlan -Identity RedmondDialPlan

The command shown in Example 1 creates a new dial plan with the Identity RedmondDialPlan. (The absence of a
scope in the Identity value indicates that this is a per-user policy. Dial plans created at the per-user scope can be
directly assigned to users and groups.) All other properties of the dial plan will be assigned default values.
-------------------------- EXAMPLE 2 --------------------------

New-CsDialPlan -Identity site:Redmond -SimpleName RedmondSiteDialPlan

New-CsVoiceNormalizationRule -Identity "site:Redmond/SeattlePrefix" -Pattern "^9(\d*){1,5}$" -Translation


"+1206$1"

The commands shown in Example 2 create a new dial plan with the Identity site:Redmond (meaning the dial plan
applies to all users on the Redmond site who do not have a per-user or service-level dial plan assigned to them)
and the SimpleName RedmondSiteDialPlan. The next line in the example then creates a new normalization rule
associated with that plan. A default normalization rule is created for a dial plan, but this is created mostly as a
placeholder--the values are of limited use. So after calling the New -CsDialPlan cmdlet to create a new dial plan,
you should call the New -CsVoiceNormalizationRule cmdlet to create a named rule that is functional for your
organization. That's exactly what line 2 of this example does: it calls the New -CsVoiceNormalizationRule cmdlet
and creates a rule for the Redmond site with the name SeattlePrefix and specifying the Pattern and Translation
properties for the rule. No further steps need to be taken to modify the dial plan; the changes to the normalization
rule are automatically applied to the dial plan with the identity matching that of the normalization rule. (The
site:Redmond portion of the Identity matches the dial plan Identity; SeattlePrefix is the name of the normalization
rule. Multiple normalization rules can be applied to one dial plan, so each normalization rule needs a unique name
within a given scope.)
-------------------------- EXAMPLE 3 --------------------------

New-CsDialPlan -Identity RedmondDialPlan -Description "Dial plan for Redmond users"

The command shown in Example 3 creates a new dial plan with the Identity RedmondDialPlan and specifies a
Description to explain what the dial plan is for. (Dial plans created at the per-user scope can be directly assigned to
users and groups.) The default values will be assigned for all other parameters.

Parameters
-City
This parameter is not used with this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryCode
This parameter is not used with this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of this dial plan--what it's for, what type of user it applies to, or any other information that will be
helpful in identifying the purpose of the dial plan.
Maximum characters: 512

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DialinConferencingRegion
The name of the region associated with this dial plan. Specify a value for this parameter if the dial plan will be used
for dial-in conferencing. This allows the correct access number to be assigned when the conference organizer sets
up the conference. Available regions can be retrieved by calling the Get-CsNetworkRegion cmdlet.
Maximum characters: 512

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalAccessPrefix
A number (or set of numbers) that designates the call as external to the organization. (For example, to dial an
outside line, first press 9.) This prefix will be ignored by the normalization rules, although these rules will be applied
to the rest of the number.
The OptimizeDeviceDialing parameter must be set to True for this value to take effect.
This parameter must match the regular expression [0-9]{1,4}. This means it must be a value 0 through 9, one to
four digits in length.
Default: 9

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier designating the scope and name (site), the service role and FQDN, or the name (per user) to
identify the dial plan. For example, a site Identity would be entered in the format site:<sitename>, where sitename
is the name of the site. A dial plan at the service scope must be a Registrar or PSTN gateway service, where the
Identity value is formatted like this: Registrar:Redmond.litwareinc.com. A per-user Identity would be entered simply
as a unique string value.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NormalizationRules
A list of normalization rules that are applied to this dial plan.
While this list and these rules can be created directly with this cmdlet, we recommend that you create the
normalization rules with the New -CsVoiceNormalizationRule cmdlet, which creates the rule and assigns it to the
specified dial plan.
Each time a new dial plan is created, a new voice normalization rule with default settings is also created for that site,
service, or per-user dial plan. By default the Identity of the new voice normalization rule is the dial plan Identity
followed by a slash followed by the name Prefix All. For example, site:Redmond/Prefix All.
Default: {Description=;Pattern=^(\d11)$;Translation=+$1;Name=Prefix All;IsInternalExtension=False } Note: This
default is only a placeholder. For the dial plan to be useful, you should either modify the normalization rule created
by the dial plan or create a new rule for the site, service, or user. You can create a new normalization rule by calling
the New -CsVoiceNormalizationRule cmdlet; modify a normalization rule by calling the Set-
CsVoiceNormalizationRule cmdlet.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OptimizeDeviceDialing
Setting this parameter to True will apply the prefix in the ExternalAccessPrefix parameter to calls made outside the
organization. This value can be set to True only if a value has been specified for the ExternalAccessPrefix parameter.
Default: False
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SimpleName
A display name for the dial plan. This name must be unique among all dial plans within the Skype for Business
Server deployment.
This string can be up to 256 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot
(.), plus (+), underscore (_), and parentheses (()).

This parameter must contain a value. However, if you don't provide a value in the call to the New -CsDialPlan
cmdlet, a default value will be supplied. The default value for a Global dial plan is Prefix All. The default for a site-
level dial plan is the name of the site. The default for a service is the name of the service (Registrar or PSTN
gateway) followed by an underscore, followed by the service fully qualified domain name (FQDN ). For example,
Registrar_pool0.litwareinc.com. The default for a per-user dial plan is the Identity of the dial plan.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-State
This parameter is not used with this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile.

Related Links
Remove-CsDialPlan
Set-CsDialPlan
Get-CsDialPlan
Grant-CsDialPlan
Test-CsDialPlan
New -CsVoiceNormalizationRule
Set-CsVoiceNormalizationRule
Remove-CsVoiceNormalizationRule
Get-CsVoiceNormalizationRule
minutes to read • Edit Online

New-CsEdgeAllowAllKnownDomains
In ths Article

Enables Skype for Business Online federation with all domains except for those domains included on the blocked
domains list.

Syntax
New-CsEdgeAllowAllKnownDomains [-AsJob] [<CommonParameters>]

Description
Federation is a service that enables users to exchange IM and presence information with users from other domains.
With Skype for Business Online, administrators can use the federation configuration settings to govern:
Whether or not users can communicate with people from other domains and, if so, which domains they are allowed
to communicate with.
Whether or not users can communicate with people who have accounts on public IM and presence providers such
as Windows Live, AOL, and Yahoo.
Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list
specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains
that users are not allowed to communicate with. By default, users can communicate with any domain that does not
appear on the blocked list. However, administrators can modify this default setting and limit communication to
domains that are on the allowed domains list.
Skype for Business Online does not allow you to directly modify the allowed list or the blocked list; for example,
you cannot use a command similar to this one, which passes a string value representing a domain name to the
allowed domains list:
Set-CsTenantFederationConfiguration -AllowedDomains "fabrikam.com"

Instead, you must use either the New -CsEdgeAllowAllKnownDomains cmdlet or the New -CsEdgeAllowList cmdlet
to create a domain object and then pass that domain object to the Set-CsTenantFederationConfiguration cmdlet.
The New -CsEdgeAllowAllKnownDomains cmdlet is used if you want to allow users to communicate with all
domains except for those expressly specified on the blocked domains list. The New -CsEdgeAllowList cmdlet is used
if you want to limit user communication to a specified collection of domains. In that case, users will only be allowed
to communicate with domains that appear on the allowed domains list.
To configure federation with all known domains, use a set of commands similar to this:
$x = New-CsEdgeAllowAllKnownDomains

Set-CsTenantFederationConfiguration -AllowedDomains $x

Examples
-------------------------- Example 1 --------------------------

$x = New-CsEdgeAllowAllKnownDomains

Set-CsTenantFederationConfiguration -AllowedDomains $x

The two commands shown in Example 1 configure the federation settings for the current tenant to allow all known
domains. To do this, the first command in the example uses the New -CsEdgeAllowAllKnownDomains cmdlet to
create an instance of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains object;
this instance is stored in a variable named $x. In the second command, the Set-CsTenantFederationConfiguration
cmdlet is called along with the AllowedDomains parameter; using $x as the parameter value configures the
federation settings to allow all known domains.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsEdgeAllowAllKnownDomains cmdlet does not accept pipelined input.

Outputs
The New -CsEdgeAllowAllKnownDomains cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains object.

Related Links
Set-CsTenantFederationConfiguration
minutes to read • Edit Online

New-CsEdgeAllowList
In ths Article

Enables administrators to specify the domains that their users will be allowed to communicate with. The `New -
CsEdgeAllowList` cmdlet, which can be used only with Skype for Business Online, must be used in conjunction with
the `New -CsEdgeDomainPattern` cmdlet and the `Set-CsTenantFederationConfiguration` cmdlet.

Syntax
New-CsEdgeAllowList [-AllowedDomain <String>] [<CommonParameters>]

Description
Federation is a service that enables users to exchange IM and presence information with users from other domains.
With Skype for Business Online, administrators can use the federation configuration settings to govern:
Whether or not users can communicate with people from other domains and, if so, which domains they are allowed
to communicate with.
Whether or not users can communicate with people who have accounts on public IM and presence providers such
as Windows Live, AOL, and Yahoo
Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list
specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains
that users are not allowed to communicate with. By default, users can communicate with any domain that does not
appear on the blocked list. However, administrators can modify this default setting and limit communication to
domains that are on the allowed domains list.
Skype for Business Online does not allow you to directly modify the allowed list or the blocked list; for example,
you cannot use a command similar to this one, which passes a string value representing a domain name to the
allowed domains list:
Set-CsTenantFederationConfiguration -AllowedDomains "fabrikam.com"
Instead, you must use either the New-CsEdgeAllowAllKnownDomains cmdlet or the New-CsEdgeAllowList cmdlet to
create a domain object and then pass that domain object to the Set-CsTenantFederationConfiguration cmdlet. The
New-CsEdgeAllowAllKnownDomains cmdlet is used if you want to allow users to communicate with all domains except
for those expressly specified on the blocked domains list. The New-CsEdgeAllowList cmdlet is used if you want to
limit user communication to a specified collection of domains. In that case, users will only be allowed to
communicate with domains that appear on the allowed domains list.
To add a single domain (fabrikam.com) to the allowed domain list, you need to use a set of command similar to
these:
$x = New -CsEdgeDomainPattern -Domain "fabrikam.com"
$newAllowList = New -CsEdgeAllowList -AllowedDomain $x
Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList
When this command finishes executing, users will only be allowed to communicate with users from fabrikam.com
domain.

Examples
-------------------------- Example 1 --------------------------

$x = New-CsEdgeDomainPattern -Domain "fabrikam.com"

$newAllowList = New-CsEdgeAllowList -AllowedDomain $x

Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList

The commands shown in Example 1 assign the domain fabrikam.com to the allowed domains list for the tenant
with the TenantId "bf19b7db-6960-41e5-a139-2aa373474354". To do this, the first command in the example uses
the New-CsEdgeDomainPattern cmdlet to create a domain object for fabrikam.com; this object is stored in a variable
named $x. After the domain object has been created, the New-CsEdgeAllowList cmdlet is used to create a new
allowed list containing only the domain fabrikam.com.
With the allowed domain list created, the final command in the example can then use the
Set-CsTenantFederationConfiguration cmdlet to configure fabrikam.com as the only domain on the allowed domain
list for the current tenant.
-------------------------- Example 2 --------------------------

$newAllowList = New-CsEdgeAllowList -AllowedDomain $x,$y

$x = New-CsEdgeDomainPattern -Domain "contoso.com"

$y = New-CsEdgeDomainPattern -Domain "fabrikam.com"

$newAllowList = New-CsEdgeAllowList -AllowedDomain $x,$y

Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList

Example 2 shows how you can add multiple domains to an allowed domains list. This is done by calling the
New-CsEdgeDomainPattern cmdlet multiple times (one for each domain to be added to the list), and storing the
resulting domain objects in separate variables. Each of those variables can then be added to the allow list created by
the New-CsEdgeAllowList cmdlet simply by using the AllowedDomain parameter and separating the variables name
by using commas.
-------------------------- Example 3 --------------------------

$newAllowList = New-CsEdgeAllowList -AllowedDomain $Null

Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList

In Example 3, all domains are removed from the allowed domains list. To do this, the first command in the example
uses the New-CsEdgeAllowList cmdlet to create a blank list of allowed domains; this is accomplished by setting the
AllowedDomain property to a null value ($Null). The resulting object reference ($newAllowList) is then used in
conjunction with the Set-CsTenantFederationConfiguration cmdlet to remove all the domains from the allowed
domain list.
Parameters
-AllowedDomain
Object reference to the new domain (or set of domains) to be added to the allowed domain list. Domain object
references must be created by using the New-CsEdgeDomainPattern cmdlet. Multiple domain objects can be added by
separating the object references using commas. For example:
-AllowedDomain $x,$y

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsEdgeAllowList cmdlet does not accept pipelined input.

Outputs
The New-CsEdgeAllowList cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowList object.

Related Links
New -CsEdgeDomainPattern
Set-CsTenantFederationConfiguration
minutes to read • Edit Online

New-CsEdgeDomainPattern
In ths Article

Used to specify a domain that will be added or removed from the set of domains enabled for federation or the set
of domains disabled for federation. You must use the New -CsEdgeDomainPattern cmdlet when modifying the
allowed or blocked domain lists. String values (such as "fabrikam.com") cannot be directly passed to the cmdlets
used to manage either of these lists.

Syntax
New-CsEdgeDomainPattern -Domain <String> [<CommonParameters>]

Description
Federation is a service that enables users to exchange IM and presence information with users from other domains.
With Skype for Business Online, administrators can use the federation configuration settings to govern:
Whether or not users can communicate with people from other domains and, if so, which domains they are allowed
to communicate with.
Whether or not users can communicate with people who have accounts on public IM and presence providers such
as Windows Live, AOL, and Yahoo.
Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list
specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains
that users are not allowed to communicate with. By default, users can communicate with any domain that does not
appear on the blocked list. However, administrators can modify this default setting and limit communication to
domains that are on the allowed domains list.
Skype for Business Online does not allow you to directly modify the allowed list or the blocked list; for example,
you cannot use a command similar to this one, which passes a string value representing a domain name to the
blocked domains list:
Set-CsTenantFederationConfiguration -BlockedDomains "fabrikam.com"

Instead, you must create a domain object by using the New -CsEdgeDomainPattern cmdlet, store that domain
object in a variable (in this example, $x), then pass the variable name to the blocked domains list:
$x = New-CsEdgeDomainPattern -Domain "fabrikam.com"

Set-CsTenantFederationConfiguration -BlockedDomains $x

Examples
-------------------------- Example 1 --------------------------
$x = New-CsEdgeDomainPattern -Domain "fabrikam.com"

Set-CsTenantFederationConfiguration -BlockedDomains $x

Example 1 demonstrates how you can assign a single domain to the blocked domains list for a specified tenant. To
do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by
calling the New -CsEdgeDomainPattern cmdlet and by saving the resulting domain object in a variable named $x.
The second command then uses the Set-CsTenantFederationConfiguration cmdlet and the BlockedDomains
parameter to configure fabrikam.com as the only domain blocked by the current tenant.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
Fully qualified domain name of the domain to be added to the allow list. For example:
-Domain "fabrikam.com"

Note that you cannot use wildcards when specifying a domain name.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsEdgeDomainPattern cmdlet does not accept pipelined input.

Outputs
The New -CsEdgeDomainPattern cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DomainPattern object.
Related Links
Set-CsTenantFederationConfiguration
minutes to read • Edit Online

New-CsEmergencyNumber
In ths Article

The `New -CsEmergencyNumber` cmdlet creates a new emergency number in your organization. This cmdlet was
introduced in Skype for Business Server June 2016 Cumulative Update.

Syntax
New-CsEmergencyNumber [-DialMask <String>] -DialString <String> [<CommonParameters>]

Description
This cmdlet enables you to configure multiple emergency numbers in Skype for Business Server.
Skype for Business Server now supports multiple emergency numbers for a client. Multiple emergency numbers is
a new feature introduced in the June 2016 Cumulative Update.
With the November 2016 Cumulative Update, the number of support emergency numbers increases from 5 to
100.

Examples
-------------------------- EXAMPLE 1 --------------------------

PS C:\> New-CsEmergencyNumber -DialString 911

This example creates a new emergency number with dial string 911.
-------------------------- EXAMPLE 2 --------------------------

PS C:\> New-CsEmergencyNumber -DialString 911 -DialMask 112

This example creates a new emergency number with dial string 911 and single dial mask 112.
-------------------------- EXAMPLE 3 --------------------------

PS C:\> New-CsEmergencyNumber -DialString 911 -DialMask 112;999

This example creates an emergency number with multiple dial masks.

Parameters
-DialMask
For each emergency number, you can specify zero or more emergency dial masks. A dial mask is a number that you
want to translate into the value of the emergency dial number value when it is dialed. For example, assume you
enter a value of 212 in this field and the emergency dial number field has a value of 911. When a user dials 212, the
number will be translated to 911. This allows for alternate emergency numbers to be dialed and still have the call
reach emergency services (for example, if someone from a country or region with a different emergency number
attempts to dial that country or region's number rather than the number for the country or region they are
currently in). You can define multiple emergency dial masks by separating the values with semicolons. For example,
212;414. The string limit for a dial mask is 100 characters. Each character must be a digit 0 through 9.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DialString
Specifies the phone number to call out with this emergency number.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
New -CsLocationPolicy
Set-CsLocationPolicy
minutes to read • Edit Online

New-CsExtendedTest
In ths Article

Creates a PSTN or an Audio Conferencing Provider test that can then be assigned to a watcher node configuration.
Watcher nodes are computers that periodically use Microsoft System Center Operations Manager and Skype for
Business Server synthetic transactions to verify that Skype for Business Server components are working as
expected. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsExtendedTest -Name <String> -TestType <TestType> [-TestUsers <PSListModifier>] [<CommonParameters>]

Description
If you are using Microsoft System Center Operations Manager to monitor Skype for Business Server then you
have the option of setting up "watcher nodes": computers that periodically, and automatically, run synthetic
transactions in order to verify that Skype for Business Server is working as expected. Watcher nodes are assigned
to pools, and are managed using the CsWatcherNodeConfiguration cmdlets. Note that you do not need to install
watcher nodes if you are using System Center Operations Manager. You can still monitor your system without
using watcher nodes; the only difference is that any synthetic transactions you want to run will need to be invoked
manually rather than automatically invoked by Operations Manager.
When you configure a watcher node, you have the option of adding a PSTN or an Audio Conferencing Provider
test as an "extended test"; these extended tests can be used instead of or in addition to the standard set of tests run
by a watcher node computer. Extended tests must be created using the New -CsExtendedTest cmdlet and then
added to the appropriate watcher node.
Skype for Business Server Control Panel: The functions carried out by the New -CsExtendedTest cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

$x = New-CsExtendedTest -TestUsers "sip:kenmyer@litwareinc.com", "sip:pilar@litwareinc.com" -Name "PSTN Test" -


TestType "PSTN"

New-CsWatcherNodeConfiguration -TargetFqdn "atl-cs-001.litwareinc.com" -PortNumber 5061 -TestUsers


"sip:kenmyer@litwareinc.com","sip:pilar@litwareinc.com" -ExtendedTests @{Add=$x}

The commands shown in Example 1 create a new extended test (with the TestType of PSTN ), then adds that
extended test to a new watcher node for the pool atl-cs-001.litwareinc.com. In the first command in the example,
the New -CsExtendedTest cmdlet is used to create an extended test named PSTN Test; this test includes the test
users sip:kenmyer@litwareinc.com and sip:pilar@litwareinc.com. (Note that these two test users must have already
been configured using the Set-CsTestUserCredential cmdlet.) The resulting extended test object is then stored in a
variable named $x.
In the second command, the new extended test is added to the newly-created watcher node for atl-cs-
001.litwareinc.com. This is done by using the ExtendedTests parameter and the syntax @{Add=$x}.

Parameters
-Name
Friendly name to be given to the extended test.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TestType
Type of testing to be carried out by the extended test. Allowed values are:
PSTN
AudioConferencingProvider
You can only specify a single TestType per extended test.

Type: TestType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TestUsers
SIP address of the user account(s) that will serve as test users. Multiple accounts can be specified by separating
those accounts using commas; for example:
-TestUsers "sip:kenmyer@litwareinc.com", "sip:pilar@litwareinc.com"

You must specify at least two test users when using the PSTN TestType.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsExtendedTest cmdlet does not accept pipelined input

Outputs
The New -CsExtendedTest cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.ExtendedTest object.
Related Links
New -CsWatcherNodeConfiguration
Set-CsWatcherNodeConfiguration
minutes to read • Edit Online

New-CsExternalAccessPolicy
In ths Article

Enables you to create a new external access policy. External access policies determine whether or not your users
can: 1) communicate with users who have Session Initiation Protocol (SIP ) accounts with a federated organization;
2) communicate with users who have SIP accounts with a public instant messaging (IM ) provider such as MSN;
and, 3) access Skype for Business Server over the Internet, without having to log on to your internal network. This
cmdlet was introduced in Lync Server 2010.

Syntax
New-CsExternalAccessPolicy [-Tenant <Guid>] [-Description <String>] [-EnableFederationAccess <Boolean>]
[-EnableXmppAccess <Boolean>] [-EnablePublicCloudAccess <Boolean>]
[-EnablePublicCloudAudioVideoAccess <Boolean>] [-EnableOutsideAccess <Boolean>] [-Identity] <XdsIdentity>
[-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
When you install Skype for Business Server your users are only allowed to exchange instant messages and
presence information among themselves: by default, they can only communicate with other people who have SIP
accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business
Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on
to Skype for Business Server.
That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external
access policies to extend the ability of your users to communicate and collaborate. External access policies can grant
(or revoke) the ability of your users to do any or all of the following:

1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation
alone will not provide users with this capability. Instead, you must enable federation and then assign users an
external access policy that gives them the right to communicate with federated users.
2. Communicate with people who have SIP accounts with a public instant messaging service such as MSN.
3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This
enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or
other remote location.
When you install Skype for Business Server, a global external access policy is automatically created for you. In
addition to the global policy, you can also create custom external access policies at either the site or the per-user
scope. If you create an external access policy at the site scope, that policy will automatically be assigned to the site
upon creation. If you create an external access policy at the per-user scope, that policy will be created but will not be
assigned to any users. To assign the policy to a user or group of users, use the Grant-CsExternalAccessPolicy
cmdlet.
New external access policies can be created by using the New -CsExternalAccessPolicy cmdlet. Note that these
policies can only be created at the site or the per-user scope; you cannot create a new policy at the global scope. In
addition, you can have only one external access policy per site: if the Redmond site already has been assigned an
external access policy you cannot create a second policy for the site.
The following parameters are not applicable to Skype for Business Online: AsJob, Description, EnableXmppAccess,
Force, Identity, InMemory, PipelineVariable, and Tenant

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsExternalAccessPolicy -Identity site:Redmond -EnableFederationAccess $True -EnableOutsideAccess $True

The command shown in Example 1 creates a new external access policy that has the Identity site:Redmond; upon
creation, this policy will automatically be assigned to the Redmond site. Note that this new policy sets both the
EnableFederationAccess and the EnableOutsideAccess properties to True.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsExternalAccessPolicy -Identity RedmondAccessPolicy -InMemory

$x.EnableFederationAccess = $True

$x.EnablePublicCloudAccess = $True

$x.EnableOutsideAccess = $True

Set-CsExternalAccessPolicy -Instance $x

Example 2 demonstrates the use of the InMemory parameter; this parameter enables you to create an in-memory-
only instance of an external access policy. After it has been created, you can modify the in-memory-only instance,
then use the Set-CsExternalAccessPolicy cmdlet to transform the virtual policy into a real external access policy.
To do this, the first command in the example uses the New -CsExternalAccessPolicy cmdlet and the InMemory
parameter to create a virtual policy with the Identity RedmondAccessPolicy; this virtual policy is stored in a variable
named $x. The next three commands are used to modify three properties of the virtual policy:
EnableFederationAccess, EnablePublicCloudAccess, and the EnableOutsideAccess. Finally, the last command uses
the Set-CsExternalAccessPolicy cmdlet to create an actual per-user external access policy with the Identity
RedmondAccessPolicy. If you do not call the Set-CsExternalAccessPolicy cmdlet, then the virtual policy will
disappear as soon as you end your Windows PowerShell session or delete the variable $x. Should that happen, an
external access policy with the Identity RedmondAccessPolicy will never be created.

Parameters
-AsJob
Indicates that this cmdlet runs as a background job.
When you specify the AsJob parameter, the command immediately returns an object that represents the
background job. You can continue to work in the session while the job finishes. The job is created on the local
computer and the results from the Skype for Business Online session are automatically returned to the local
computer. To get the job results, use the Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text to accompany the policy. For example, the Description might
include information about the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFederationAccess
Indicates whether the user is allowed to communicate with people who have SIP accounts with a federated
organization. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOutsideAccess
Indicates whether the user is allowed to connect to Skype for Business Server over the Internet, without logging on
to the organization's internal network. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePublicCloudAccess
Indicates whether the user is allowed to communicate with people who have SIP accounts with a public Internet
connectivity provider such as MSN. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePublicCloudAudioVideoAccess
Indicates whether the user is allowed to conduct audio/video conversations with people who have SIP accounts
with a public Internet connectivity provider such as MSN. When set to False, audio and video options in Skype for
Business Server will be disabled any time a user is communicating with a public Internet connectivity contact.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableXmppAccess
Indicates whether the user is allowed to communicate with users who have SIP accounts with a federated XMPP
(Extensible Messaging and Presence Protocol) partner. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity to be assigned to the policy. New external access policies can be created at the site or per-user
scope. To create a new site policy, use the prefix "site:" and the name of the site as your Identity. For example, use
this syntax to create a new policy for the Redmond site: -Identity site:Redmond. To create a new per-user policy,
use an Identity similar to this: -Identity SalesAccessPolicy.

Note that you cannot create a new global policy; if you want to make changes to the global policy, use the Set-
CsExternalAccessPolicy cmdlet instead. Likewise, you cannot create a new site or per-user policy if a policy with that
Identity already exists. If you need to make changes to an existing policy, use the Set-CsExternalAccessPolicy
cmdlet.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new external
access policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsExternalAccessPolicy cmdlet does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy
object.

Outputs
System.Object

Related Links
Get-CsExternalAccessPolicy
Grant-CsExternalAccessPolicy
Remove-CsExternalAccessPolicy
Set-CsExternalAccessPolicy
minutes to read • Edit Online

New-CsExternalUserCommunicationPolicy
In ths Article

Creates a new external user communication policy for use in your organization to block P2P file transfer with
Federated partners only.

Syntax
New-CsExternalUserCommunicationPolicy [-Tenant <Guid>] [-EnableFileTransfer <Boolean>]
[-EnableP2PFileTransfer <Boolean>] [-AllowPresenceVisibility <Boolean>] [-AllowTitleVisibility <Boolean>]
[-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Before this cmdlet, Skype for Business Online already offered the ability to control P2P file transfer as part of the
existing conferencing policy settings. However, this option allowed or blocked file transfer for users no matter if
they are transferring files to a user who is hosted on the same company or Federated user.
This cmdlet allows you to block P2P file transfer with Federated partners only.

Examples
Example 1

PS C:\> New-CsExternalUserCommunicationPolicy -Identity BlockExternalP2PFileTransfer -EnableP2PFileTransfer


$False

This example creates a new policy to block external file transfer. Then you can use
Grant-CsExternalUserCommunicationPolicy to assign it to an user account.

Parameters
-AllowPresenceVisibility
{{Fill AllowPresenceVisibility Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowTitleVisibility
{{Fill AllowTitleVisibility Description}}
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFileTransfer
{{Fill EnableFileTransfer Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableP2PFileTransfer
Indicates whether file transfers to Federated partners are allowed. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
{{Fill Force Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the external user communication policy to be created.
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
{{Fill InMemory Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return your tenant ID by running this command:


Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Set-CsExternalUserCommunicationPolicy
Get-CsExternalUserCommunicationPolicy
Remove-CsExternalUserCommunicationPolicy
Grant-CsExternalUserCommunicationPolicy
minutes to read • Edit Online

New-CsExUmContact
In ths Article

Creates a new Auto Attendant or Subscriber Access contact object for hosted Exchange Unified Messaging (UM ).
This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsExUmContact -SipAddress <String> -RegistrarPool <Fqdn> -DisplayNumber <String> -OU <OUIdParameter>
[-AutoAttendant <Boolean>] [-Description <String>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server works with Exchange UM to provide several voice-related capabilities, including Auto
Attendant and Subscriber Access. When Exchange UM is provided as a hosted service (rather than on-premises),
contact objects must be created with this cmdlet to apply the Auto Attendant and Subscriber Access functionality.
These objects are created by calling the New -CsExUmContact cmdlet.
A contact object created with this cmdlet will not be available for use within the system until a hosted voice mail
policy has been applied that configures routing for the contact. You can retrieve hosted voice mail policies by calling
the Get-CsHostedVoicemailPolicy cmdlet. From the policies retrieved you can determine whether an appropriate
global or site policy exists, or if a per-user policy exists that needs to be granted to this contact.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsExUmContact -SipAddress sip:exumsa1@fabrikam.com -RegistrarPool RedmondPool.litwareinc.com -OU


"OU=ExUmContacts,DC=litwareinc,DC=com" -DisplayNumber 2065554567

This example calls the New -CsExUmContact cmdlet to create a new Exchange UM Active Directory contact object.
To create a new contact you must supply the SIP address (in this example, sip:exumsa1@fabrikam.com) of the Auto
Attendant or Subscriber Access. In addition, you must supply the name of the pool where the Skype for Business
Server Registrar service is running (RedmondPool.litwareinc.com), the OU where this information will be stored
(OU=ExUmContacts,DC=litwareinc,DC=com), and the phone number of the Auto Attendant or Subscriber Access
(2065554567). Because we didn't specifically set the AutoAttendant parameter, the default of False will be applied
and this contact object will be assumed to be a Subscriber Access contact.
-------------------------- EXAMPLE 2 --------------------------

New-CsExUmContact -SipAddress sip:exumaa1@fabrikam.com -RegistrarPool RedmondPool.litwareinc.com -OU


"OU=ExUmContacts,DC=litwareinc,DC=com" -DisplayNumber 2065559876 -AutoAttendant $True

This example is similar to Example 1 in that it calls the New -CsExUmContact cmdlet to create a new Exchange UM
contact. We again create a new Auto Attendant or Subscriber Access contact, this time with the SIP address
sip:exumaa1@fabrikam.com. We then supply the name of the pool where the Skype for Business Server Registrar
service is running (RedmondPool.litwareinc.com), the OU where this information will be stored
(OU=ExUmContacts,DC=litwareinc,DC=com), and the phone number of the Auto Attendant or Subscriber Access
(2065554567). The difference in this example is that we set the optional parameter AutoAttendant to True ($True)
to show that this object is, in fact, an Auto Attendant contact.

Parameters
-AutoAttendant
Specifies whether this contact object is an Auto Attendant. (Auto Attendant provides a set of voice prompts that
allow callers to navigate the phone system and reach the intended party.)
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of this contact. The description is for use by administrators to identify the type of contact (Auto
Attendant or Subscriber Access), the location, provider, or any other information that will identify the purpose of
each Exchange UM contact.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
The telephone number of the contact. Display numbers for each contact must be unique (for instance, no two
Exchange UM contacts can have the same display number).
This value may begin with a plus sign (+) and may contain any number of digits. The first digit cannot be zero.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
The organizational unit (OU ) where this contact will be located in Active Directory.
Full data type: Microsoft.Rtc.Management.AD.OUIdParameter

Type: OUIdParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Returns the results of this command. Running this cmdlet will display the newly created object; including this
parameter will simply repeat that output, making the use of this parameter redundant.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegistrarPool
The fully qualified domain name (FQDN ) of the pool on which the Registrar service is running.
Note that an Exchange UM contact in Skype for Business Server cannot be moved to pools that are part of
Microsoft Office Communications Server 2007 or Microsoft Office Communications Server 2007 R2 deployments.
Full data type: Microsoft.Rtc.Management.Deploy.Fqdn

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
The SIP address of the contact. This must be a new address that does not already exist as a user or contact in Active
Directory Domain Services. This value must begin with the string sip: followed by the SIP address.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact.

Related Links
Remove-CsExUmContact
Set-CsExUmContact
Get-CsExUmContact
Move-CsExUmContact
Get-CsHostedVoicemailPolicy
minutes to read • Edit Online

New-CsFileTransferFilterConfiguration
In ths Article

Creates a new file transfer filter configuration. File transfer filter configurations are used to block a user's ability to
transfer certain types of files (for example, files with a .vbs or .ps1 file extension) using a Skype for Business Server
client. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsFileTransferFilterConfiguration [-Identity] <XdsIdentity> [-Action <FileFilterAction>]
[-Enabled <Boolean>] [-Extensions <PSListModifier>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
When sending instant messages, users can attach and send files to the other participants in the conversation. Skype
for Business Server can be configured so that files with certain extensions--typically extensions of file types that
could potentially prove harmful--are not allowed to be sent using a Skype for Business Server client.
When you install Skype for Business Server, a single file transfer filter configuration (which is configured at the
global scope) is created for you. By default, the global configuration applies to all the users in your organization. In
addition, you can use the New -CsFileTransferFilterConfiguration cmdlet to create custom file transfer filter
configurations for individual sites. If a configuration exists for a given site then those file transfer settings will be
applied to all the users in that site. If no such collection exists for a site then the global settings will be applied
instead.
Note that you cannot create new a file transfer filter configuration at the global scope; however, you can use the
Set-CsFileTransferFilterConfiguration cmdlet to modify the global settings. Likewise, you cannot create a new
configuration for a site that already has one defined; if you try that, your command will fail.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsFileTransferFilterConfiguration -Identity site:Redmond

In Example 1, the New -CsFileTransferFilterConfiguration cmdlet is used to create a new instant message file
transfer filter configuration with the Identity site:Redmond. Because no additional parameters were specified, the
configuration will be created using the default values.
-------------------------- EXAMPLE 2 --------------------------

New-CsFileTransferFilterConfiguration -Identity site:Redmond -Extensions @{Add=".ps1"}

In this command, the New -CsFileTransferFilterConfiguration cmdlet is used to create a new file transfer filter
configuration with the Identity site:Redmond. Because the Extensions parameter has been specified, the new
configuration will contain all the default values plus an additional file extension: .ps1. This new extension is added
by using the Extensions parameter and the list modifier Add followed by the file extension to be added. (Note that
you must include the period as part of the file extension.) To add multiple file extensions, simply separate those
extensions by using commas: @{Add=".ps1",".ps2",".ps3"}
-------------------------- EXAMPLE 3 --------------------------

New-CsFileTransferFilterConfiguration -Identity site:Redmond -Extensions @{Replace=".vbs",".ps1"}

In Example 3, the New -CsFileTransferFilterConfiguration cmdlet is used to create a new file transfer filter
configuration with the Identity site:Redmond. This example is similar to Example 2 except that the Replace list
modifier has been used instead of the Add modifier. This means that the complete set of file extensions will be
replaced by the two specified file extensions: .vbs and .ps1. In this case the only files blocked at the Redmond site
will be .vbs and .ps1.
-------------------------- EXAMPLE 4 --------------------------

New-CsFileTransferFilterConfiguration -Identity site:Redmond -Action "BlockAll"

$x = New-CsFileTransferFilterConfiguration -Identity site:Redmond -InMemory

$x.Action = "BlockAll"

Set-CsFileTransferFilterConfiguration -Instance $x

Example 4 demonstrates the use of the InMemory parameter to create a file transfer filter configuration that
initially resides in memory only. To do this the first command in the example uses the New -
CsFileTransferFilterConfiguration cmdlet and the InMemory parameter to create a new file transfer filter
configuration with the Identity site:Redmond. At this point in time, the new settings exist only in memory; users in
the Redmond site will still be governed by the global file transfer filter settings.
In the second command, the value of the Action property for this in-memory instance is set to BlockAll. Finally, the
third command in the example uses the Set-CsFileTransferFilterConfiguration cmdlet to create the new collection
of settings and apply them to the Redmond site.
Note that this same task can be accomplished in one step with the following command:

Parameters
-Action
Determines the action to be taken if file transfer filtering is enabled. If set to BlockAll then all file transfers will be
prohibited, regardless of file extension. If set to Block (the default value) file transfers will be allowed unless the file
extension appears as one of the prohibited file types listed in the Extensions property.
To allow unrestricted file transfers (that is, to allow users to exchange any type of file, regardless of file extension),
set the Enabled property of this policy to False.

Type: FileFilterAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Enables or disables file transfer filtering. If this parameter is set to True, files with the specified extensions (or all
files, depending on the value of the Action property) cannot be transferred by a Skype for Business Server client. If
this parameter is set to False, any file can be transferred.
Default: True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Extensions
List of file extensions that will be blocked. If you attempt to use a Skype for Business Server client to transfer a file
that has a file extension matching one of the extensions in this list, that transfer will be blocked and the file will not
be transferred. This list is ignored if Action is set to BlockAll (all file transfers are blocked) or if Enabled is set to
False (no file transfers are blocked).
By default, the following file extensions are included in the Extensions property: .ade, .adp, .app, .asp, .bas, .bat, .cer,
.chm, .cmd, .com, .cpl, .crt, .csh, .exe, .fxp, .grp, .hlp, .hta, .inf, .ins, .isp, .its, .js, .jse, .ksh, .lnk, .mad, .maf, .mag, .mam,
.maq, .mar., mas., .mat, .mau, .mav, .maw, .mda, .mdb. .mde, .mdt, .mdw, .mdz, .msc, .msi, .msp, .mst, .ocx, .ops, .pcd,
.pif, .pl, .pnp, .prf, .prg, .pst, .reg, .scf, .scr, .sct, .shb, .shs, .tmp, .url, .vb, .vbe, .vbs, .vsd, .vsmacros, .vss, .vst, .vsw, .ws, .wsc.
.wsf, .wsh

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier to be given to the file transfer filter configuration. The Identity for the new configuration is simply
the prefix "site:" followed by the site name. For example, to create a new configuration for the Redmond site, you
would use this syntax: -Identity site:Redmond.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The New -CsFileTransferFilterConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration object.

Related Links
Remove-CsFileTransferFilterConfiguration
Set-CsFileTransferFilterConfiguration
Get-CsFileTransferFilterConfiguration
minutes to read • Edit Online

New-CsFIPSConfiguration
In ths Article

Creates a new collection of Federal Information Processing Standards (FIPS ) configuration settings. The FIPS
standards are a set of United States government security standards required for use in computers maintained by
non-military government agencies and by government contractors. This cmdlet was introduced in Lync Server
2013.

Syntax
New-CsFIPSConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-InMemory]
[-RequireFIPSCompliantMedia <Boolean>] [-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

Description
The Federal Information Processing Standards (FIPS ) are a series of standards and guidelines used by computers
engaged in work for the United States government; for example, there are FIPS standards that govern the use of
such things as cryptography, encryption, and digital signatures. (See http://www.itl.nist.gov/fipspubs/by-num.htm
(http://www.itl.nist.gov/fipspubs/by-num.htm) for more information.) Skype for Business Server provides an option
that enables the software to use only algorithms that meet the FIPS standards. If you need to work with the United
States government (or with other entities that follow FIPS ) then you can enable FIPS compliance in Skype for
Business Server.
Keep in mind, however, that, for the on-premises version of Skype for Business Server, you have only a single,
global collection of FIPS configuration settings: FIPS compliance can only be enabled or disabled for your entire
Skype for Business Server implementation. You cannot selectively enable or disable FIPS compliance on, say, an
individual site or an individual Registrar pool. If you do enable FIPS compliance, you could potentially encounter
problems when trying to communicate with organizations that do not fully adhere to the FIPS standards. That
means that the New -CsFIPSConfiguration cmdlet is primarily used to manage FIPS compliance for Skype for
Business Online.
By default, FIPS compliance is disabled in Skype for Business Server.
Skype for Business Server Control Panel: The functions carried out by the New -CsFIPSConfiguration cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

$x = New-CsFIPSConfiguration -Identity "global" -RequireFIPSCompliantMedia $False -InMemory

Set-CsFIPSConfiguration -Instance $x

The commands shown in Example 1 create a new, in-memory-only set of FIPS configuration settings and then later
use these settings to update the global collection of FIPS configuration settings. In order to do this, the first
command in the example uses the New -CsFIPSConfiguration cmdlet and the InMemory parameter to create a new
collection of FIPS configurations settings with the Identity "global"; the resulting settings object is stored in a
variable named $x.
In the second command, the Set-CsFIPSConfiguration cmdlet and the Instance parameter are then used to replace
the existing global collection of FIPS settings with the new collection stored in $x.
Although this example works, it is easier to modify FIPS configuration settings by using the Set-
CsFIPSConfiguration cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new collection of FIPS configuration settings. Because Skype for Business Server only
supports a single, global collection of FIPS settings, the only way you can use this parameter is to create a "new"
global collection that exists only in memory. You will also need to use the InMemory parameter in order to do that.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequireFIPSCompliantMedia
When set to True, Skype for Business Server will only allow media sessions with entities that use FIPS compliant
algorithms for authentication and authorization.
Note that, if you require FIPS compliance, then your users will no longer be able to connect to your system by
using a Microsoft Lync Server 2010 A/V Edge server. Instead, you will need to upgrade all your Edge servers to
Skype for Business Server.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new FIPS
configuration settings are being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsFIPSConfiguration cmdlet does not accept pipelined input.
Outputs
The New -CsFIPSConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.FIPSConfiguration.FIPSConfiguration object.

Related Links
Get-CsFIPSConfiguration
Remove-CsFIPSConfiguration
Set-CsFIPSConfiguration
minutes to read • Edit Online

New-CsGroupPickupUserOrbit
In ths Article

Use the New -CsGroupPickupUserOrbit cmdlet to assign and enable a group pickup orbit number for an Enterprise
Voice user.

Syntax
New-CsGroupPickupUserOrbit [-User] <String> -Orbit <String> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The same orbit can be assigned to multiple users. This cmdlet will throw an exception if the user is already assigned
a group pickup orbit number, or if the specified orbit does not exist or is of the wrong type.

Examples
-------------------------- Example 1 --------------------------

New-CsGroupPickupUserOrbit -User sip:KenMyers@Contoso.com -Orbit "*100"

This example adds a user specified by the SIP address to the *100 orbit.
-------------------------- Example 2 --------------------------

New-CsGroupPickupUserOrbit "Ken Myers" -Orbit 2103

This example adds a user specified by display name to the 2103 orbit. Because User is a positional parameter, the -
User syntax is not required. The first parameter after the cmdlet is assumed to be the User parameter value.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Orbit
Specifies the group pickup orbit number to be assigned to the user. The number must be within an orbit pickup
range that was created with a type of GroupPickup. For more information on creating call park orbits, see New -
CsCallParkOrbit (https://technet.microsoft.com/en-us/library/gg398936.aspx ).
Values for the Orbit parameter must match the regular expression ([*|#]?[1-9]\d{0,7})|([1-9]\d{0,8}).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-User
Specifies the user whose group pickup orbit number will be assigned. Because User is a positional parameter, the -
User syntax is not required. The first parameter after the cmdlet is assumed to be the User parameter value.
Users can be specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN );
3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4)
the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using
the user's Active Directory distinguished name.

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
This cmdlet supports pipelined input from the Get-CsUser cmdlet.

Outputs
This cmdlet returns an instance of the
Microsoft.Rtc.Management.Voice.Helpers.GroupPickup.DisplayGroupPickupUserOrbit object.
minutes to read • Edit Online

New-CsHealthMonitoringConfiguration
In ths Article

Creates a new collection of health monitoring configuration settings for use in your organization. These settings
enable administrators to run quality assurance tests without having to supply the user names and passwords for
the required test accounts. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsHealthMonitoringConfiguration [-Identity] <XdsGlobalRelativeIdentity> [-FirstTestSamAccountName <String>]
-FirstTestUserSipUri <String> [-SecondTestSamAccountName <String>] -SecondTestUserSipUri <String> [-Force]
[-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsHealthMonitoringConfiguration -TargetFqdn <String> [-FirstTestSamAccountName <String>]


-FirstTestUserSipUri <String> [-SecondTestSamAccountName <String>] -SecondTestUserSipUri <String> [-Force]
[-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
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 Microsoft System Center Operations Manager (formerly
Microsoft Operations Manager).
Synthetic transactions can be conducted in two different ways. Many administrators will use the
CsHealthMonitoringConfiguration cmdlets to set up test accounts for each of their Registrar pools. These test
accounts are a pair of user accounts that have been preconfigured for use with synthetic transactions. (Typically
these are test accounts and not accounts that belong to actual users.) When these test accounts are configured for a
pool, administrators can run a synthetic transaction against that pool without having to specify the identities of (and
supply the credentials for) the user accounts involved in the test. Instead, the synthetic transaction will automatically
use the preconfigured test accounts when performing its checks.
Alternatively, administrators can run a synthetic transaction using actual user accounts. For example, if two users
are unable to exchange instant messages, an administrator can run a synthetic transaction using the two user
accounts in question (as opposed to a pair of test accounts). If you decide to conduct a synthetic transaction using
actual user accounts you will have to supply the credentials for each user.
The New -CsHealthMonitoringConfiguration cmdlet provides a way for you to create a new health monitoring
configuration settings for a Registrar or Director pool. When creating a new collection of health monitoring
configuration settings, you must specify the fully qualified domain name (FQDN ) of the pool, as well as the SIP
addresses of the two accounts that will serve as the pool test accounts. (However, you do not need to provide the
passwords for those test accounts.) Note that each pool can host, at most, a single collection of health monitoring
configuration settings. If you try to create a new collection for the pool atl-cs-001.litwareinc.com and this pool has
already been assigned a Registrar, then your command will fail.
When you run the New -CsHealthMonitoringConfiguration cmdlet you might receive a warning if you have pools
that have not been assigned test users; this might include Director pools as well as Office Communications Server
pools. These warnings can be ignored. If you prefer, you can assign test users homed on other pools to your
Director pools; that would enable you to run the Test-CsRegistration cmdlet against the Director. However, test
users cannot be assigned to Office Communications Server pools.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsHealthMonitoringConfiguration -Identity atl-cs-001.litwareinc.com -FirstTestUserSipUri


"sip:kenmyer@litwareinc.com" -SecondTestUserSipUri "sip:pilar@litwareinc.com"

The command shown in Example 1 creates a new collection of health monitoring configuration settings for the pool
atl-cs-001.litwareinc.com. These new settings will use sip:kenmyer@litwareinc.com and sip:pilar@litwareinc.com as
the preconfigured test accounts.
-------------------------- EXAMPLE 2 --------------------------

$x = Get-CsService -Registrar | Select-Object PoolFqdn

foreach ($i in $x)

{New-CsHealthMonitoringConfiguration -Identity $i.PoolFqdn -FirstTestUserSipUri "sip:kenmyer@litwareinc.com" -


SecondTestUserSipUri "sip:pilar@litwareinc.com"}

Example 2 creates a new collection of health monitoring configuration settings for all the Registrar pools in the
organization. To do that, the first command in the example uses the Get-Service cmdlet and the Registrar parameter
to return a collection of all the Registrar pools. This collection is then piped to the Select-Object cmdlet, which picks
out only the PoolFqdn property. (This property returns the FQDN of a Registrar pool.) These FQDNs are stored in
a variable named $x.
In the second command, a foreach loop is created to loop through each Registrar pool FQDN. For each FQDN, the
New -CsHealthMonitoringConfiguration cmdlet is called to create a new collection of configuration settings, with
the FQDN stored in $x used as the Identity for the new collection. Each collection is also assigned the same two test
accounts: sip:kenmyer@litwareinc.com and sip:pilar@litwareinc.com.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FirstTestSamAccountName
SamAccountName of the first test user. The FirstTestSamAccountName must be entered by using the format
domain\username; for example:
-FirstTestSamAccountName litwareinc\kenmyer
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FirstTestUserSipUri
SIP address of the first test user to be configured for use by this collection of health monitoring settings. Note that
the SIP address must include the sip: prefix. For example: -FirstTestUserSipUri "sip:kenmyer@litwareinc.com".

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
FQDN of the pool where the health monitoring configuration settings are to be assigned (for example:
-Identity atl-cs-001.litwareinc.com ). Your command will fail if the specified pool already hosts a collection of
health monitoring configuration settings.
The Identity is equivalent to the TargetFqdn parameter. When creating a new collection of settings, you can use
either parameter. If you leave out both parameters, the New -CsHealthMonitoringConfiguration cmdlet will prompt
you to enter the Identity.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecondTestSamAccountName
SamAccountName of the second test user. The SecondTestSamAccountName must be entered by using the format
domain\username; for example:
-SecondTestSamAccountName litwareinc\pilar

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecondTestUserSipUri
SIP address of the second test user to be configured for use by this collection of health monitoring settings. Note
that the SIP address must include the sip: prefix. For example: -SecondTestUserSipUri "sip:pilar@litwareinc.com".

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetFqdn
FQDN of the pool where the health monitoring configuration settings are to be assigned (for example:
-TargetFqdn atl-cs-001.litwareinc.com ). Your command will fail if the specified pool already hosts a collection of
health monitoring configuration settings.
The TargetFqdn is equivalent to the Identity parameter. When creating a new collection of settings, you can use
either parameter. If you leave out both parameters, the New -CsHealthMonitoringConfiguration cmdlet will prompt
you to enter the Identity.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsHealthMonitoringConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsHealthMonitoringConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.HealthMonitoringSettings object.

Related Links
Get-CsHealthMonitoringConfiguration
Remove-CsHealthMonitoringConfiguration
Set-CsHealthMonitoringConfiguration
minutes to read • Edit Online

New-CsHostedVoicemailPolicy
In ths Article

Creates a new hosted voice mail policy. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsHostedVoicemailPolicy [-Identity] <XdsIdentity> [-Description <String>] [-Destination <String>]
[-Organization <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-Tenant <Guid>] [<CommonParameters>]

Description
This cmdlet creates a policy that configures a user account enabled for Skype for Business Server to use an
Exchange Unified Messaging (UM ) hosted voice mail service. The policy determines how to route unanswered calls
to the user to a hosted Exchange UM service.
A user must be enabled for Exchange UM hosted voice mail for this policy to take effect. You can call the Get-
CsUser cmdlet and check the HostedVoiceMail property to determine whether a user is enabled for hosted voice
mail. (A value of True means the user is enabled.)
Policies created at the site scope will be automatically assigned to the users homed on those sites. Policies created
at the per-user scope must be assigned to users or contact objects with the Grant-CsHostedVoicemailPolicy cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsHostedVoicemailPolicy -Identity ExRedmond -Destination ExUM.fabrikam.com -Description "Hosted voicemail


policy for Redmond users." -Organization "corp1.litwareinc.com, corp2.litwareinc.com"

This command creates a new hosted voice mail policy named ExRedmond. (The fact that no scope is specified
means that this policy can be assigned to individual users or contacts.) This policy defines the Exchange UM
destination for this policy to be at FQDN ExUM.fabrikam.com. In addition, the Skype for Business Server users of
this policy can be spread across the corp1 and corp2 organizations of litwareinc. This policy is described as (has a
Description parameter value of) "Hosted voice mail property for Redmond users."
-------------------------- Example 2 --------------------------

$x = New-CsHostedVoiceMailPolicy -Identity global -Tenant "73d355dd-ce5d-4ab9-bf49-7b822c18dd98" -Destination


ExUM.fabrikam.com -Description "Hosted voicemail policy for Redmond users." -Organization
"corp1.litwareinc.com, corp2.litwareinc.com"

Set-CsHostedVoiceMailPolicy -Instance $x -Tenant "73d355dd-ce5d-4ab9-bf49-7b822c18dd98"

The commands shown in Example 2 are a variation of the command shown in Example 1; in this case, however, the
new hosted voicemail policy is assigned to the Skype for Business Online tenant with the tenant ID 73d355dd-
ce5d-4ab9-bf49-7b822c18dd98. To create a new policy for a Skype for Business Online tenant you must include
the InMemory parameter and store the resulting policy in a variable. That's what happens in the first command,
with the new policy stored in a variable named $x. Note, too that you must set the Identity to Global and the Tenant
parameter to the appropriate tenant ID.
To create the new policy, the second command then calls the Set-CsHostedVoiceMailPolicy cmdlet along with the
Instance parameter and the Tenant parameter.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A friendly description of the policy.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Destination
The value assigned to this parameter is the fully qualified domain name (FQDN ) of the hosted Exchange UM
service. Note that the chosen destination must be trusted for routing.
This parameter is optional, but if you attempt to enable a user for hosted voice mail and the user's assigned policy
does not have a Destination value, the enable will fail.
This value must be 255 characters or less and in the form of an FQDN, such as server.litwareinc.com.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the policy, which includes the scope and site (for a site policy, such as site:Redmond), or the
policy name (for a per-user policy, such as RenoHostedVoicemail). A global policy will always exist and can't be
removed, so you cannot create a global policy.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Organization
This parameter contains a comma-separated list of the Exchange tenants that contain Skype for Business Server
users. Each tenant must be specified as an FQDN of the tenant on the hosted Exchange Service.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new hosted
voicemail policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an object of type
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.HostedVoicemailPolicy

Related Links
Remove-CsHostedVoicemailPolicy
Set-CsHostedVoicemailPolicy
Get-CsHostedVoicemailPolicy
Grant-CsHostedVoicemailPolicy
minutes to read • Edit Online

New-CsHostingProvider
In ths Article

Creates a new hosting provider for use in your organization. A hosting provider is a private third-party
organization that provides instant messaging, presence, and related services for a domain that you would like to
federate with. Hosting providers differ from public providers (such as Yahoo!, MSN, and AOL ) in that their services
are not offered to the general public. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsHostingProvider [-Identity] <XdsGlobalRelativeIdentity> -Enabled <Boolean> -ProxyFqdn <String>
-EnabledSharedAddressSpace <Boolean> -HostsOCSUsers <Boolean> [-IsLocal <Boolean>]
[-VerificationLevel <VerificationLevelType>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-AutodiscoverUrl <String>] [-SipClientPort <UInt64>] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider;
and, 3) federation between your organization and a third-party hosting provider.
A hosting provider is an organization which provides SIP communication services for other organizations; for
example, Fabrikam, Inc. might host users from Contoso, Northwind Traders, and Wingtip Toys. When you establish
a federation relationship with a hosting provider, you effectively establish federation with any organization hosted
by that provider. For example, if you federate with Fabrikam, your users will be able to exchange instant messages
and presence information with users from Contoso, Northwind Traders, and Wingtip Toys.
Hosting providers are also used in split domain scenarios. In a split domain scenario, some of your Skype for
Business Server users have accounts hosted on-premises (that is, hosted on your local implementation of Skype for
Business Server). Other users have their accounts maintained off-premises by the third-party hosting provider.
Federating with the hosting provider enables on-premises and off-premises users to communicate with one
another.
In order to federate with a third-party hosting provider, you need to create and enable a new hosting provider. (In
addition, the third-party provider will need to create a federation relationship with you.) The New -
CsHostingProvider cmdlet enables you to set up three types of hosting provider relationships:
Direct federation with the hosting provider. To create this type of relationship you must include the three required
parameters: Identity; ProxyFqdn; and Enabled.
Split domain, with Skype for Business Server services being hosted. To create this type of relationship you need to
include the three required parameters. In addition, you must set both the EnabledSharedAddressSpace and
HostsOCSUsers properties to True.
Split domain, with non-Skype for Business Server services (such as Microsoft Exchange) being hosted. To create
this type of relationship, you need to include the three required parameters. In addition, you must set the
EnabledSharedAddressSpace to True and HostsOCSUsers to False.
When you create a new hosting provider, both the Identity and the proxy fully qualified domain name (FQDN ) for
that provider must be unique: you cannot have two hosting providers (or even one hosting provider and one public
provider) that share an identity and/or a proxy FQDN.
Note, too that you cannot federate with a hosting provider if your Edge Servers are configured to use default
routing rather than Domain Name System (DNS ) server routing.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsHostingProvider -Identity Fabrikam.com -ProxyFqdn "proxyserver.fabrikam.com" -Enabled $True

In Example 1, a new hosting provider with the Identity Fabrikam.com is created. In addition to specifying the
Identity, the command also includes the other two required parameters: ProxyFqdn (which specifies the proxy
server used by Fabrikam.com); and Enabled, which indicates whether or not the new hosting provider is enabled for
use. If you leave out any of the required parameters, the New -CsHostingProvider cmdlet will prompt you to enter
those values before continuing.
-------------------------- EXAMPLE 2 --------------------------

New-CsHostingProvider -Identity Fabrikam.com -ProxyFqdn "proxyserver.fabrikam.com" -Enabled $True -


HostsOCSUsers $True -EnabledSharedAddressSpace $True

Example 2 demonstrates how you can create a new hosting provider for use in a split domain scenario. (Split
domain means that some of your Skype for Business Server accounts are maintained on-premises while other
accounts are maintained by a hosting provider.) To create this type of hosting provider, you must include the three
required parameters (Identity; ProxyFqdn; and Enabled). In addition, you must include, and set to True, both the
HostsOCSUsers and the EnabledSharedAddressSpace parameters. To create a split domain provider that hosts
non-Skype for Business Server services (such as Microsoft Exchange), include these same two parameters but set
HostsOCSUsers to False.

Parameters
-AutodiscoverUrl
URL for the autodiscover service used by a hosting provider that hosts Skype for Business Server accounts. The
autodiscover service enables client applications to determine how to access resources such as a user's home pool.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether the network connection between your domain and the hosting provider is enabled. Messages
cannot be exchanged between the two organizations until this value is set to True. The default value is False.

Type: Boolean
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnabledSharedAddressSpace
If True, indicates that the hosting provider is being used in a split domain scenario. The default value is False.

Type: Boolean
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostsOCSUsers
If True, indicates that the hosting provider is used to host Skype for Business Server accounts. If False, that indicates
that the provider hosts other account types, such as Microsoft Exchange accounts. The default value is False.

Type: Boolean
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the hosting provider to be created. The Identity is a string value; the Identity might be the
FQDN of the hosting provider (for example, fabrikam.com) or perhaps the name of the company providing the
services (Fabrikam, Inc.).
Hosting provider Identities must be unique. Your command will fail if you try to create a new hosting provider with
the same Identity as an existing provider.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsLocal
If True, indicates that the proxy server used by the hosting provider is contained within your Skype for Business
Server topology. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyFqdn
The FQDN for the proxy server used by the hosting provider. Note that this value cannot be modified. If the hosting
provider later changes its proxy server or if you make a mistake when you first specify the proxy FQDN you will
need to delete and then recreate the entry for that provider.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipClientPort
Port used by the provider for communicating with SIP clients; the default value is 443. Note that, by default, the
SipClientPort is not displayed when you run the Get-CsHostingProvider cmdlet. To see the SipClientPort, use a
command similar to this:
Get-CsHostingProvider | Select-Object *
Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VerificationLevel
Indicates the allowed verification level for messages sent to and from the hosted provider. The VerificationLevel
must be set to one of the following values:
AlwaysVerifiable. Indicates that all messages sent from the hosting provider are considered verifiable. That means
that no messages from the hosting provider will be rejected.
AlwaysUnverifiable. Indicates that all messages sent from the hosting provider are considered unverifiable. As a
result, messages are passed only if the user on the hosting provider is also in your Contacts list.
UseSourceVerification. Relies on the verification level included in messages sent from the hosting provider. If this
level is not specified, then the message will be rejected as being unverifiable.
The default value is AlwayVerifiable.

Type: VerificationLevelType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsHostingProvider cmdlet does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider
object.

Related Links
Disable-CsHostingProvider
Enable-CsHostingProvider
Get-CsHostingProvider
Remove-CsHostingProvider
Set-CsHostingProvider
minutes to read • Edit Online

New-CsHuntGroup
In ths Article

Creates new Call Queue in your Skype for Business Online organization. Call Queues are part of Phone System in
Office 365.

Syntax
New-CsHuntGroup -Domain <System.String> -Name <System.String> [-AgentAlertTime <Int16>] [-AllowOptOut
<System.Boolean>] [-DistributionLists <System.Collections.Generic.List`1[System.Guid]>]
[-LineUri <System.Uri>] [-MusicOnHoldFileContent <System.Byte[]>] [-MusicOnHoldFileName <System.String>] [-
OverflowAction <Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction>]
[-OverflowActionTarget <System.Uri>] [-OverflowThreshold <Int16>] [-RoutingMethod
<Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod>] [-TimeoutAction
<Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction>] [-TimeoutActionTarget <System.Uri>] [-
TimeoutThreshold <Int16>] [-UseDefaultMusicOnHold <System.Boolean>]
[-WelcomeMusicFileContent <System.Byte[]>] [-WelcomeMusicFileName <System.String>] [<CommonParameters>]

Description
Creates a new Call Queue in your Skype for Business Online organization. Call Queues are part of Phone System
in Office 365.
Note, you need to specify UseDefaultMusicOnHold $True (default is none), or provide MusicOnHoldFileName and
MusicOnHoldFileContent.
MusicOnHoldFileName and MusicOnHoldFileContent cannot be empty so you must specify a valid
MusicOnHoldFileName and MusicOnHoldFileContent or set UseDefaultMusicOnHold to true.
The New -CsHuntGroup cmdlet may suggest additional steps required to complete the Call Queue setup.
The following parameters are not applicable to Skype for Business Online: AsJob, ClientAudience,
DomainController, Force, HuntGroupServiceCallbackUri, PipelineVariable, and Ring.

Examples
-------------------------- Example 1 --------------------------

New-CsHuntGroup -Name "Help Desk" -Domain "litwareinc.com" -UseDefaultMusicOnHold $true

This example creates a Call Queue for the organization named "Help Desk" in the domain "litwareinc.com" using
default music on hold.
-------------------------- Example 2 --------------------------
$musicOnHoldContent = Get-Content ".\MusicOnHold.wav" -ReadCount 0 -Encoding Byte
$welcomeMusicContent = Get-Content ".\WelcomeMusic.wav" -ReadCount 0 -Encoding Byte
New-CsHuntGroup -Name "Help desk" -Domain "litwareinc.com" -LineUri "tel:+19998881234" -RoutingMethod Attendant
-DistributionLists @("8521b0e3-51bd-4a4b-a8d6-b219a77a0a6a", "868dccd8-d723-4b4f-8d74-ab59e207c357") -
AllowOptOut $false -AgentAlertTime 30 -OverflowThreshold 15 -OverflowAction Forward -OverflowActionTarget
"sip:backup_user@litwareinc.com" -TimeoutThreshold 30 -TimeoutAction Disconnect -MusicOnHoldFileName
"MusicOnHold.wav" -MusicOnHoldFileContent $musicOnHoldContent -WelcomeMusicFileName "WelcomeMusic.wav"

This example saves the contents of music on hold and welcome music files in temporary variables. Then, it creates a
Call Queue for the organization named "Help Desk" in the domain "litwareinc.com" using those contents and other
configurable parameters.

Parameters
-AgentAlertTime
The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is
automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 30 and 180
seconds (3 minutes), inclusive. The default value is 30 seconds.

Type: Int16
Required: False
Position: Named
Default value: 30
Accept pipeline input: False
Accept wildcard characters: False

-AllowOptOut
The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call
Queue.

Type: System.Boolean
Required: False
Position: Named
Default value: True
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
This parameter is reserved for Microsoft internal use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassDualWrite
This parameter is reserved for Microsoft internal use only.
Type: System.Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientAudience
This parameter is reserved for Microsoft internal use only.

Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DistributionLists
The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list
of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only
the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the
call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue.

Type: System.Collections.Generic.List`1[System.Guid]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
The Domain parameter denotes the domain part of the primary uri for the Call Queue. This domain name is
validated against the list of domains that the tenant owns.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for Microsoft internal use only.
PARAMVALUE: Fqdn

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
This parameter is reserved for Microsoft internal use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HuntGroupServiceCallbackUri
This parameter is reserved for Microsoft internal use only.

Type: System.Uri
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineUri
The LineUri parameter is the phone number for the Call Queue. The line Uniform Resource Identifier (URI) must
be specified by using the following format: the tel: prefix followed by a plus sign, followed by the country/region
calling code, area code, and phone number (using only digits: no blank spaces, periods, or hyphens). For example: -
LineUri "tel:+14255551219".

Type: System.Uri
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MusicOnHoldFileContent
The MusicOnHoldFileContent parameter represents music to play when callers are placed on hold. This is the
content of the audio file. Supported formats are: .wav, .mp3, and .wma. This parameter is required if the
UseDefaultMusicOnHold parameter is not specified.

Type: System.Byte[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MusicOnHoldFileName
The MusicOnHoldFileName parameter represents music to play when callers are placed on hold. This is the name
of the audio file. Supported formats are: .wav, .mp3, and .wma. This parameter is required if the
UseDefaultMusicOnHold parameter is not specified.
Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The Name parameter specifies a unique name for the Call Queue.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OverflowAction
The OverflowAction parameter designates the action to take if the overflow threshold is reached. The
OverflowAction property must be set to one of the following three values: DisconnectWithBusy, Forward, and
Voicemail.
PARAMVALUE: DisconnectWithBusy | Forward | Voicemail

Type: Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction
Required: False
Position: Named
Default value: DisconnectWithBusy
Accept pipeline input: False
Accept wildcard characters: False

-OverflowActionTarget
The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to
Forward, this parameter must be set to a SIP address. Otherwise, this parameter is optional.

Type: System.Uri
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OverflowThreshold
The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the
overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value
of 0 causes calls not to reach agents and the overflow action to be taken immediately

Type: Int16
Required: False
Position: Named
Default value: 50
Accept pipeline input: False
Accept wildcard characters: False
-Ring
This parameter is reserved for Microsoft internal use only.

Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RoutingMethod
The RoutingMethod defines how agents will be called in a Call Queue. If the routing method is set to Serial, then
agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel.
PARAMVALUE: Attendant | Serial

Type: Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod
Required: False
Position: Named
Default value: Attendant
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for Microsoft internal use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TimeoutAction
The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction
property must be set to one of the following three values: Disconnect, Forward, and Voicemail. The default value is
Disconnect.
PARAMVALUE: Disconnect | Forward | Voicemail

Type: Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction
Required: False
Position: Named
Default value: Disconnect
Accept pipeline input: False
Accept wildcard characters: False

-TimeoutActionTarget
The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this
parameter must be set to a SIP address. Otherwise, this field is optional.
Type: System.Uri
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TimeoutThreshold
The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times
out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold
can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For
example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the
timeout action will be taken.

Type: Int16
Required: False
Position: Named
Default value: 1200
Accept pipeline input: False
Accept wildcard characters: False

-UseDefaultMusicOnHold
The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This
parameter cannot be specified together with MusicOnHoldFileName and MusicOnHoldFileContent.

Type: System.Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WelcomeMusicFileContent
The WelcomeMusicFileContent parameter represents the audio file to play when callers are connected with the Call
Queue. This is the content of the audio file. Supported formats are: .wav, .mp3, .and wma.

Type: System.Byte[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WelcomeMusicFileName
The WelcomeMusicFileName parameter represents audio file to play when callers are connected with the Call
Queue. This is the name to the audio file. Supported formats are: .wav, .mp3, and .wma.
Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Outputs
Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroup

Related Links
Create a Phone System Call Queue
minutes to read • Edit Online

New-CsHybridApplicationEndpoint
In ths Article

Creates a Skype for Business application endpoint to the Skype for Business Server users if Hybrid connectivity has
been deployed in the environment. This cmdlet was introduced in the July 2017 cumulative update for the Lync
Server 2013 and May 2017 cumulative update for Skype Business Server 2015.

Syntax
New-CsHybridApplicationEndpoint -OU <OUIdParameter> -DisplayName <String> -SipAddress <String>
-ApplicationId <Guid> [-LineUri <String>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business application endpoint can be connected to the Skype for Business Server users if Hybrid
connectivity has been deployed in the environment.
Hybrid connectivity between Skype for Business Server and Skype for Business Online means users of a domain,
such as contoso.com, are split between using Skype for Business Server on premises and Skype for Business
Online. Some of the domain users are homed on premises, and some users are homed online. Application endpoint
will be configured as online users reachable by the on-premises users.
Before New-CsHybridApplicationEndpoint you must run New-CsOnlineApplicationEndpoint to register your
application endpoint in Skype for Business Online. Please make sure that the New-CsHybridApplicationEndpoint
parameters: ApplicationId, DisplayName and SipAddress have the same values as New-CsOnlineApplicationEndpoint
parameters: ApplicationID, Name and Uri, respectively.

Examples
-------------------------- Example 1 --------------------------

PS C:\> New-CsHybridApplicationEndpoint -ApplicationId 41ec7d50-ba91-1208-73ee-136b88859725 -DisplayName


NewBot1 -SipAddress sip:newbot1@litwareinc.com -OU "ou=Redmond,dc=litwareinc,dc=com"

This example creates a hybrid application endpoint named NewBot1 in Skype for Business Server. This application
was created using the Skype for Business Bot Framework which allows you to build and connect intelligent bots to
interact with your Skype for Business users using text, cards, or speech.

Parameters
-ApplicationId
The ApplicationId for the application endpoint that is being created.
Type: Guid
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Friendly name for the application endpoint is being created.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineUri
Valid phone number for the application endpoint is being created. (Not currently supported through BOT
framework)

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Active Directory Organizational Unit (OU ) for the disabled user to be created. Wait for the newly created user
object to be directory synced to the Azure Active Directory or start a new directory sync cycle by running the Start-
ADSyncSyncCycle on the domain controller machine.

Type: OUIdParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any
output.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
The SipUri for the Endpoint. SIP Uri must be lowercase.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Get-CsHybridApplicationEndpoint
Set-CsHybridApplicationEndpoint
Remove-CsHybridApplicationEndpoint
minutes to read • Edit Online

New-CsHybridPSTNSite
In ths Article

Use the New -CsHybridPSTNSite cmdlet to create a new hybrid public switched telephone network (PSTN ) site.

Syntax
New-CsHybridPSTNSite [-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>] -EdgeFQDN <String>
[-EnableAutoUpdate <Boolean>] [-BitsUpdateTimeWindow <Int32>] [-OsUpdateTimeWindow <Int32>] [-InMemory] [-
Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Hybrid PSTN sites are created, retrieved, modified, and deleted by the CsHybridPSTNSite cmdlet group (New, Get,
Set, and Remove .) The hybrid PSTN sites can be reviewed in your hybrid configuration by using the Get-
CsTenantHybridConfiguration cmdlet. However, you can't create or modify hybrid PSTN sites through the
CsTenantHybridConfiguration cmdlets, you must use the CsHybridPSTNSite cmdlets to manage hybrid PSTN
sites.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned, run the following
command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<CmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

New-CsHybridPSTNSite -Identity "SeattlePSTN" -EdgeFQDN "Contoso.Denver.Edge.com" -BitsUpdateTimeWindow


@{add="FirstWeekend","Night"} -OsUpdateTimeWindow @{add="Weekday"}

This example creates a new hybrid public switched telephone network (PSTN ) site named "SeattlePSTN" in the
tenant.

Parameters
-AsJob
{{Fill AsJob Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BitsUpdateTimeWindow
Time window for updating Skype for Business Cloud Connector Edition bits on the appliance.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EdgeFQDN
Specifies the fully qualified domain name of the edge server. For example: -EdgeFQDN Contoso.Denver.Edge.com

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAutoUpdate
If set to $true, automatic updates will be turned on for the Skype for Business Cloud Connector Edition appliance. If
set to $false, automatic updates will be turned off for the Skype for Business Cloud Connector Edition appliance.
The default is $true.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the hybrid public switched telephone network (PSTN ) site. For example:
-Identity "SeattlePSTN". If the identity provided is not unique within the tenant, the cmdlet will fail.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OsUpdateTimeWindow
Time window for updating the operating system on the appliance.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the global unique identifier (GUID ) of the Skype for Business Online tenant account on which the cmdlet
will operate. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308".
You can find the tenant ID for your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will be determined by your connection and
credentials. The Tenant parameter is primarily for use in a hybrid deployment.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The New -CsHybridPSTNSite cmdlet returns instances of the HybridPstnSite object.
minutes to read • Edit Online

New-CsImConfiguration
In ths Article

Use the New -CsImConfiguration cmdlet to create a new Instant Messaging (IM ) configuration. This cmdlet was
introduced in Skype for Business June 2016 Cumulative Update.

Syntax
New-CsImConfiguration [-Identity] <XdsIdentity> [-Confirm] [-EnableOfflineIm <Boolean>] [-Force] [-InMemory]
[-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

Description
Use the New -CsImConfiguration cmdlet to create a new Instant Messaging (IM ) configuration.

Examples
-------------------------- Example 1 --------------------------

New-CsImConfiguration -Identity "Site:Redmond" -EnableOfflineIm $true

This example creates a new Instant Messaging (IM ) configuration for the Redmond site and enables the offline IM
feature in that new configuration.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOfflineIm
Enables or disables Offline Instant Messaging.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier specifying the scope and, in some cases the name, of the IM configuration.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Get-CsImConfiguration
Set-CsImConfiguration
Remove-CsImConfiguration
minutes to read • Edit Online

New-CsImFilterConfiguration
In ths Article

Creates a new instant messaging (IM ) filter configuration. IM filters are used to prevent users from sending instant
messages that contain active hyperlinks. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsImFilterConfiguration [-Identity] <XdsIdentity> [-Action <UrlFilterAction>] [-AllowMessage <String>]
[-BlockFileExtension <Boolean>] [-Enabled <Boolean>] [-IgnoreLocal <Boolean>] [-Prefixes <PSListModifier>]
[-WarnMessage <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
When sending instant messages, users can embed a Uniform Resource Identifier (URI) within the text of that
message to refer other participants in the conversation to a particular website or share. Skype for Business Server
can be configured so that hyperlinks with certain prefixes are blocked or are not active. (In other words, the
participants can't simply click the link and be taken to the site the URI refers to; they must copy and paste the link
manually into a browser.)
The New -CsImFilterConfiguration cmdlet allows you to define a list of URI prefixes that will be filtered, in addition
to enabling and disabling filtering altogether, within a specific site. Calling the New -CsImFilterConfiguration cmdlet
with only an Identity specified will create a new configuration with that identity, populating the Prefixes list for that
site with a set of default prefixes that will be filtered.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsImFilterConfiguration -Identity site:Redmond

In Example 1, the New -CsImFilterConfiguration cmdlet is used to create a new IM filter configuration with the
Identity site:Redmond. (Because no additional parameters were specified, these settings will be created using the
default values.)
-------------------------- EXAMPLE 2 --------------------------

New-CsImFilterConfiguration -Identity site:Redmond -Prefixes @{add="rtsp:","urn:"}

In this command, the New -CsImFilterConfiguration cmdlet is used to create a new IM filter configuration with the
Identity site:Redmond. Because the Prefixes parameter has been specified, the new configuration will contain all the
default values--including the default prefixes to filter--plus two additional URI prefixes: rtsp: and urn:. We add these
prefixes by using the add list modifier to add these prefixes to the default list.
-------------------------- EXAMPLE 3 --------------------------
New-CsImFilterConfiguration -Identity site:Redmond -Prefixes @{replace="rtsp:","urn:"}

In this command, the New -CsFileTransferFilterConfiguration cmdlet is used to create a new IM filter configuration
with the Identity site:Redmond. This example is similar to Example 2 except that the replace list modifier has been
used instead of the add list modifier. This means that all the default URI prefixes will be replaced by these two
prefixes (rtsp: and urn:). Therefore, only URIs with prefixes of rtsp: or urn: will be filtered within instant messages
for the site Redmond.

Parameters
-Action
The value of this parameter determines the action that will be taken when a hyperlink is included in an instant
message:
Allow - Hyperlinks are prefixed with an underscore so that the links are no longer active. If a message is specified in
the AllowMessage property, that message will be inserted at the beginning of each instant message containing
hyperlinks.
Block - Delivery of messages containing active hyperlinks are blocked and Skype for Business Server sends an
error message to the sender.
Warn - Messages containing active hyperlinks are delivered to the receiving participants, along with a warning
message that is inserted at the beginning of those messages. The warning message can be specified using the
WarnMessage property. If Warn is specified and no WarnMessage is entered, IM filtering is disabled, although the
settings for the BlockFileExtension property will still be honored.
Default: Allow, unless a message contains more than 1,000 URLs, in which case the default is Block.
Full Data Type: Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.UrlFilterAction

Type: UrlFilterAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowMessage
If a value is specified for this parameter, that string is inserted at the beginning of each message containing
hyperlinks when the value of the Action property is set to Allow. You can use this message to notify users of things
such as the potential dangers of clicking unknown links, or your organization's relevant policies and requirements.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BlockFileExtension
If this parameter is set to True, a hyperlink that contains a file path with an extension specified by the Extensions
property defined in the applicable file transfer filter configuration (retrieved by calling the Get-
CsFileTransferFilterConfiguration cmdlet) is blocked and an error message is returned to the sender. If this
parameter is set to False, no special check is made for file extensions.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Enables or disables this feature. If this parameter is set to True, instant messages will be scanned for hyperlinks and
the rules in this configuration will be applied. If this parameter is set to False, messages will not be checked for
hyperlinks.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier specifying the scope of the IM filter configuration. Global settings exist by default and cannot be
re-created with the New -CsImFilterConfiguration cmdlet, but you can create site-level settings by specifying an
Identity of site:<site name>, where <site name> is the name of the site to which the settings will be applied (for
example, site:Redmond).
Full Data Type: Microsoft.Rtc.Management.Xds.XdsIdentity
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IgnoreLocal
The value of this parameter controls whether filtering is performed on local Intranet URIs passed in instant
messages.If this parameter is set to True, any URI that is defined in the Intranet zone of the local computer is
ignored. (The local computer is the Front End Server running the IM Filter application.) If this parameter is set to
False, the specified filtering is applied to all hyperlinks.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Prefixes
The list of URI prefixes that will be filtered. Any hyperlink included in an instant message with a prefix matching
one of the prefixes in this list will be filtered according to the specified settings.
Default: callto:, file:, ftp., ftp:, gopher:, href, http:, https:, ldap:, mailto:, news:, nntp:, sip:, sips:, tel:, telnet:, www*.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WarnMessage
This parameter contains the warning message that is inserted at the beginning of each instant message that
contains hyperlinks when the value of the Action property is set to Warn. Typically this message would be used for
such things as stating the potential dangers of clicking unknown links, or referring to your organization's relevant
policies and requirements.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.ImFilterConfiguration.

Related Links
Remove-CsImFilterConfiguration
Set-CsImFilterConfiguration
Get-CsImFilterConfiguration
minutes to read • Edit Online

New-CsImTranslationConfiguration
In ths Article

This cmdlet is reserved for internal Microsoft use.

Syntax
New-CsImTranslationConfiguration [-Identity] <XdsIdentity> [-AccessTokenUri <String>] [-ApplicationId <String>]
[-ClientId <String>] [-ClientSecret <String>] [-Confirm] [-Force] [-InMemory] [-ServiceUri <String>]
[-TranslationType <String>] [-WhatIf] [<CommonParameters>]

Description
This cmdlet is reserved for internal Microsoft use.

Examples
-------------------------- Example 1 --------------------------

This cmdlet is reserved for internal Microsoft use.

This cmdlet is reserved for internal Microsoft use.

Parameters
-AccessTokenUri
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ApplicationId
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ClientId
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientSecret
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
This parameter is reserved for internal Microsoft use.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServiceUri
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TranslationType
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

New-CsIssuedCertId
In ths Article

Enables you to assign an existing certificate to a SipProxy.TLS object. In turn, that object can be used configure a
static route to use Transport Layer Security (TLS ) as its transport protocol. This cmdlet was introduced in Lync
Server 2010.

Syntax
New-CsIssuedCertId -Issuer <String> -SerialNumber <Byte[]> [<CommonParameters>]

Description
When you send a Session Initiation Protocol (SIP ) message to someone, that message might need to traverse
multiple subnets and networks before it is delivered. The path traveled by the message is often referred to as a
route. In networking, there are two types of routes: dynamic and static. With dynamic routing, servers use
algorithms to determine the next location (the next hop) where a message should be forwarded. With static routing,
message paths are predetermined by system administrators. When a message is received by a server, the server
checks the message address, and then forwards the message to the next hop server that has been preconfigured by
an administrator. If configured correctly, static routes help ensure timely, and accurate, delivery of messages, and
with minimal overheard placed on servers. The downside to static routing is that messages are not dynamically
rerouted in the event of a network failure.
Skype for Business Server allows you to specify either Transmission Control Protocol (TCP ) or Transport Layer
Security (TLS ) as your transport protocol when configuring a static route. If you decide to use TLS as your protocol,
you must first assign a certificate to be used for authentication. In that case, you can use the default certificate
configured for Skype for Business Server. Alternatively, TLS certificates can be assigned by calling New -
CsIssuedCertID to create a certificate object, and then assigning that object to a SipProxy.TLS object created by
using the New -CsSipProxyTLS cmdlet.
When you run New -CsIssuedCertID you must provide the cmdlet with the issuer name and the serial number of an
existing certificate. That information can be obtained by running this command:
Get-CsCertificate | Select-Object Issuer, SerialNumber

Note that serial numbers must be passed as a byte array. This means you must pass the serial number as an array
of two-character values. In addition, each two-character value must be prefaced with 0x. For example, suppose you
have a certificate with the serial number 1E225D3ZF66. That data must be passed using this syntax:
-SerialNumber 0x1E,0x22,0x5D,0x3F,0x66

You do not need to use the New -CsIssuedCertId cmdlet if you create a static route by using the New -CsStaticRoute
cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

$cert = New-CsIssuedCertId -Issuer "Fabrikam" -SerialNumber 0x10,0x14,0x3A,0x1A

$tls = New-CsSipProxyTLS -Certificate $cert -Fqdn atl-proxy-001.litwareinc.com

The commands shown in Example 1 create a new certificate ID object and then assign that certificate to a
SipProxy.TLS object. In turn, that object can then be used to configure a static route to use the TLS transport
protocol. To do this, the first command in the example uses New -CsIssuedCertId to create a certificate ID object for
a certificate issued by Fabrikam that has the serial number 10143A1A. (Note that the serial number is specified as
an array of two-character strings.) The resulting object is stored in a variable named $cert.
In the second command, New -CsSipProxyTLS is used to create a SIPProxy.TLS object. To ensure that this object
uses the Fabrikam-issued certificate for authentication, the variable $cert is used as the parameter value for the
Certificate parameter.

Parameters
-Issuer
Name of the certification authority (CA) that issued the certificate to be used in the static route.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SerialNumber
Serial number of the certificate to be used in the static route. Serial numbers must be passed as a byte array. This
means you must pass the serial number as an array of two-character values, with each of these two-character
values prefaced by 0x. For example: -SerialNumber 0x01, 0x23, 0x45, 0x67, 0x89.

Type: Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsIssuedCertId does not accept pipelined input.

Outputs
New -CsIssuedCertId creates instances of the Microsoft.Rtc.Management.WritableConfig.BaseTypes.IssuedCertId
object.

Related Links
New -CsSipProxyTLS
minutes to read • Edit Online

New-CsKerberosAccount
In ths Article

Creates a new Kerberos account used for Internet Information Services (IIS ) authentication. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsKerberosAccount [-ContainerDN <String>] -UserAccount <String> [-Force] [-Report <String>] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
In Microsoft Office Communications Server 2007 and Microsoft Office Communications Server 2007 R2, IIS ran
under a standard user account. This had the potential to cause issues: if that password expired you could lose your
Web Services, an issue that was often difficult to diagnose. To help avoid the issue of expiring passwords, Skype for
Business Server enables you to create a computer account (for a computer that doesn't actually exist) that can serve
as the authentication principal for all the computers in a site that are running IIS. Because these accounts use the
Kerberos authentication protocol, the accounts are referred to as Kerberos accounts, and the new authentication
process is known as Kerberos web authentication. This enables you to manage all your IIS servers by using a single
account.
To run your servers under this authentication principal, you must first create a computer account by using the New -
CsKerberosAccount cmdlet; this account is then assigned to one or more sites. After the assignment has been
made, the association between the account and the Skype for Business Server site is enabled by running the
Enable-CsTopology cmdlet. Among other things, this creates the required service principal name (SPN ) in Active
Directory Domain Services. SPNs provide a way for client applications to locate a particular service.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsKerberosAccount -UserAccount "litwareinc\kerberostest" -ContainerDN "cn=Computers,dc=litwareinc,dc=com"

New-CsKerberosAccountAssignment -UserAccount "litwareinc\kerberostest" -Identity "site:Redmond"

Enable-CsTopology

The commands shown in Example 1 create a new Kerberos account (litwareinc\kerberostest), and then assign that
account to the Redmond site. To do this, the first command in the example creates an account with the account
name "litwareinc\kerberostest". This account will be created in the Computers container in the Litwareinc.com
domain. After the account has been created, the second command uses the New -CsKerberosAccountAssignment
cmdlet to assign that Kerberos account to the Redmond site.
After you make the new account assignment, the final command calls the Enable-CsTopology cmdlet in order to
enable the changes.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ContainerDN
Distinguished name of the Active Directory container where the new account is to be created. For example:
-ContainerDN "ou=Finance,dc=litwareinc,dc=com". If this parameter is not specified, then the New -
CsKerberosAccount cmdlet will create the new account in the Computers container in Active Directory.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\KerberosAccount.html".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserAccount
Account name for the new account, using the format domain_name\user_name. For example:
-UserAccount "litwareinc\kerberostest". Note that your command will fail if the specified account already exists.

Note, too that, despite the name UserAccount, the account created by running the New -CsKerberosAccount cmdlet
is actually a computer account, not a user account.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsKerberosAccount cmdlet does not accept pipelined input.

Outputs
The New -CsKerberosAccount cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccount object.

Related Links
New -CsKerberosAccountAssignment
minutes to read • Edit Online

New-CsKerberosAccountAssignment
In ths Article

Assigns a Kerberos account, which is used for Internet Information Services (IIS ) authentication, to a site. This
cmdlet was introduced in Lync Server 2010.

Syntax
New-CsKerberosAccountAssignment [-Identity] <XdsIdentity> [-UserAccount <String>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
In Microsoft Office Communications Server 2007 and Microsoft Office Communications Server 2007 R2, IIS ran
under a standard user account. This had the potential to cause issues: if that password expired you could lose your
Web Services, an issue that was often difficult to diagnose. To help avoid the issue of expiring passwords, Skype for
Business Server enables you to create a computer account (for a computer that doesn't actually exist) that can serve
as the authentication principal for all the computers in a site that are running IIS. Because these accounts use the
Kerberos authentication protocol, the accounts are referred to as Kerberos accounts, and the new authentication
process is known as Kerberos web authentication. This enables you to manage all your IIS servers by using a single
account.
To run your servers under this new authentication principal, you must first create a computer account by using the
New -CsKerberosAccount cmdlet; this account is then assigned to one or more sites. After the assignment has been
made, the association between the account and the Skype for Business Server site is enabled by running the
Enable-CsTopology cmdlet. Among other things, this creates the required service principal name (SPN ) in Active
Directory Domain Services. SPNs provide a way for client applications to locate a particular service.
The New -CsKerberosAccountAssignment cmdlet enables you to assign a Kerberos account to a site that is currently
not associated with an account. To change a site that is already associated with a Kerberos account, use the Set-
CsKerberosAccountAssignment cmdlet instead.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsKerberosAccountAssignment -UserAccount "litwareinc\kerberostest" -Identity "site:Redmond"

Enable-CsTopology

The commands shown in Example 1 assign a Kerberos account (litwareinc\kerberostest) to the Redmond site, then
call the Enable-CsTopology cmdlet in order to enable the assignment. To do this, the first command in the example
uses the New -CsKerberosAccountAssignment cmdlet to associate the account "litwareinc\kerberostest" with the
Redmond site. The second command then calls the Enable-CsTopology cmdlet in order to create the required SPN
in AD DS and enable the new assignment.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the site where the Kerberos account is to be assigned. (This is the Identity of the site, not of the
computer account.) For example: -Identity "site:Redmond".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserAccount
Account name for the account to be assigned, using the format domain_name\user_name. For example:
-UserAccount "litwareinc\kerberostest". The user name portion of the account (kerberostest) is a NETBIOS name
and can contain a maximum of 15 characters.
Note that, despite the name UserAccount, the account is actually a computer account, not a user account.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsKerberosAccountAssignment cmdlet does not accept pipelined input.

Outputs
The New -CsKerberosAccountAssignment cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccountAssignment object.

Related Links
Get-CsKerberosAccountAssignment
New -CsKerberosAccount
Remove-CsKerberosAccountAssignment
Set-CsKerberosAccountAssignment
minutes to read • Edit Online

New-CsLocationPolicy
In ths Article

Creates a new location policy for use with location identification for the Enhanced 9-1-1 (E9-1-1) service and
general client location. The E9-1-1 service enables those who answer 911 calls to determine the caller's geographic
location. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsLocationPolicy [-Identity] <XdsIdentity> [-ConferenceMode <ConferenceModeEnum>] [-ConferenceUri <String>]
[-Description <String>] [-EmergencyDialMask <String>] [-EmergencyDialString <String>]
[-EnhancedEmergencyServicesEnabled <Boolean>] [-LocationRequired <LocationRequiredEnum>]
[-NotificationUri <String>] [-PstnUsage <String>] [-UseLocationForE911Only <Boolean>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [-EnhancedEmergencyServiceDisclaimer <String>] [-LocationRefreshInterval <Int64>]
[-Tenant <Guid>] [-EmergencyNumbers <PSListModifier>] [<CommonParameters>]

Description
The location policy is used to apply settings that relate to E9-1-1 functionality and location settings to users or
contacts. The location policy determines whether a user is enabled for E9-1-1, and if so what the behavior is of an
emergency call. For example, you can use the location policy to define what number constitutes an emergency call
(911 in the United States), whether corporate security should be automatically notified, and how the call should be
routed. This cmdlet creates a new location policy at the site or per-user scope. (A policy at the global scope already
exists.)
IMPORTANT: The location policy behaves differently from other policies in Skype for Business Server in terms of
order of scope. For all other policies, if a policy is defined at the per-user scope, the policy is applied to any user
granted that policy. If the user has not been granted a per-user policy, the site policy is applied. If there is no site
policy, the global policy is applied. Location policies are applied in the same way, with one exception: a per-user
location policy can also be assigned to a network site. (A network site consists of a group of subnets.) If the user is
making the emergency call from a location that is mapped to a network site within the organization, the user-level
policy assigned to that network site is used. This functionality will override a per-user policy that has been granted
to that user. If the user calls from a location that is unknown or unmapped in the organization, the standard policy
scoping will be applied.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsLocationPolicy -Identity site:Redmond -EnhancedEmergencyServicesEnabled $True

Example 1 uses the New -CsLocationPolicy cmdlet to create a new location policy for the Redmond site that enables
all users on that site for E9-1-1. To create this policy, the New -CsLocationPolicy cmdlet is called along with two
parameters: one to set the Identity, which in this case is the string site: followed by the name of the site to which this
policy will apply; the other to set the value of the EnhancedEmergencyServicesEnabled property to True.
-------------------------- EXAMPLE 2 --------------------------

New-CsLocationPolicy -Identity Reno -Description "All users located at the Reno site" -
EnhancedEmergencyServicesEnabled $True -PstnUsage Emergency -EmergencyDialString 911

This example creates a per-user location policy. (Per-user policies must be specifically granted to individual users or
groups.) This policy has an Identity of Reno. We've added a more detailed description of the policy by using the
Description parameter. The next parameter we supply is EnhancedEmergencyServicesEnabled, which is set to True
to turn on E9-1-1 functionality for all users to which this policy is granted. The next parameter is PstnUsage, in this
case with a value of Emergency. This value must match a value in the list of PSTN usages. (This list can be retrieved
by calling the Get-CsPstnUsage cmdlet.) The usage should be associated with a voice route that will be used for
emergency calls. (You can retrieve voice routes by calling the Get-CsVoiceRoute cmdlet.) The final parameter used
in this example is EmergencyDialString, which specifies the number that is dialed to make an emergency call.

Parameters
-ConferenceMode
If a value is specified for the ConferenceUri parameter, the ConferenceMode parameter determines whether a third
party can participate in the call or can only listen in. Available values are:
Oneway: Third party can only listen to the conversation between the caller and the Public Safety Answering Point
(PSAP ) operator.

Twoway: Third party can listen in and participate in the call between the caller and the PSAP operator.

Type: ConferenceModeEnum
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConferenceUri
The SIP Uniform Resource Identifier (URI), in this case the telephone number, of a third party that will be
conferenced in to any emergency calls that are made. For example, the company security office could receive a call
when an emergency call is made and listen in or participate in that call (depending on the value of the
ConferenceMode property).
The string must be from 1 to 256 characters in length and must begin with the prefix sip:.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A detailed description of this location. For example, "Reno corporate users".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EmergencyDialMask
A number that is dialed that will be translated into the value of the EmergencyDialString property. For example, if
EmergencyDialMask has a value of "212" and EmergencyDialString has a value of "911", if a user dials 212 the call
will be made to 911. This allows for alternate emergency numbers to be dialed and still have the call reach
emergency services (for example, if someone from a country/region with a different emergency number attempts
to dial that country/region's number rather than the number for the country/region they're currently in). You can
define multiple emergency dial masks by separating the values with semicolons. For example,
-EmergencyDialMask "212;414".

IMPORTANT. Ensure that the specified dial mask value is not the same as a number in a call park orbit range. Call
park routing will take precedence over emergency dial string conversion. To see the existing call park orbit ranges,
call the Get-CsCallParkOrbit cmdlet.
Maximum length of the string is 100 characters. Each character must be a digit 0 through 9.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EmergencyDialString
The number that is dialed to reach emergency services. In the United States this value is 911.
The string must be made of the digits 0 through 9 and can be from 1 to 10 digits in length.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EmergencyNumbers
{{Fill EmergencyNumbers Description}}
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnhancedEmergencyServiceDisclaimer
Text value containing information that will be displayed to users who are connected from locations that cannot be
resolved by the location mapping (wiremap) who choose not to enter their location manually. To remove a service
disclaimer from a location policy set this property to a null value:
-EnhancedEmergencyServiceDisclaimer $Null

Location policies, and the EnhancedEmergencyServiceDisclaimer property, should be used in Skype for Business
Server to set disclaimers for the E9-1-1 service. By using location policies to set these disclaimers, you can create
different disclaimers for different locales or different sets of users.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnhancedEmergencyServicesEnabled
Specifies whether the users associated with this policy are enabled for E9-1-1. Set the value to True to enable E9-1-
1 so Skype for Business Server clients will retrieve location information on registration and include that
information when an emergency call is made.
Default Value: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the location policy. This cmdlet can be used to create policies at the site or per-user scope. (A
global policy exists by default and cannot be removed.) For a policy created at the site scope, this value must be in
the form site:<site name>, where site name is the name of a site defined in the Skype for Business Server
deployment. For example, site:Redmond. A policy created at the per-user scope can be assigned any string value,
such as Reno.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationRefreshInterval
Specifies the amount of time (in hours) between client requests for Location Information service location update.
The LocationRefreshInterval can be set to any value between 1 and 12; the default value is 4.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationRequired
If the client was unable to retrieve a location from the location configuration database, the user can be prompted to
manually enter a location. This parameter accepts the following values:
no: The user will not be prompted for a location. When a call is made with no location information, the Emergency
Service Provider will answer the call and ask for a location.
yes: The user will be prompted to input location information when the client registers at a new location. The user
can dismiss the prompt without entering any information. If information is entered, a call made to 911 will first be
answered by the Emergency Service Provider to verify the location before being routed to the PSAP operator (the
911 operator).
disclaimer: This option is the same as yes except that if the user dismisses the prompt disclaimer text will be
displayed that can alert the user to the consequences of declining to enter location information. (The disclaimer text
must be set by calling the Set-CsEnhancedEmergencyServiceDisclaimer cmdlet.)
This value is ignored if EnhancedEmergencyServicesEnabled is set to False (the default). Users will not be
prompted for location information.
Type: LocationRequiredEnum
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NotificationUri
One or more SIP URIs to be notified when an emergency call is made. For example, the company security office
could be notified through an instant message whenever an emergency call is made. If the caller's location is
available that location will be included in the notification.
Multiple SIP URIs can be included as a comma-separated list. For example,
-NotificationUri sip:security@litwareinc.com,sip:kmyer@litwareinc.com. Note that distribution lists can be
configured as a notification URI.
The string must be from 1 to 256 characters in length and must begin with the prefix sip:.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PstnUsage
The public switched telephone network (PSTN ) usage that will be used to determine which voice route will be used
to route emergency calls from clients using this profile. The route associated with this usage should point to a SIP
trunk dedicated to emergency calls.
The usage must already exist in the global list of PSTN usages. Call the Get-CsPstnUsage cmdlet to retrieve a list of
usages. To create a new usage, call the Set-CsPstnUsage cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new location
policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseLocationForE911Only
Location information can be used by the Skype for Business Server client for various reasons (such as notifying
teammates of current location). Set this value to True to ensure location information is available only for use with
an emergency call.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Location.LocationPolicy.

Related Links
Remove-CsLocationPolicy
Set-CsLocationPolicy
Get-CsLocationPolicy
Grant-CsLocationPolicy
Test-CsLocationPolicy
Get-CsPstnUsage
Get-CsVoiceRoute
minutes to read • Edit Online

New-CsMcxConfiguration
In ths Article

Creates a new collection of Skype for Business Server Mobility Service configuration settings at the site or the
service scope. The Mobility Service enables users of mobile phones such as iPhones and Windows Phones to do
such things as exchange instant messages and presence information; store and retrieve voice mail internally instead
of with their wireless provider; and take advantage of Skype for Business Server 2015 capabilities such as Call via
Work and dial-out conferencing. This cmdlet was introduced in the cumulative update for Lync Server 2010:
November 2011.

Syntax
New-CsMcxConfiguration [-Identity] <XdsIdentity> [-Confirm] [-ExposedWebURL <ExposedWebURL>] [-Force]
[-InMemory] [-PushNotificationProxyUri <String>] [-SessionExpirationInterval <UInt32>]
[-SessionShortExpirationInterval <UInt32>] [-WhatIf] [<CommonParameters>]

Description
The Mobility Service extends many of the capabilities Skype for Business to mobile devices such as Apple iPhones,
Windows Phone, Android phones, and Nokia phones. Among other things, users can use these phones to exchange
instant message and presence information, and to receive notifications of new voice mails. Thanks to the push
notification service (Apple Push Notification Service and Microsoft Push Notification Service), users with iPhones
or Windows Phones can receive these notifications even if Skype for Business is running in the background. The
Mobility Service also provides the opportunity for organizations to enable Call via Work. With Call via Work, users
can make a call from their mobile phone and make it appear as though the call originated from their work phone;
for example, Caller ID systems will display the user's work number instead of his or her mobile phone number.
The Mobility Service itself is managed by using Mobility Service configuration settings that can be applied to the
global scope, the site scope, or the service scope (for the Web server service only). These settings control such
things as the maximum length of time for a Mobility Service session; whether or not the Skype for Business Server
Autodiscovery Service (which directs Mobility Service users to the appropriate Registrar pool) is available to users
who log on outside the organization's firewall); and the location of the push notification service provider.
When you install Skype for Business Server, a single collection of Mobility Service configuration settings is created
at the global scope; however, administrators can use the New -CsMcxConfiguration cmdlet to create custom
configuration settings at either the site or the service scope.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsMcxConfiguration -Identity "site:Redmond" -ExposedWebURL Internal -SessionShortExpirationInterval 7200

In Example 1, a new collection of Mobility Service configuration settings is created for (and automatically assigned
to) the Redmond site. In this example, two changes are made to the default Mobility Service configuration settings:
the ExposedWebURL property is to Internal, and the SessionShortExpirationInterval property is set to 7200
seconds.
-------------------------- EXAMPLE 2 --------------------------

Get-CsService -WebServer | ForEach-Object {New-CsMcxConfiguration -Identity $_.Identity -ExposedWebURL Internal


-SessionShortExpirationInterval 7200}

In Example 2, an identical set of Mobility Service configuration settings is created for each Web server currently in
use in an organization. To perform this task, the Get-CsService cmdlet is used, along with the WebServer
parameter, to return a collection of all the existing Web servers; this collection is then piped to the For-Each object
cmdlet. In turn, the ForEach-Object cmdlet takes each server in the collection and runs the New -
CsMcxConfiguration cmdlet in order to create new Mobility Service configuration settings on that server.
-------------------------- EXAMPLE 3 --------------------------

$x = New-CsMcxConfiguration -Identity "site:Redmond" -InMemory

$x.ExposedWebURL = "Internal"

$x.SessionShortExpirationInterval = 7200

Set-CsMcxConfiguration -Instance $x

Example 3 demonstrates how the InMemory parameter enables you to create a new collection of Mobility Service
configuration settings in memory, modify the property values of that collection, and then save the collection Skype
for Business Server. To do this, the first command in the collection creates a new collection of Mobility Service
configuration settings that have the Identity site:Redmond. However, instead of being automatically created and
assigned to the Redmond site, these settings are created in memory only (because of the InMemory parameter)
and are then stored in a variable named $x.
Commands 2 and 3 in the example show how you can modify the property values of this virtual Mobility Service
configuration collection. After you have finished modifying the property values, you can then use the Set-
CsMcxConfiguration cmdlet, and the Instance parameter, to turn the virtual settings into an actual collection of
Mobility Service configuration settings assigned to the Redmond site. Note that if you do not call the Set-
CsMcxConfiguration cmdlet, no settings will ever be assigned to the Redmond site and your virtual collection will
disappear as soon as you exit your Windows PowerShell session or delete the variable $x.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExposedWebURL
Indicates whether the URL used by the Autodiscovery Service is accessible to users both inside and outside the
organization firewall (External) or only accessible to users inside the firewall (Internal).
Allowed values are: Internal or External. The default value is External.

Type: ExposedWebURL
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the collection of Mobility Service configuration settings to be created. To create settings at the
site scope, use the prefix "site:" followed by the site name. For example:
-Identity "site:Redmond"

To create settings configured at the service scope, use syntax like this:
-Identity service:WebServer:atl-cs-001.litwareinc.com

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of a command called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PushNotificationProxyUri
URI of a service provider that can forward push notification requests to the Apple Push Notification Service and
the Microsoft Push Notification Service. The PushNotificationProxyUri must be in the form of a SIP address; for
example:
-PushNotificationProxyUri "sip:push@push.lync.com"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SessionExpirationInterval
Length of time, in seconds, of a mobile session for iPhone or Windows Phone users. If Skype for Business is
running in the background on these phones, users will receive push notifications as long as the session expiration
interval has not expired.
The mobile device must send a notice to the server indicating that the device is still active before the session
timeout is reached. If it does not, the device will be listed as inactive and the user will have to log back on to the
system.
This property can be set to any integer value between 120 and 4294967295, inclusive. The default value is 259200
seconds (3 days). Note that the value of the SessionExpirationInterval property must be greater than the value of
the SessionShortExpirationInterval property.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SessionShortExpirationInterval
Length of time, in seconds, of a mobile session for Android or Nokia phone users.
The mobile device must send a notice to the server indicating that the device is still active before the session
timeout is reached. If it does not, the device will be listed as inactive and the user will have to log back on to the
system.
This property can be set to any integer value between 120 and 4294967295, inclusive. The default value is 3600
seconds (1 hour). Note that the value of the SessionExpirationInterval property must be greater than the value of
the SessionShortExpirationInterval property.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsMcxConfiguration cmdlet does not accept pipelined input.

Outputs
Creates new instances of the
Microsoft.Rtc.Management.WriteableConfig.Settings.McxConfiguration.McxConfiguration object.
minutes to read • Edit Online

New-CsMediaConfiguration
In ths Article

Creates a new collection of media settings. These settings can be used to specify such things as the supported level
of encryption and the maximum allowed video resolution. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsMediaConfiguration [-Identity] <XdsIdentity> [-EnableQoS <Boolean>] [-EnableSiren <Boolean>]
[-EncryptionLevel <EncryptionLevel>] [-MaxVideoRateAllowed <MaxVideoRateAllowed>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [-EnableAdaptiveBandWidthEstimation <Boolean>] [-EnableG722StereoCodec <Boolean>]
[-EnableH264Codec <Boolean>] [-EnableInCallQoS <Boolean>] [-EnableRtpRtcpMultiplexing <Boolean>]
[-InCallQoSIntervalSeconds <UInt16>] [-EnableVideoBasedSharing <Boolean>] [<CommonParameters>]

Description
This cmdlet creates a new collection of settings that define the behavior of specific media actions.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsMediaConfiguration -Identity site:Redmond1 -EncryptionLevel RequireEncryption

Example 1 uses the New -CsMediaConfiguration cmdlet to create a new media configuration with the Identity
site:Redmond1. This new configuration requires both parties involved in a multimedia conversation to use
encryption. That requirement is put in place by adding the EncryptionLevel parameter and setting the parameter
value to RequireEncryption.
-------------------------- EXAMPLE 2 --------------------------

New-CsMediaConfiguration -Identity MediationServer:pool0.litwareinc.com -EnableSiren $True

This example uses the New -CsMediaConfiguration cmdlet to create a new media configuration with the Identity
MediationServer:pool0.litwareinc.com. This new configuration will have an EnableSiren value of True, which means
that Siren is enabled for calls involving this Mediation Server.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAdaptiveBandWidthEstimation
When set to True (the default value) Microsoft Lync Server will select the bandwidth rate at which to play a video
stream. This selection will be based on such factors as the network congestion and the client's quality of the client's
current network connection.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableG722StereoCodec
When set to True (the default value) allows the use of the G.722 wideband speech codec. G.722 is a standard voice
codec commonly used with Voice over IP applications; with a sampling rate of 16 KHz G.722 provides higher voice
quality and clarity than many other commonly-used speech codecs.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableH264Codec
When set to True (the default value) allows the use of the H.264/MPEG -4 AVC video codec. H.264 is a standard
codec commonly used for recording, compressing, and distributing high-definition video.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableInCallQoS
When set to True, enables call Quality of Service (QoS ) settings.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableQoS
QoS monitors the quality of voice signals over a network. The EnableIncallQoS attribute enables or disables the
ability of Skype for Business clients to send the raw data that's required to generate IncallQuality messages.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableRtpRtcpMultiplexing
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSiren
By default, the Mediation Server does not negotiate Siren as a possible codec for calls between itself and clients. If
this setting is True, Siren will be included as a possible codec for use between the Mediation Server and other
clients.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableVideoBasedSharing
Use this parameter to enable video based sharing.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EncryptionLevel
The level of encryption between unified communications devices.
Valid values:
SupportEncryption - secure real-time transport protocol (SRTP ) will be used if it can be negotiated.
RequireEncryption - SRTP must be negotiated.
DoNotSupportEncryption - SRTP must not be used.
Default: RequireEncryption

Type: EncryptionLevel
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier specifying the scope at which this configuration is applied (site or service). A configuration at the
site scope would be entered as site:<site name>, such as site:Redmond. A service would be entered as <server
role>:<fqdn>, such as MediationServer:pool0.litwareinc.com. A media configuration at the global scope will always
exist and cannot be removed, so a new global configuration cannot be created.
Media configurations created at the service scope can be created for only the A/V Conferencing service, Mediation
Server, and Application Server.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InCallQoSIntervalSeconds
Specifies the interval between call QoS actions.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxVideoRateAllowed
The maximum rate at which video signals will be transferred at the client endpoints.
Valid values: Hd720p15M, VGA600K, CIF250K
Hd720p15M - High definition, with a resolution of 1280 x 720 and aspect ratio 16:9.
VGA600K - VGA, with a resolution of 640 x 480, 25 fps with the aspect ratio 4:3.
CIF250K - Common Intermediate Format (CIF ) video format, 15 fps with a resolution of 352 x 288.
Note that these values are not case sensitive; values will be converted to appropriate casing when the configuration
is created.
Default: VGA600K

Type: MaxVideoRateAllowed
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.WritableConfig.Settings.Media.MediaSettings.

Related Links
Remove-CsMediaConfiguration
Set-CsMediaConfiguration
Get-CsMediaConfiguration
minutes to read • Edit Online

New-CsMeetingConfiguration
In ths Article

Creates a new collection of meeting configuration settings at the site or service scope. Meeting configuration
settings help dictate the type of meetings (also called "conferences") that users can create, in addition to controlling
how (or even if) anonymous users and dial-in conferencing users can join these meetings. Note that these settings
only affect scheduled meetings; they do not affect ad-hoc meetings created by clicking the Meet Now option in
Skype for Business. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsMeetingConfiguration [-Identity] <XdsIdentity> [-AdmitAnonymousUsersByDefault <Boolean>]
[-AssignedConferenceTypeByDefault <Boolean>] [-DesignateAsPresenter <DesignateAsPresenter>]
[-EnableAssignedConferenceType <Boolean>] [-PstnCallersBypassLobby <Boolean>] [-Force] [-InMemory]
[-Tenant <Guid>] [-WhatIf] [-Confirm] [-CustomFooterText <String>] [-HelpURL <String>] [-LegalURL <String>]
[-LogoURL <String>] [-RequireRoomSystemsAuthorization <Boolean>] [<CommonParameters>]

Description
Meetings (also called "conferences") are an integral part of Skype for Business Server. The
CsMeetingConfiguration cmdlets enable administrators to control the type of meetings that users can create and to
determine how meetings deal with anonymous users and dial-in conferencing users. For example, you can
configure meetings so that anyone dialing in over the public switched telephone network (PSTN ) is automatically
admitted to the meeting. Alternatively, you can configure meetings so that dial-in users are not automatically
admitted the meeting, but are instead routed to the meeting lobby. These dial-in users remain on hold in the lobby
until a presenter admits them to the meeting.
As noted previously, these settings only affect scheduled meetings; they do not affect ad-hoc meetings created by
clicking Meet Now in Microsoft Lync. When you create a meeting by clicking Meet Now, participant access is
automatically open to all everyone, and anonymous users can join the meeting without having to wait in the lobby.
This will occur regardless of how you have configured your meeting settings using the CsMeetingConfiguration
cmdlets.
The New -CsMeetingConfiguration cmdlet enables you to create new meeting configuration collections at either the
site or the service scope (albeit only for the User Services). Meeting settings cannot be created at the global scope
because there is already a global collection of meeting settings.
Note that each site or service can only have, at most, one collection of meeting configuration settings. If you try to
create new settings for the Redmond site, and the Redmond site already has a collection of meeting configuration
settings, then your command will fail.

Examples
-------------------------- EXAMPLE 1 --------------------------
New-CsMeetingConfiguration -Identity site:Redmond -EnableAssignedConferenceType $False -
AssignedConferenceTypeByDefault $False -AdmitAnonymousUsersByDefault $False

Example 1 creates a new collection of meeting configuration settings for the Redmond site ( -Identity site:Redmond
). In addition to specifying the Identity, three optional parameters are included in this command:
EnableAssignedConferenceType, AssignedConferenceTypeByDefault, and AdmitAnonymousUsersByDefault. In all
three cases, these parameters are set to False. That means that public meeting types will be disabled; the default
meeting type will not be set to public meeting; and anonymous users will not be admitted to meetings by default.
Note that this command will fail if a collection of meeting configuration settings with the Identity site:Redmond
already exists. That's because only one collection of meeting configuration settings can be applied to a given site.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsMeetingConfiguration -Identity site:Redmond -InMemory

$x.EnableAssignedConferenceType = $False

$x.AssignedConferenceTypeByDefault = $False

$x.AdmitAnonymousUsersByDefault = $False

Set-CsMeetingConfiguration -Instance $x

Example 2 shows an alternate way to create a new collection of meeting configuration settings for the Redmond
site; in this case, the settings are initially created in memory only, and are only later applied to the site. To do this,
the first command in the example uses the New -CsMeetingConfiguration cmdlet to create new meeting settings
for the Redmond site. The InMemory parameter is added to the end of the command to ensure that these new
settings are created in memory only, and are not immediately applied to the Redmond site. (Because these settings
exist only in memory, they must be stored in a variable. In this example, they are stored in a variable named $x.)
After these virtual meeting settings have been created, commands 2, 3, and 4 are used to modify properties of
those settings (EnableAssignedConferenceType, AssignedConferenceTypeByDefault, and
AdmitAnonymousUsersByDefault). In the final command, the Set-CsMeetingConfiguration cmdlet and the
Instance parameter are used to actually apply the virtual settings to the Redmond site. Note that this final step is
crucial: if you do not call the Set-CsMeetingConfiguration cmdlet, the new meeting configuration settings will never
be applied to the Redmond site. Instead, your virtual settings will disappear as soon as you end your Windows
PowerShell session or delete the variable $x.

Parameters
-AdmitAnonymousUsersByDefault
Determines whether meetings will, by default, allow attendance by anonymous users (that is, unauthenticated
users). Set this value to True if you would like new meetings to allow for attendance by anonymous users by
default. Set this value to False if you would prefer that, by default, new meetings do not allow for attendance by
anonymous users. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AssignedConferenceTypeByDefault
Determines whether new meetings will be configured, by default, as public meetings. Set this value to True to use
public meetings by default; set this value to False to use private meetings by default. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomFooterText
Text to be used on custom meeting invitations.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DesignateAsPresenter
Indicates which users (besides the meeting organizer) are automatically designated as presenters when they join a
meeting. Valid choices are: None; Company; and Everyone. By default, DesignateAsPresenter is set to Company,
meaning everyone in your organization has presenter rights the moment they join a meeting.

Type: DesignateAsPresenter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAssignedConferenceType
Indicates whether users are allowed to schedule public meetings. With a public meeting, the conference ID and the
meeting link remain consistent each time the meeting is held. With a private meeting, the conference ID and
meeting link change from meeting to meeting.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpURL
URL to a website where users can obtain assistance on joining the meeting.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new collection of meeting configuration settings. Meeting configuration settings can only
be created at the site or service scope. To create new settings at the site scope, use syntax similar to this:
-Identity "site:Redmond". To create new settings at the service scope, use syntax like this:
-Identity "service:UserServer:atl-cs-001.litwareinc.com".

Note that the call to the New -CsMeetingConfiguration cmdlet will fail if the specified site or service already has a
collection of meeting configuration settings.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LegalURL
URL to a website containing legal information and meeting disclaimers.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogoURL
URL for the image to be used on custom meeting invitations.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PstnCallersBypassLobby
Indicates whether users dialing in over a public switched telephone network (PSTN ) phone line should
automatically be admitted to a meeting. If set to True PSTN callers will automatically be admitted to the meeting. If
set to False PSTN callers will initially be routed to the conference lobby. At that point, they will be put on hold until
a conference presenter grants them access to the meeting. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequireRoomSystemsAuthorization
When set to True ($True) all users must be authenticated before they can join a meeting using the Skype for
Business Room System. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new meeting
configuration settings are being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsMeetingConfiguration cmdlet does not accept pipelined data.

Outputs
The New -CsMeetingConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.MeetingConfiguration object.

Related Links
Get-CsMeetingConfiguration
Remove-CsMeetingConfiguration
Set-CsMeetingConfiguration
minutes to read • Edit Online

New-CsMobilityPolicy
In ths Article

Creates a new mobility policy at the site or the per-user scope. Mobility policies determine whether or not a user
can use Skype for Business Mobile. These policies also manage a user's ability to employ Call via Work, a feature
that enables users to make and receive phone calls on their mobile phone by using their work phone number
instead of their mobile phone number. Mobility policies can also be used to require Wi-Fi connections when
making or receiving calls. This cmdlet was introduced in the cumulative update for Lync Server 2010: November
2011. The following parameters are not applicable to Skype for Business Online: AllowAutomaticPstnFallback,
AllowCustomerExperienceImprovementProgram, AllowExchangeConnectivity, AllowSaveCallLogs, AsJob,
Description, EncryptAppData, Force, Identity, InMemory, PipelineVariable, RequireIntune, Tenant, and VoiceSettings

Syntax
New-CsMobilityPolicy [-Tenant <Guid>] [-Description <String>] [-EnableOutsideVoice <Boolean>]
[-EnableMobility <Boolean>] [-EnableIPAudioVideo <Boolean>] [-RequireWIFIForIPVideo <Boolean>]
[-AllowCustomerExperienceImprovementProgram <Boolean>] [-RequireWiFiForSharing <Boolean>]
[-AllowSaveCallLogs <Boolean>] [-AllowExchangeConnectivity <Boolean>] [-AllowSaveIMHistory <Boolean>]
[-AllowSaveCredentials <Boolean>] [-EnablePushNotifications <Boolean>] [-EncryptAppData <Boolean>]
[-AllowDeviceContactsSync <Boolean>] [-RequireIntune <Boolean>] [-AllowAutomaticPstnFallback <Boolean>]
[-VoiceSettings <String>] [-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Skype for Business Mobile is a client application that enables users to run Skype for Business on their mobile
phones. Call via Work provides a way for users to make calls on their mobile phone and yet have it appear as
though the call originated from their work phone number instead of their mobile phone number. Users who have
been enabled for Call via Work can achieve this either by dialing directly from their mobile phone or by using the
dial-out conferencing option. With dial-out conferencing, a user effectively asks the Skype for Business Server
Mobility Service server to make a call for them. The server will set up the call, and then call the user back on their
mobile phone. After the user has answered, the server will then dial the party being called. Both of these
capabilities can be managed by using mobility policies.
With Skype for Business Server, mobile devices can make or receive phone calls by using either the standard
cellular phone network. or by using Wi-Fi connections. Mobility policies can be used to require Wi-Fi connections
and to prevent calls over the cellular network.
When you install Skype for Business Server, you will have a single, global mobility policy that applies to all your
users. However, administrators can use the New -CsMobilityPolicy cmdlet to create custom policies at either the site
or the per-user scope.
Note that two different properties must be configured in order to enable Call via Work. The first property,
EnableOutsideVoice, determines whether or not Call via Work is enabled; the second, EnableMobility, determines
whether or not users are allowed to use Skype for Business Mobile. Both of these properties must be set to true
before a user can take advantage of Call via Work. If EnableMobility is set to True and EnableOutsideVoice is set to
False, the user can run Skype for Business Server Mobile but will not be able to use Call via Work. If EnableMobility
is set to False and EnableOutsideVoice is set to True the user will not be able to run Skype for Business Mobile. In
turn, that means that the user will not be able to use Call via Work, regardless of the value of the
EnableOutsideVoice property.
To use Call via Work, users must be managed by a voice policy that allows simultaneous ringing.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsMobilityPolicy -Identity site:Redmond -EnableOutsideVoice $False

The command shown in Example 1 creates a new mobility policy for the Redmond site, and disables the use of Call
via Work for any users affected by the policy. This is done by setting the EnableOutsideVoice parameter to False.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsMobilityPolicy -Identity site:Redmond -InMemory

$x.EnableOutsideVoice = $False

Set-CsMobilityPolicy -Instance $x

Example 2 demonstrates how you can create a new mobility policy in memory, modify a property value for that
policy, and then use the Set-CsMobilityPolicy cmdlet to turn the virtual policy into an actual Lync Server mobility
policy. To do this, the command first uses the New -CsMobilityPolicy cmdlet and the InMemory parameter to create
a new policy for the Redmond site. Because the InMemory parameter causes this policy to exists in memory only,
the resulting object must be stored in variable ($x).
In command 2, the EnableOutsideVoice property for the virtual policy is set to False. After that, command 3 uses
the Set-CsMobilityPolicy cmdlet and the Instance parameter to write the changes to Lync Server and create a
mobility policy for the Redmond site. If you do not call the Set-CsMobilityPolicy cmdlet, the policy will not be
created, and, in fact, will disappear as soon as you end your Windows PowerShell command-line interface session
or delete the variable $x.

Parameters
-AllowAutomaticPstnFallback
{{Fill AllowAutomaticPstnFallback Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowCustomerExperienceImprovementProgram
When set to True (the default value) mobile users will be allowed to participate in the Microsoft Customer
Experience Improvement Program.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowDeviceContactsSync
{{Fill AllowDeviceContactsSync Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExchangeConnectivity
When set to True (the default value) users will be allowed to connect to Exchange by using their mobile device.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowSaveCallLogs
When set to True (the default value) users will be allowed to save a call log of calls made from or received by their
mobile device.
Note that this setting does not apply to Android devices.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowSaveCredentials
When set to True (the default value) users will be allowed to save credentials information (such as passwords) on
their mobile device. This information can then be applied to auto-logon scenarios.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowSaveIMHistory
When set to True (the default value) users will be allowed to save transcripts of IM and conferencing sessions on
their mobile devices.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text to accompany the policy. For example, the Description might
include information about the users that the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableIPAudioVideo
When set to False, prohibits the user from making voice over IP (VoIP ) calls using the mobile device. The default
value is True, meaning that VoIP calls are allowed.
This parameter was introduced in Lync Server 2013.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-EnableMobility
When set to True, users are allowed to use Skype for Business Mobile.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOutsideVoice
When set to True, enables users to take advantage of Call via Work. When set to False, users cannot use Call via
Work.
The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePushNotifications
{{Fill EnablePushNotifications Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EncryptAppData
{{Fill EncryptAppData Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique Identity to be assigned to the policy. New mobility policies can be created at the site or per-user scope. To
create a new site policy, use the prefix "site:" and the name of the site as your Identity. For example, use this syntax
to create a new policy for the Redmond site:
-Identity site:Redmond

To create a new per-user policy, use an Identity similar to this:


-Identity SalesDepartmentPolicy

Note that you cannot create a new global policy; if you want to make changes to the global policy, use the Set-
CsMobilityPolicy cmdlet instead. Likewise, you cannot create a new site or per-user policy if a policy with that
Identity already exists. If you need to make changes to an existing policy, use the Set-CsMobilityPolicy cmdlet.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of a command called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequireIntune
{{Fill RequireIntune Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequireWIFIForIPAudio
When set to True, the user can use IP audio in calls made when his or her mobile device is connected to a WiFi
network. That means that the user will only be allowed to make audio calls using Wi-Fi, and will not be able to use
the standard cellular phone network. The default value is False.
This parameter was introduced in Lync Server 2013.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequireWIFIForIPVideo
When set to True, the user can use IP video only in calls made when mobile device is connected to a Wi-Fi network.
If mobile device goes outside of Wi-Fi range, then video calls will be received as audio calls only. If this property is
set to False (the default value) then the user can make or receive IP video calls in using either a Wi-Fi or a cellular
data connection.
This parameter was introduced in Lync Server 2013.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequireWiFiForSharing
When set to True, mobile users must use a WiFi connection in order to participate in an application sharing session.
When set to False (the default value) mobile users can participate in application sharing by using either a WiFi
connection or a cellular (3G/4G ) connection.
If this value is set to True, then users then users will not be able to change their sharing configuration settings. If
this value is set to False users can use the Options page to modify their sharing configuration settings.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new mobility
policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-VoiceSettings
{{Fill VoiceSettings Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsMobilityPolicy cmdlet does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Management.WriteableConfig.Policy.Mobility.Mobility object.

Outputs
System.Object
minutes to read • Edit Online

New-CsNetworkBandwidthPolicyProfile
In ths Article

Creates a new network bandwidth policy profile. This cmdlet can also be used to set the bandwidth policies within
the profile. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsNetworkBandwidthPolicyProfile [-Identity] <XdsGlobalRelativeIdentity> [-AudioBWLimit <String>]
[-AudioBWSessionLimit <String>] [-BWPolicy <PSListModifier>] [-Description <String>] [-VideoBWLimit <String>]
[-VideoBWSessionLimit <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
As part of call admission control (CAC ), a bandwidth policy is used to define bandwidth limitations for certain
modalities. (In Skype for Business Server, only audio and video modalities can be assigned bandwidth limitations.)
This cmdlet creates a container profile for these policies. You define the individual policies within the container by
specifying the audio and video bandwidth limitations when you call this cmdlet.
Bandwidth policy profiles are applied to network sites by calling the New -CsNetworkSite cmdlet or the Set-
CsNetworkSite cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsNetworkBandwidthPolicyProfile -Identity LowBWLimits -AudioBWLimit 2000 -AudioBWSessionLimit 200 -


VideoBWLimit 1400 -VideoBWSessionLimit 500

Example 1 creates a new bandwidth policy profile named LowBWLimits. This new profile will have two policies
assigned, an audio policy and a video policy (the only two policies possible in Skype for Business Server). The audio
policy is added to the profile by using the AudioBWLimit parameter to assign a limit of (in this case) 2000 kbps to
overall audio connections, and the AudioBWSessionLimit parameter to assign 200 kbps as the limit for individual
audio sessions. The same is done to create video session limits, but using the VideoBWLimit and
VideoBWSessionLimit parameters.

Parameters
-AudioBWLimit
The maximum amount of bandwidth to allocate for all audio connections. If a single audio session will cause the
audio bandwidth limit to be exceeded, that session will not be allowed to start.
Expressed in kbps. For example, a value of 1000 would signify 1000 kbps.
If you supply a value to this parameter, you cannot supply a value to the BWPolicy parameter.
Default: If you supply a value to the AudioBWSessionLimit parameter but not to AudioBWLimit, AudioBWLimit
will default to 0.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioBWSessionLimit
The maximum amount of bandwidth to allocate per audio session. Expressed in kbps. Value must be 40 or higher.
If you supply a value to this parameter, you cannot supply a value to the BWPolicy parameter.
Default: If you supply a value to the AudioBWLimit parameter but not to AudioBWSessionLimit,
AudioBWSessionLimit will default to 175.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BWPolicy
A list of objects containing bandwidth policy profiles. Each object in the list consists of a bandwidth modality (audio
or video), a bandwidth limitation, and a bandwidth session limitation.
If you supply a value to this parameter, you cannot supply a value to the AudioBWLimit, AudioBWSessionLimit,
VideoBWLimit, or VideoBWSessionLimit parameter.
Objects in the list can be created by calling the New -CsNetworkBWPolicy cmdlet.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of the bandwidth policy profile. For example, you can use this parameter to clarify the expected use of
the profile.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string value that uniquely identifies the policy. All bandwidth policy profiles are created at the global scope.
Therefore the scope is implied and only a unique name needs to be specified when creating a new bandwidth policy
profile. Note that this value also populates the BWPolicyProfileID property of the profile.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoBWLimit
The maximum amount of bandwidth to allocate for all video connections. If a single video session will cause the
video bandwidth limit to be exceeded, that session will not be allowed to start.
Expressed in kbps. For example, a value of 1000 would signify 1000 kbps.
If you supply a value to this parameter, you cannot supply a value to the BWPolicy parameter.
Default: If you supply a value to the VideoBWSessionLimit parameter but not to VideoBWLimit, VideoBWLimit will
default to 0.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoBWSessionLimit
The maximum amount of bandwidth to allocate per video session. Expressed in kbps. Value must be 100 or higher.
If you supply a value to this parameter, you cannot supply a value to the BWPolicy parameter.
Default: If you supply a value to the VideoBWLimit parameter but not to VideoBWSessionLimit,
VideoBWSessionLimit will default to 700.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType.

Related Links
Remove-CsNetworkBandwidthPolicyProfile
Set-CsNetworkBandwidthPolicyProfile
Get-CsNetworkBandwidthPolicyProfile
New -CsNetworkBWPolicy
minutes to read • Edit Online

New-CsNetworkBWAlternatePath
In ths Article

Creates new settings that define whether media can be routed to alternate paths through the Internet for
bandwidth-constrained connections. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsNetworkBWAlternatePath -AlternatePath <Boolean> -BWPolicyModality <BWPolicyModality> [<CommonParameters>]

Description
Within a call admission control (CAC ) configuration in Skype for Business Server, there are two possible modalities:
audio and video. Bandwidth limitations can be set on each of these modalities. When bandwidth limitations will
prevent a call from completing, it may be possible for the call to take an alternate path through the Internet that will
enable the call to be established. This cmdlet allows you to create the settings that define whether a call can be
routed to an alternate path through the Internet based on modality. The settings apply per region within the CAC
configuration.
This cmdlet does not immediately save the newly created settings. Instead, it creates the settings in memory. To
apply these settings to a region within the network, you need to assign the output of the cmdlet to a variable, and
then use that variable as a value to the BWAlternatePaths parameter of the New -CsNetworkRegion cmdlet or the
Set-CsNetworkRegion cmdlet. Note that you can apply these settings directly by using the AudioAlternatePath and
VideoAlternatePath parameters of the New -CsNetworkRegion cmdlet and the Set-CsNetworkRegion cmdlet,
without having to call the New -CsNetworkBWAlternatePath cmdlet to create a new object.

Examples
-------------------------- EXAMPLE 1 --------------------------

$a = New-CsNetworkBWAlternatePath -BWPolicyModality "audio" -AlternatePath $true

New-CsNetworkRegion -Identity NorthAmerica -CentralSite Redmond-NA-MLS -BWAlternatePaths $a

This example creates a new network bandwidth alternate path and assigns those settings to a newly created region.
The first line in the example calls the New -CsNetworkBWAlternatePath cmdlet to create a new alternate path. An
alternate path has only two properties: BWPolicyModality, which must be set to either audio or video (in this
example, audio is used); and AlternatePath, which must be either True or False (in this example, True is used). We
assign the output from this cmdlet, which is a reference to the alternate path object just created, to the variable $a.
In line 2 of this example we use this newly created alternate path in the creation of a new network region. To do this
we call the New -CsNetworkRegion cmdlet, passing an Identity of NorthAmerica. We assign a value for the required
parameter CentralSite (in this example the name of the central site for this region is Redmond-NA-MLS ), and then
we specify the BWAlternatePaths parameter, passing it the variable ($a) containing the alternate path object we just
create.
Parameters
-AlternatePath
Set the parameter to True to allow calls made in the media of the modality specified in the BWPolicyModality
parameter (either audio or video) to be routed through an alternate path if adequate bandwidth does not exist in
the primary path.

Type: Boolean
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BWPolicyModality
The modality to which the alternate path setting applies.
Valid values: audio, video
Full data type: Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyModality

Type: BWPolicyModality
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWAlternatePathType.

Related Links
New -CsNetworkRegion
Set-CsNetworkRegion
minutes to read • Edit Online

New-CsNetworkBWPolicy
In ths Article

Creates a bandwidth policy in memory that can be applied to the bandwidth policy profile. In Skype for Business
Server, the policy applies to either audio or video bandwidth. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsNetworkBWPolicy -BWLimit <UInt32> -BWPolicyModality <BWPolicyModality> -BWSessionLimit <UInt32>
[<CommonParameters>]

Description
This cmdlet creates a new bandwidth policy. A bandwidth policy is used to define bandwidth limitations for certain
modalities. (In Skype for Business Server, only audio and video modalities can be assigned bandwidth limitations.)
The bandwidth policy is created only in memory, so the output must be assigned to a variable and then passed as a
value to the BWPolicy parameter of the New -CsNetworkBandwidthPolicyProfile cmdlet or the Set-
CsNetworkBandwidthPolicyProfile cmdlet. Bandwidth policies are applied to policy profiles, which can store
multiple policies for a single profile and are part of the global network configuration for call admission control
(CAC ).

Note that the recommended method of assigning audio and video policies is to assign them directly to a bandwidth
policy profile by calling the New -CsNetworkBandwidthPolicyProfile or the Set-CsNetworkBandwidthPolicyProfile
cmdlet and specifying values for the AudioBWLimit, AudioBWSessionLimit, VideoBWLimit, and
VideoBWSessionLimit parameters.

Examples
-------------------------- EXAMPLE 1 --------------------------

$bwp = New-CsNetworkBWPolicy -BWLimit 200 -BWSessionLimit 3000 -BWPolicyModality video

This example creates a new bandwidth policy and assigns it to the variable $bwp. All parameters for the New -
CsNetworkBWPolicy cmdlet are required. In this example we specified a total bandwidth limit (BWLimit) of 2000
kbps and a bandwidth session limit (BWSessionLimit) of 300 kbps, and we applied these limits to video sessions (-
BWPolicyModality video).
-------------------------- EXAMPLE 2 --------------------------

$bwp = New-CsNetworkBWPolicy -BWLimit 200 -BWSessionLimit 3000 -BWPolicyModality video

New-CsNetworkBandwidthPolicyProfile -Identity LowBWLimit -BWPolicy $bwp

Example 2 expands on Example 1 by assigning the new bandwidth policy to a policy profile. The command in line 1
is identical to Example 1: it creates video bandwidth limitations. Line 2 then calls the New -
CsNetworkBandwidthPolicyProfile cmdlet to add that policy to a new profile. The new profile receives an Identity of
LowBWLimit. Then we use the BWPolicy parameter, giving it the value $bwp, which is the variable containing the
new bandwidth policy we just created in Line 1.

Parameters
-BWLimit
The maximum total bandwidth, in kbps, for all concurrent sessions of the type specified in the BWPolicyModality
parameter.

Type: UInt32
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BWPolicyModality
Determines which type of bandwidth is limited.
Valid values: Audio, Video

Type: BWPolicyModality
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BWSessionLimit
The maximum bandwidth, in kbps, allowed for a single session of the type specified in the BWPolicyModality
parameter.

Type: UInt32
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyType.

Related Links
New -CsNetworkBandwidthPolicyProfile
Set-CsNetworkBandwidthPolicyProfile
minutes to read • Edit Online

New-CsNetworkInterRegionRoute
In ths Article

Creates a new route that connects network regions within a call admission control (CAC ) configuration. This cmdlet
was introduced in Lync Server 2010.

Syntax
New-CsNetworkInterRegionRoute [-Identity] <XdsGlobalRelativeIdentity> -NetworkRegionID1 <String>
-NetworkRegionID2 <String> [-NetworkRegionLinkIDs <String>] [-NetworkRegionLinks <PSListModifier>] [-Force]
[-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsNetworkInterRegionRoute -InterNetworkRegionRouteID <String> -NetworkRegionID1 <String>


-NetworkRegionID2 <String> [-NetworkRegionLinkIDs <String>] [-NetworkRegionLinks <PSListModifier>] [-Force]
[-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Every region within a CAC configuration must have some way to access every other region. While region links set
bandwidth limitations on the connections between regions and also represent the physical links, a route determines
which linked path the connection will traverse from one region to another. This cmdlet creates that route
association.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsNetworkInterRegionRoute -Identity NA_APAC_Route -NetworkRegionID1 NorthAmerica -NetworkRegionID2 APAC -


NetworkRegionLinkIDs "NA_EMEA,EMEA_APAC"

Example 1 creates a new network region route between the NorthAmerica region and the APAC region. We give
the new route the Identity NA_APAC_Route. (This will automatically be assigned as the
InterNetworkRegionRouteID.) The regions being connected are NorthAmerica, which is passed as the value to the
NetworkRegionID1 parameter, and APAC, which is passed as the value to the NetworkRegionID2 parameter. In this
example we're assuming there is no region link configured to link NorthAmerica directly to APAC. However, there
are links from NorthAmerica to EMEA (NA_EMEA), and from EMEA to APAC (EMEA_APAC ). We use both those
links, separated by commas, as the value of the NetworkRegionLinkIDs parameter. This will route connections from
NorthAmerica to APAC through EMEA and apply any bandwidth limitations to audio and video connections
associated with those links.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the newly created network region route. Network region routes are created only at the
global scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique name
that identifies that route.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InterNetworkRegionRouteID
This value is the same as the Identity. You cannot specify both an Identity and an InterNetworkRegionRouteID; a
value entered for one will be automatically used for both.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionID1
The Identity (NetworkRegionID ) of one of the two regions connected through this route. The value passed to this
parameter must be a different region from the value of the NetworkRegionID2 parameter. (In other words, you
can't route a region to itself.) In addition, the combination of NetworkRegionID1 and NetworkRegionID2 must be
unique (for example, you can't have two routes defined that connect NorthAmerica and EMEA).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionID2
The Identity (NetworkRegionID ) of one of the two regions connected through this route. The value passed to this
parameter must be a different region from the value of the NetworkRegionID1 parameter. (In other words, you
can't route a region to itself.) In addition, the combination of NetworkRegionID1 and NetworkRegionID2 must be
unique (for example, you can't have two routes defined that connect NorthAmerica and EMEA).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionLinkIDs
Allows you to specify all the links for this route as a string of comma-separated values. The values are the identities
(NetworkRegionLinkIDs) of the region links. If you enter values for both NetworkRegionLinkIDs and
NetworkRegionLinks, NetworkRegionLinkIDs will be ignored. This parameter provides a convenient way to specify
the list of links without having to construct a list object and pass it to the NetworkRegionLinks parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionLinks
A list object containing the identities (NetworkRegionLinkIDs) of the region links that apply to this route. For this
cmdlet, this parameter differs from the NetworkRegionLinkIDs parameter only in the format if you enter more than
one link. The NetworkRegionLinkIDs parameter is the recommended method for defining the initial list with this
cmdlet.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType.

Related Links
Remove-CsNetworkInterRegionRoute
Set-CsNetworkInterRegionRoute
Get-CsNetworkInterRegionRoute
minutes to read • Edit Online

New-CsNetworkInterSitePolicy
In ths Article

Creates a new network inter-site policy that defines bandwidth limitations between sites that are directly linked
within a call admission control (CAC ) configuration. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsNetworkInterSitePolicy [-Identity] <XdsGlobalRelativeIdentity> -NetworkSiteID1 <String>
-NetworkSiteID2 <String> [-BWPolicyProfileID <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

New-CsNetworkInterSitePolicy -InterNetworkSitePolicyID <String> -NetworkSiteID1 <String>


-NetworkSiteID2 <String> [-BWPolicyProfileID <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
When network sites share a direct link, bandwidth limitations for audio and video connections can be defined
between those two sites. This cmdlet creates a network site policy that associates a bandwidth limitation policy with
two directly connected sites.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsNetworkInterSitePolicy -Identity Reno_Portland -NetworkSiteID1 Reno -NetworkSiteID2 Portland -


BWPolicyProfileID LowBWLimits

This example creates a new network inter-site policy that limits bandwidth between the connected sites Reno and
Portland. The bandwidth limitations for audio and video connections between these sites are limited based on the
setting configured for the bandwidth policy profile LowBWLimits.

Parameters
-BWPolicyProfileID
The Identity of the bandwidth policy profile that will define the limitations for this site policy. You can retrieve a list
of available profiles by calling the Get-CsNetworkBandwidthPolicyProfile cmdlet.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the newly created network inter-site policy. Network inter-site policies are created only at the
global scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique name
that identifies that site policy.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InterNetworkSitePolicyID
This value is the same as the Identity. You cannot specify both an Identity and an InterNetworkSitePolicyID; a value
entered for one will be automatically used for both.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkSiteID1
The Identity (NetworkSiteID ) of one of the two sites associated with this policy. The combination of
NetworkSiteID1 and NetworkSiteID2 must be unique (for example, you can't have two site policies defined that
connect Reno and Portland).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkSiteID2
The Identity (NetworkSiteID ) of one of the two sites associated with this policy. The combination of
NetworkSiteID1 and NetworkSiteID2 must be unique (for example, you can't have two site policies defined that
connect Reno and Portland).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType.
Related Links
Remove-CsNetworkInterSitePolicy
Set-CsNetworkInterSitePolicy
Get-CsNetworkInterSitePolicy
minutes to read • Edit Online

New-CsNetworkMediaBypassConfiguration
In ths Article

Creates new global settings for media bypass. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsNetworkMediaBypassConfiguration [-AlwaysBypass <Boolean>] [-BypassID <String>] [-Enabled <Boolean>]
[-EnableDefaultBypassID <Boolean>] [-ExternalBypassMode <BypassModeEnumType>]
[-InternalBypassMode <BypassModeEnumType>] [-EnabledForAudioVideoConferences <Boolean>] [-Tenant <Guid>]
[<CommonParameters>]

Description
This cmdlet creates global settings for media bypass of audio connections.
Unlike most New - cmdlets in Skype for Business Server, this cmdlet does not immediately save the new
configuration; it creates the settings only in memory. The object created by this cmdlet must be saved to a variable
and then assigned to the MediaBypassSettings property of the network configuration. (For more details, see the
Examples section in this topic.)
The settings created with this cmdlet can be retrieved only by accessing the MediaBypassSettings property of the
global network configuration. To retrieve these settings, run this command: (Get-
CsNetworkConfiguration).MediaBypassSettings.

Examples
-------------------------- EXAMPLE 1 --------------------------

$a = New-CsNetworkMediaBypassConfiguration -AlwaysBypass $true -Enabled $true

Set-CsNetworkConfiguration -MediaBypassSettings $a

The commands in this example enable media bypass and configure it to always attempt bypass. The first line in the
example is a call to the New -CsNetworkMediaBypassConfiguration cmdlet. We pass two parameters to this cmdlet:
AlwaysBypass and Enabled, setting both to True ($true). Setting Enabled to True enables media bypass, while
setting AlwaysBypass to True assures that media bypass will be attempted on all calls. (Note that setting these two
parameters will automatically generate a value for the BypassID property.) The New -
CsNetworkMediaBypassConfiguration cmdlet creates the object only in memory, so we assign that object to the
variable $a.
The media bypass configuration is stored with the network configuration settings. Therefore, in line 2 of the
example, we save the media bypass configuration changes to the network configuration by calling the Set-
CsNetworkConfiguration cmdlet and passing the media bypass configuration object ($a) we created in line 1 to the
MediaBypassSettings parameter.
The following parameters are not applicable to Skype for Business Online: AsJob, BypassID,
EnableDefaultBypassID, EnabledForAudioVideoConferences, ExternalBypassMode, InternalBypassMode,
PipelineVariable, and Tenant
-------------------------- EXAMPLE 2 --------------------------

$a = (Get-CsNetworkConfiguration).MediaBypassSettings

$a.AlwaysBypass = $false

Set-CsNetworkConfiguration -MediaBypassSettings $a

There is no Set-CsNetworkMediaBypassConfiguration cmdlet in Skype for Business Server, so in order to modify


existing settings you must either create a new configuration (as shown in Example 1) to replace the existing
configuration, or you must modify the settings by retrieving the existing settings, modifying them, and then using
the Set-CsNetworkConfiguration cmdlet to save the changes. This example demonstrates turning off the Always
Bypass option by using this latter option.
The first line in the example retrieves the existing media bypass settings. It does this by calling the Get-
CsNetworkConfiguration cmdlet. The call to this cmdlet is within parentheses to ensure the cmdlet is completed
before any other part of the command is run. The Get-CsNetworkConfiguration cmdlet retrieves all settings for an
entire network configuration. Because we're interested in only the media bypass settings, we specify the
MediaBypassSettings property to retrieve only those settings. We assign those settings to the variable $a.
In line 2 we modify the settings stored in variable $a by assigning the value False ($false) to the AlwaysBypass
property. Finally, in line 3 we call the Set-CsNetworkConfiguration cmdlet, passing the MediaBypassSettings
parameter the variable $a, which saves the change we made to the AlwaysBypass property.

Parameters
-AlwaysBypass
Setting this parameter to True will attempt media bypass on all calls.
Set this parameter value to True only if call admission control (CAC ) is disabled. Set this parameter to True only for
deployments where:
There is no need for bandwidth control.
There is no need for fine-grained configuration to determine when bypass should happen.
There is full connectivity between gateways and clients.
If the Enabled parameter is set to True and AlwaysBypass is set to False, bypass logic will use network configuration
sites and regions to determine when bypass is possible.
If you set AlwaysBypass to True but do not also set the value of the Enabled parameter to True, you'll receive a
warning message: AlwaysBypass setting is ignored if Enabled is set to false.
Setting AlwaysBypass and Enabled both to True will auto-generate a bypass ID that will be stored in the BypassID
property.
Default: False
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassID
The media bypass ID. If the AlwaysBypass parameter is set to True and a value is supplied for this parameter, this
BypassID will be associated with all subnets. If AlwaysBypass is False, the BypassID value is associated with all
subnets that are not found in network configuration sites and regions.
This ID must be in the format of a GUID (for example, 96f14dea-5170-429a-b92b-f1cb909c4bb6). However, you
will typically not have to set or change this parameter. This value is automatically generated when Enabled is set to
True and either: 1) AlwaysBypass is set to True, or 2) the EnableDefaultBypassID parameter is set to True.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Set this parameter to True to enable media bypass. At that point bypass decisions will be based on the value of the
AlwaysBypass setting as follows:
If AlwaysBypass is True, attempt bypass for all calls.
If AlwaysBypass is False, use the network configuration site and region to determine whether bypass is possible.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDefaultBypassID
This value applies only when AlwaysBypass is set to False.
Setting this value to True will automatically generate a default bypass ID. This auto-generated value will be stored
in the BypassID property.
This parameter is useful when there is a well-connected core with remote sites that have bandwidth constrained
links. The administrator will need to define only the subnets associated with the remote sites by way of network
configuration sites and regions. Any subnets associated with the core need not be defined and bypass will
automatically be attempted between those subnets.
Default: False
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnabledForAudioVideoConferences
Indicates whether media bypass should be used for audio/video conferences. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalBypassMode
Reserved for future use. External media bypass is not supported in Skype for Business Server.
Default: Off

Type: BypassModeEnumType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InternalBypassMode
The value of this parameter controls when clients connecting from inside the organization's network can try to
perform media bypass. If Enabled is set to True, this value will automatically be changed to Any. Other values for
this parameter are reserved for future use.
Default: Off

Type: BypassModeEnumType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None.

Outputs
Creates an object reference of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.MediaBypassSettingsType.

Outputs
System.Object

Related Links
Get-CsNetworkConfiguration
Set-CsNetworkConfiguration
minutes to read • Edit Online

New-CsNetworkRegion
In ths Article

Creates a new network region. Network regions represent network hubs or backbones in an enterprise network.
This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsNetworkRegion [-Identity] <XdsGlobalRelativeIdentity> -CentralSite <String>
[-AudioAlternatePath <Boolean>] [-BWAlternatePaths <PSListModifier>] [-BypassID <String>]
[-Description <String>] [-VideoAlternatePath <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

New-CsNetworkRegion -CentralSite <String> -NetworkRegionID <String> [-AudioAlternatePath <Boolean>]


[-BWAlternatePaths <PSListModifier>] [-BypassID <String>] [-Description <String>]
[-VideoAlternatePath <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
A network region interconnects various parts of a network across multiple geographic areas. Every network region
must be associated with a central site. The central site is the data center site on which the call admission control
(CAC ) bandwidth policy service is running. Use this cmdlet to create a new network region. The parameters of this
cmdlet allow you to provide settings that determine whether alternate paths through the Internet are allowed for
audio and video connections, and can automatically generate the bypass ID.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsNetworkRegion -Identity NorthAmerica -Description "All North American Locations" -CentralSite Redmond-NA-
MLS

In this example a new network region named NorthAmerica is created. The region name is specified as the value
for the Identity parameter. A value is also specified for the optional Description parameter, describing this region as
being composed of "All North American Locations." Finally, the CentralSite parameter receives a value of the name
of the central site for this region, Redmond-NA-MLS.
-------------------------- EXAMPLE 2 --------------------------

New-CsNetworkRegion -Identity EMEA -CentralSite Dublin-EU-Site -AudioAlternatePath $False

This example creates a new network region named EMEA that includes settings for an audio alternate path. To do
this we call the New -CsNetworkRegion cmdlet, passing an Identity of EMEA. We assign a value for the required
parameter CentralSite (in this example the name of the central site for this region is Dublin-EU -Site), and then we
specify the AudioAlternatePath parameter, passing it the value $False. Setting AudioAlternatePath to False indicates
that if adequate bandwidth is not available, the audio calls will not be routed to an alternate path; instead, they will
simply not be completed.
-------------------------- EXAMPLE 3 --------------------------

$a = New-CsNetworkBWAlternatePath -BWPolicyModality "audio" -AlternatePath $False

New-CsNetworkRegion -Identity EMEA -CentralSite Dublin-EU-Site -BWAlternatePaths $a

This example creates the same network region that was created in Example 2. However, in this case we use the
BWAlternatePaths parameter to define alternate path settings rather than the AudioAlternatePath parameter. The
first line in the example calls the New -CsNetworkBWAlternatePath cmdlet to create a new alternate path. An
alternate path has only two properties: BWPolicyModality, which must be set to either audio or video (audio in this
example); and AlternatePath, which must be either True or False (False in this example). We assign the output from
this cmdlet, a reference to the alternate path object just created, to the variable $a.
In line 2 of this example we use this newly created alternate path when we create a new network region. To do this
we call the New -CsNetworkRegion cmdlet, passing an Identity of EMEA. We assign a value for the required
parameter CentralSite (in this example the name of the central site for this region is Dublin-EU -Site), and then we
specify the BWAlternatePaths parameter, passing it the variable ($a) containing the alternate path object we just
created.

Parameters
-AudioAlternatePath
This parameter determines whether audio calls will be routed through an alternate path if adequate bandwidth
does not exist in the primary path.
This parameter populates the BWAlternatePaths property. The value supplied to this parameter is stored in the
AlternatePath property for the alternate path element with a BWPolicyModality value of Audio.
If you supply a value for this parameter, you cannot specify a value for the BWAlternatePaths parameter.
Default: True. Set this parameter to False only if you need to turn off the offload to the Internet. If any of your calls
will be Internet calls, this value must be True, regardless of bandwidth settings.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BWAlternatePaths
A list of objects that contain information about whether alternate Internet connection paths are allowed if a media
request is unable to complete along the preferred path (for example, if limits on that path have been exceeded).
Alternate path objects must be created by calling the New -CsNetworkBWAlternatePath cmdlet.
If you supply a value for this parameter, you cannot supply values for either the AudioAlternatePath or
VideoAlternatePath parameters.
Alternate paths for audio and video are enabled (AlternatePath = True) by default.
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassID
A globally unique identifier (GUID ). This GUID is used to map network regions to media bypass settings within a
CAC or Enhanced 9-1-1 (E9-1-1) network configuration. (Use this BypassID value in the call to the New -
CsNetworkMediaBypassConfiguration cmdlet.)
If you do not specify a value for this parameter, a value will be automatically generated. If you do specify a value, it
must be in the format of a GUID (for example, 3b24a047-dce6-48b2-9f20-9fbff17ed62a). Auto-generation is
recommended. If you supply a value for this parameter, you'll receive a confirmation prompt asking if you really
want to supply this value rather than allow it to be auto-generated.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CentralSite
The central site running the bandwidth policy service. This service must be enabled in order to use CAC. This
service runs on the Front End Server or the Standard Edition server.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A string that describes the region. This parameter can be used to provide a more descriptive explanation of what
the region is for than can be expressed by the Identity alone.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes. For example, if
you supply a value to the BypassID parameter, you will not be prompted for confirmation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the newly created network region. Regions are created only at the global scope, so this
identifier does not need to specify a scope. Instead, it contains a string that is a unique name that identifies that
region.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionID
This value is the same as the Identity. You cannot specify both an Identity and a NetworkRegionID; a value entered
for one will be automatically used for both.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-VideoAlternatePath
This parameter determines whether video calls will be routed through an alternate path if adequate bandwidth
does not exist in the primary path.
This parameter populates the BWAlternatePaths property. The value supplied to this parameter is stored in the
AlternatePath property for the alternate path element with a BWPolicyModality value of Video.
If you supply a value for this parameter you cannot specify a value for the BWAlternatePaths parameter.
Default: True. Set this parameter to False only if you need to turn off the offload to the Internet. If any of your calls
will be Internet calls, this value must be True, regardless of bandwidth settings.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType.

Related Links
Remove-CsNetworkRegion
Set-CsNetworkRegion
Get-CsNetworkRegion
New -CsNetworkBWAlternatePath
minutes to read • Edit Online

New-CsNetworkRegionLink
In ths Article

Creates a link between two regions configured for call admission control (CAC ). This cmdlet was introduced in Lync
Server 2010.

Syntax
New-CsNetworkRegionLink [-Identity] <XdsGlobalRelativeIdentity> -NetworkRegionID1 <String>
-NetworkRegionID2 <String> [-BWPolicyProfileID <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

New-CsNetworkRegionLink -NetworkRegionID1 <String> -NetworkRegionID2 <String> -NetworkRegionLinkID <String>


[-BWPolicyProfileID <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Regions within a network are linked through physical WAN connectivity. This cmdlet defines a link between two
regions and sets the bandwidth limitations on audio and video connections between these regions.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsNetworkRegionLink -Identity NA_EMEA -NetworkRegionID1 NorthAmerica -NetworkRegionID2 EMEA -


BWPolicyProfileID LowBWLimits

This example creates a new network region link named NA_EMEA to link the regions NorthAmerica and EMEA.
The region link name is specified as the value for the Identity parameter. (This will automatically be assigned as the
value of the NetworkRegionLinkID.) The two network regions being linked are required parameters for creating the
link, in this case the regions named NorthAmerica and EMEA. In this example we've also assigned a value to the
BWPolicyProfile parameter. This will assign the bandwidth limitations defined in that bandwidth policy profile
(LowBWLimits) to connections between these regions. If no BWPolicyProfileID is supplied, there are no bandwidth
limitations on connections between these two regions. (There could still be limitations between sites. For details,
see the New -CsNetworkSite cmdlet help topic.)

Parameters
-BWPolicyProfileID
The Identity of the bandwidth policy profile that will define the bandwidth limitations for this link. You can retrieve a
list of available profiles by calling the Get-CsNetworkBandwidthPolicyProfile cmdlet.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the newly created network region link. Network region links are created only at the global
scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique name that
identifies that link.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionID1
The Identity (NetworkRegionID ) of the region that is linked to the region identified by the NetworkRegionID2
parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionID2
The Identity (NetworkRegionID ) of the region that is linked to the region identified by the NetworkRegionID1
parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionLinkID
This value is the same as the Identity. You cannot specify both an Identity and a NetworkRegionLinkID; a value
entered for one will be automatically used for both.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType.

Related Links
Remove-CsNetworkRegionLink
Set-CsNetworkRegionLink
Get-CsNetworkRegionLink
Get-CsNetworkBandwidthPolicyProfile
New -CsNetworkSite
minutes to read • Edit Online

New-CsNetworkSite
In ths Article

Creates a new network site for use with call admission control (CAC ) or Enhanced 9-1-1 (E9-1-1). This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsNetworkSite [-Identity] <XdsGlobalRelativeIdentity> [-BWPolicyProfileID <String>] [-BypassID <String>]
[-Description <String>] [-LocationPolicy <String>] -NetworkRegionID <String> [-Force] [-InMemory] [-WhatIf]
[-Confirm] [-EnableLocationBasedRouting <Boolean>] [-VoiceRoutingPolicy <String>] [<CommonParameters>]

New-CsNetworkSite -NetworkSiteID <String> [-BWPolicyProfileID <String>] [-BypassID <String>]


[-Description <String>] [-LocationPolicy <String>] -NetworkRegionID <String> [-Force] [-InMemory] [-WhatIf]
[-Confirm] [-EnableLocationBasedRouting <Boolean>] [-VoiceRoutingPolicy <String>] [<CommonParameters>]

Description
Network sites are the offices or locations configured within each region of a CAC or E9-1-1 deployment. This
cmdlet creates a new site and optionally associates it with a region. For example, a network region for North
America might be associated with networks sites such as Chicago, Redmond, and Vancouver. A CAC network site
must be created for every site within an organization, even if that site has no bandwidth limitations.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsNetworkSite -Identity Vancouver -NetworkRegionID NorthAmerica

In this example a new network site named Vancouver is created. The site name is specified as the value for the
Identity parameter. A value is also specified for the NetworkRegionID parameter, which associates the site with the
region (in this example NorthAmerica). A BypassID value will be automatically generated. Manually setting a value
for BypassID is not recommended.
Notice that the command in this example did not include the BWPolicyProfileID parameter. Unless (or until) a value
is added to this site later using the Set-CsNetworkSite cmdlet, it will have no bandwidth limitations for media
connections.
-------------------------- EXAMPLE 2 --------------------------

New-CsNetworkSite -Identity Paris -NetworkRegionID EMEA -BWPolicyProfileID LowBWLimits

In Example 2 we create a new network site named Paris. The site name is specified as the value for the Identity
parameter. As in Example 1 we also specify a value for the NetworkRegionID, this time the region EMEA. Once
again we are following the recommended path by allowing the cmdlet to generate the BypassID. Unlike Example 1,
this example also specifies a value for the BWPolicyProfileID parameter: LowBWLimits. The policies associated
with that profile will be used for this site.

Parameters
-BWPolicyProfileID
The Identity of the bandwidth policy profile that will define the bandwidth limitations for this site. You can retrieve a
list of available profiles by calling the Get-CsNetworkBandwidthPolicyProfile cmdlet.
If you specify a value for this parameter, you must also specify a value for the NetworkRegionID parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassID
A globally unique identifier (GUID ). This GUID is used to map network sites to media bypass settings within a CAC
or E9-1-1 network configuration. (Use this BypassID value in the call to the New -
CsNetworkMediaBypassConfiguration cmdlet.)
If you do not specify a value for this parameter, a value will be automatically generated, but only if you supply a
value for the NetworkRegionID parameter. If you do not supply a NetworkRegionID parameter, no BypassID will be
generated. You also cannot explicitly supply a value for the BypassID parameter without also supplying a value for
the NetworkRegionID parameter.
If you explicitly specify a value, it must be in the format of a GUID (for example, 3b24a047-dce6-48b2-9f20-
9fbff17ed62a). Auto-generation is recommended. If you manually enter a value, you will receive a confirmation
prompt to verify that you don't want to auto-generate the value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A string that describes the site. This parameter can be used to provide a more descriptive explanation of what the
site is for or where it is than can be expressed by the Identity alone.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableLocationBasedRouting
When set to True, voice routing will be managed by taking into account the location of both the user placing the call
and the user receiving the call. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the newly created network site. Sites are created only at the global scope, so this identifier
does not need to specify a scope. Instead, it contains a string that is unique among all network sites within the
Skype for Business Server 2015 deployment.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationPolicy
The name of the location policy associated with this site. The location policy assigns specific E9-1-1 settings to the
site. You can retrieve a list of location policies by calling the Get-CsLocationPolicy cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkRegionID
The Identity of the network region that this site is associated with. This parameter must contain a value if you want
to provide a BypassID (either through auto-generation or manually), or if the EnableBandwidthPolicyCheck
property of the network configuration is True. You can retrieve the network configuration settings by calling the
Get-CsNetworkConfiguration cmdlet.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkSiteID
This value is the same as the Identity. You cannot specify both an Identity and a NetworkSiteID; a value entered for
one will be automatically used for both.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VoiceRoutingPolicy
Per-user voice routing policy to be assigned to the site. For example:
-VoiceRoutingPolicy "RedmondVoiceRouting"

Note that you must specify a per-user policy; global and/or site policies cannot be assigned to a site using the
VoiceRoutingPolicy parameter.
This parameter was introduced in the February, 2013 release of Lync Server 2013.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Create an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.DisplayNetworkSiteType.

Related Links
Remove-CsNetworkSite
Set-CsNetworkSite
Get-CsNetworkSite
Get-CsNetworkBandwidthPolicyProfile
New -CsNetworkMediaBypassConfiguration
Get-CsLocationPolicy
Get-CsNetworkConfiguration
minutes to read • Edit Online

New-CsNetworkSubnet
In ths Article

Creates a new network subnet. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsNetworkSubnet [-Identity] <XdsGlobalRelativeIdentity> -MaskBits <Int32> [-Description <String>]
[-NetworkSiteID <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsNetworkSubnet -MaskBits <Int32> -SubnetID <String> [-Description <String>] [-NetworkSiteID <String>]


[-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Each subnet must be associated with a network site for the purposes of determining the geographic location of the
host belonging to this subnet. Use this cmdlet to create a new subnet, and at the same time (optionally) assign it to
a network site.
In most deployments of Skype for Business Server where call admission control (CAC ) is implemented, there will
typically be a large number of subnets. Because of this, it's often best to call the New -CsNetworkSubnet cmdlet in
conjunction with the Import-CSV cmdlet. By using these cmdlets together, you can read in subnet settings from a
comma-separated values (CSV ) file and create multiple subnets at once. For more details, see the Examples section
for this cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsNetworkSubnet -Identity 172.11.15.0 -MaskBits 24 -NetworkSiteID Vancouver

This example demonstrates how to create a new subnet object that represents the subnet 172.11.15.0/24. The
Identity of the subnet is set to 172.11.15.0. This value will automatically be assigned as the SubnetID. A subnet
must have mask bits defined. That is done by supplying a value--in this case 24--to the MaskBits parameter. Finally,
the site ID Vancouver is passed to the NetworkSiteID parameter to associate this subnet with that site.
-------------------------- EXAMPLE 2 --------------------------

Import-CSV C:\subnet.csv | foreach {New-CsNetworkSubnet -Identity $_.Identity -MaskBits $_.Mask -NetworkSiteID


$_.SiteID}

Example 2 reads from a CSV file to create a series of subnets. The CSV file in this example looks something like
this:
Identity, Mask, SiteID
172.11.12.0, 24, Redmond
172.11.13.0, 24, Chicago
172.11.14.0, 25, Vancouver
172.11.15.0, 31, Paris
...
The example starts by calling the Import-CSV cmdlet, passing it the path to a CSV file. This cmdlet will read the
contents of that file into memory. Those file contents are then piped to the foreach function. The foreach function
iterates through the contents one line at a time. As you can see from the example file, the first line is a list of
headings that define the rest of the contents; the foreach function will use these headings to access the comma-
separated values by name.
Inside the foreach statement, the New -CsNetworkSubnet cmdlet is called. As foreach iterates through each line of
the file contents, that line is passed as the values for the New -CsNetworkSubnet cmdlet parameters. For example,
the first time through the foreach statement, the New -CsNetworkSubnet cmdlet will create a subnet with the
Identity 172.11.12.0: this is the value in the Identity position in the first comma-separated line of values. (The $_
indicates the current value in the foreach loop.) The Mask value (24) is then passed to the MaskBits parameter, and
the SiteID value (Redmond) from the file is passed to the NetworkSiteID parameter.
This process continues until all lines in the file have been read, and their values used to create new subnets.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of the subnet being created.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique subnet ID of the subnet being created. This must be an IP address (such as 174.11.12.0), and it must be
the first address in the IP address range defined by the subnet.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaskBits
The bitmask to be applied to the subnet being created.
Valid values: 1 through 32

Type: Int32
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkSiteID
The site ID of the site to which this subnet belongs. You can retrieve site IDs for your deployment by calling the
Get-CsNetworkSite cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SubnetID
This is the same value as the Identity. You must specify either an Identity or a SubnetID, but you cannot specify
both. Whatever value you supply to one will automatically be applied to the other.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType.

Related Links
Remove-CsNetworkSubnet
Set-CsNetworkSubnet
Get-CsNetworkSubnet
Get-CsNetworkSite
minutes to read • Edit Online

New-CsOAuthServer
In ths Article

Creates a new Open Authorization (OAuth) server for use by the organization. OAuth servers, also known as
security token servers, issue security tokens used in server-to-server authentication and authorization. This cmdlet
was introduced in Lync Server 2013.

Syntax
New-CsOAuthServer [[-Identity] <XdsGlobalRelativeIdentity>] -MetadataUrl <String> [-Confirm] [-Force]
[-InMemory] [-Realm <String>] [-Tenant <Guid>] [-WhatIf] [-AcceptSecurityIdentifierInformation <Boolean>]
[-AuthorizationUriOverride <String>] [-Type <String>] [<CommonParameters>]

Description
In Skype for Business Server, server-to-server authentication (for example, the authentication that enables Skype
for Business Server and Exchange to share information) is carried out using the OAuth security protocol. This type
of authentication typically requires three servers: the two servers that need to communicate with one another
(Server A and B ) and a third-party security token server. If Servers A and B need to communicate with one another,
the two servers contact the token server (also known as an OAuth server) and obtain mutually-trusted security
tokens that the two servers can exchange in order to prove their identities.
If you are using an on-premises version of Skype for Business Server and you need to communicate with another
server product that fully supports the OAuth then you typically do not need to use a token server; that's because
these server products are able to issue their own security tokens. However, if you need to communicate with
another server product then you will need to use a token servers. These token servers can be managed by using
the CsOAuthServer cmdlets.
Skype for Business Server Control Panel: The functions carried out by the New -CsOAuthServer cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsOAuthServer -Identity "Office 365" -MetadataUrl "https://sts.office365.microsoft.com/metadata/json/1"

Example 1 creates a new OAuth Server named "Office 365". The new server uses the metadata URL
https://sts.office365.microsoft.com/metadata/json/1.

Parameters
-AcceptSecurityIdentifierInformation
When set to True ($True), security identifiers (SIDs) can be used for authentication purposes. The default value is
False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AuthorizationUriOverride
URI used for OAuth authorization override. The override prevents authenticated users from being reprompted for
their credentials after they have logged on.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Friendly (and unique) name used to identify the OAuth server.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MetadataUrl
URL where the WS -FederationMetadata for the server is published. Servers use the metadata to agree on the
types of tokens that will be exchanged as well the keys that will be used to sign these tokens. Note that the specified
URL must be available when you run the New -CsOAuthServer cmdlet or else the command will fail.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Realm
Server-to-server security container. By default, Skype for Business Server uses your default SIP domain as its
OAuth realm.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new OAuth server
is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Type of authentication used by the server. For example, this syntax configures the server to use Active Directory
Federation Services authentication:
-Type "ADFS"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsOAuthServer cmdlet does not accept pipelined input.

Outputs
The New -CsOAuthServer cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer#Decorated object.

Related Links
Get-CsOAuthServer
Remove-CsOAuthServer
Set-CsOAuthServer
minutes to read • Edit Online

New-CsOnlineApplicationEndpoint
In ths Article

Provide the topic introduction here.

Syntax
New-CsOnlineApplicationEndpoint -ApplicationId <Guid> [-CallbackUri <String>] -Name <String> [-Region <String>]
[-Uri] <String> [-Audience <String>] [-Ring <String>] [-PhoneNumber <String>] [-IsInternalRun <Boolean>]
[-Tenant <System.Guid>] [-RunFullProvisioningFlow <System.Boolean>] [-DomainController <Fqdn>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
The following parameters are not applicable to Skype for Business Online: AsJob, Audience, CallbackUri,
DomainController, Force, IsInternalRun, PipelineVariable, Region, Ring, and RunFullProvisioningFlow

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-ApplicationId
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Audience
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallbackUri
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
PARAMVALUE: Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsInternalRun
PARAMVALUE: $true | $false
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PhoneNumber
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Region
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Ring
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RunFullProvisioningFlow
{{Fill RunFullProvisioningFlow Description}}
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Uri
PARAMVALUE: String

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

New-CsOnlineApplicationInstanceAssociation
In ths Article

Use the New -CsOnlineApplicationInstanceAssociation cmdlet to associate either a single or multiple application
instances with an application configuration, like auto attendant or call queue.

Syntax
New-CsOnlineApplicationInstanceAssociation -Identities <String[]> -ConfigurationId <String> -ConfigurationType
<Object> [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsOnlineApplicationInstanceAssociation cmdlet associates either a single or multiple application
instances with an application configuration, like auto attendant or call queue. When an association is created
between an application instance and an application configuration, calls reaching that application instance would be
handled based on the associated application configuration. For more information on how to create Application
Instances, check New-CsOnlineApplicationInstance cmdlet documentation.
You can get the Identity of the application instance from the ObjectId of the AD object.

Examples
-------------------------- Example 1 --------------------------
$applicationInstanceId = (Get-CsOnlineUser "main_auto_attendant@contoso.com").ObjectId # 76afc66a-5fe9-
4a3d-ab7a-37c0e37b1f19
$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-
5515-a97b-46be52dfc057

New-CsOnlineApplicationInstanceAssociation -Identities @($applicationInstanceId) -ConfigurationId


$autoAttendantId -ConfigurationType AutoAttendant

Get-CsAutoAttendant -Identity $autoAttendantId

# Id : c2ee3e18-b738-5515-a97b-46be52dfc057
# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213
# Name : Main Auto Attendant
# LanguageId : en-US
# VoiceId : Female
# DefaultCallFlow : Default Call Flow
# Operator :
# TimeZoneId : Pacific Standard Time
# VoiceResponseEnabled : False
# CallFlows :
# Schedules :
# CallHandlingAssociations :
# Status :
# DialByNameResourceId :
# DirectoryLookupScope :
# ApplicationInstances : {76afc66a-5fe9-4a3d-ab7a-37c0e37b1f19}

This example creates an association between an application instance that we have already created with UPN
"main_auto_attendant@contoso.com" whose identity is "76afc66a-5fe9-4a3d-ab7a-37c0e37b1f19", and an auto
attendant configuration that we created with display name "Main Auto Attendant" whose identity is "c2ee3e18-
b738-5515-a97b-46be52dfc057". Once the association is created, the newly associated application instance would
be listed under the ApplicationInstances property of the AA.
-------------------------- Example 2 --------------------------
$applicationInstancesIdentities = (Find-CsOnlineApplicationInstance -SearchQuery "tel:+1206") | Select-Object -
Property Id

# Id
# --
# fa2f17ec-ebd5-43f8-81ac-959c245620fa
# 56421bbe-5649-4208-a60c-24dbeded6f18
# c7af9c3c-ae40-455d-a37c-aeec771e623d

$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-5515-a97b-


46be52dfc057

New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIdentities -ConfigurationId


$autoAttendantId -ConfigurationType AutoAttendant

Get-CsAutoAttendant -Identity $autoAttendantId

# Id : c2ee3e18-b738-5515-a97b-46be52dfc057
# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213
# Name : Main Auto Attendant
# LanguageId : en-US
# VoiceId : Female
# DefaultCallFlow : Default Call Flow
# Operator :
# TimeZoneId : Pacific Standard Time
# VoiceResponseEnabled : False
# CallFlows :
# Schedules :
# CallHandlingAssociations :
# Status :
# DialByNameResourceId :
# DirectoryLookupScope :
# ApplicationInstances : {fa2f17ec-ebd5-43f8-81ac-959c245620fa, 56421bbe-5649-4208-a60c-24dbeded6f18,
c7af9c3c-ae40-455d-a37c-aeec771e623d}

This example creates an association between multiple application instances that we had created before and to
which we assigned phone numbers starting with "tel:+1206", and an auto attendant configuration that we created
with display name "Main Auto Attendant" whose identity is "c2ee3e18-b738-5515-a97b-46be52dfc057". Once the
associations are created, the newly associated application instances would listed under the ApplicationInstances
property of the AA.
-------------------------- Example 3 --------------------------

$applicationInstancesIdentities = (Find-CsOnlineApplicationInstance -SearchQuery "Main Auto Attendant") |


Select-Object -Property Id

# Id
# --
# fa2f17ec-ebd5-43f8-81ac-959c245620fa
# 56421bbe-5649-4208-a60c-24dbeded6f18
# c7af9c3c-ae40-455d-a37c-aeec771e623d

$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-5515-a97b-


46be52dfc057

New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIdentities -ConfigurationId


$autoAttendantId -ConfigurationType AutoAttendant

This example creates an association between multiple application instances that we had created before with display
name starting with "Main Auto Attendant", and an auto attendant configuration that we created with display name
"Main Auto Attendant" whose identity is "c2ee3e18-b738-5515-a97b-46be52dfc057".
Parameters
-ConfigurationId
The ConfigurationId parameter is the identity of the configuration that would be associatied with the provided
application instances.

Type: System.string
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConfigurationType
The ConfigurationType parameter denotes the type of the configuration that would be associated with the provided
application instances.
It can be one of two values:
AutoAttendant
CallQueue

Type: System.string
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identities
The Identities parameter is the identities of application instances to be associated with the provided configuration
ID.

Type: System.String[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput

Related Links
Get-CsOnlineApplicationInstanceAssociation
Get-CsOnlineApplicationInstanceAssociationStatus
Remove-CsOnlineApplicationInstanceAssociation
minutes to read • Edit Online

New-CsOnlineAudioFile
In ths Article

Use the New -CsOnlineAudioFile cmdlet to create a new audio file.

Syntax
New-CsOnlineAudioFile -FileName <String> -Content <Byte[]> [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsOnlineAudioFile cmdlet creates a new audio file for use with the Organizational Auto Attendant (OAA)
service.

Examples
-------------------------- Example 1 --------------------------

$content = Get-Content "C:\Media\Welcome.wav" -Encoding byte -ReadCount 0


$audioFile = New-CsOnlineAudioFile -FileName "Hello.wav" -Content $content

This example creates a new audio file using the WAV content that has a filename of Hello.wav.

Parameters
-Content
The Content parameter represents the content of the audio file. Supported formats are WAV (uncompressed, linear
PCM with 8/16/32-bit depth in mono or stereo), WMA (mono only), and MP3. The audio file content cannot be
more 5MB.

Type: System.Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
The FileName parameter is the name of the audio file. For example, the file name for the file
C:\Media\Welcome.wav is Welcome.wav.
Type: System.string
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile
minutes to read • Edit Online

New-CsOnlineBulkAssignmentInput
In ths Article

Provide the topic introduction here.

Syntax
New-CsOnlineBulkAssignmentInput [-Identity] <UserIdParameter> [-TelephoneNumber <String>]
[-LocationID <Guid>] [-DomainController <Fqdn>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
PARAMVALUE: Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: UserIdParameter

Type: UserIdParameter
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationID
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumber
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

New-CsOnlineDateTimeRange
In ths Article

Use the New -CsOnlineDateTimeRange cmdlet to create a new date-time range.

Syntax
New-CsOnlineDateTimeRange -Start <String> [-End <String>] [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsOnlineDateTimeRange cmdlet creates a new date-time range to be used with the Organizational Auto
Attendant (OAA) service. Date time ranges are used to form schedules.
NOTE
The start bound of the range must be less than its end bound.
The time part of the range must be aligned with 30/60-minutes boundaries.
A date time range bound can only be input in the following formats:
"d/m/yyyy H:mm"
"d/m/yyyy" (the time component of the date-time range is set to 00:00)

Examples
Example 1

$dtr = New-CsOnlineDateTimeRange -Start "1/1/2017"

This example creates a date-time range for spanning from January 1, 2017 12AM to January 2, 2017 12AM.
Example 2

$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017 09:00" -End "27/12/2017 00:00"

This example creates a date-time range spanning from December 24, 2017 9AM to December 27, 2017 12AM.

Parameters
-End
The End parameter represents the end bound of the date-time range.
If not present, the end bound of the date time range is set to 00:00 of the day after the start date.
Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Start
The Start parameter represents the start bound of the date-time range.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange

Related Links
New -CsOnlineSchedule
minutes to read • Edit Online

New-CsOnlineLisCivicAddress
In ths Article

Use the New -CsOnlineLisCivicAddress cmdlet to create a civic address in the Location Information Service (LIS.)

Syntax
New-CsOnlineLisCivicAddress [-HouseNumber <String>] [-HouseNumberSuffix <String>] [-StreetName <String>]
[-StreetSuffix <String>] [-PostDirectional <String>] [-PreDirectional <String>] [-City <String>]
[-CityAlias <String>] [-StateOrProvince <String>] -CountryOrRegion <String> [-PostalCode <String>]
[-Description <String>] -CompanyName <String> [-CompanyTaxId <String>] [-ValidationStatus <String>]
[-Tenant <Guid>] [-DomainController <Fqdn>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Because each civic address needs at least one location to assign to users, creating a new civic address also creates a
default location. This is useful in cases where a civic address has no particular sub-locations. In that scenario you
can create the civic address using the New -CsOnlineLisCivicAddress cmdlet and use the default location identifier
for assignment to users. The example output from the Get-CsOnlineLisCivicAddress below shows the
DefaultLocationId property.
CivicAddressId : 51a8a6e3-dae4-4653-9a99-a6e71c4c24ac
HouseNumber :
HouseNumberSuffix :
PreDirectional :
StreetName :
StreetSuffix :
PostDirectional :
City :
PostalCode :
StateOrProvince :
CountryOrRegion : US
Description :
CompanyName : MSFT
DefaultLocationId : 75301b5d-3609-458e-a379-da9a1ab33228
ValidationStatus : NotValidated
NumberOfVoiceUsers : 0

Examples
-------------------------- Example 1 --------------------------

New-CsOnlineLisCivicAddress -HouseNumber 3910 -StreetName Smith -StreetSuffix Street -PostDirectional NE -City


Redmond -StateorProvince Washington -Country US -PostalCode 98052 -Description "West Coast Headquarters" -
CompanyName Contoso

This example creates a new civic address described as "West Coast Headquarters": 3910 Smith Street NE,
Redmond WA, 98052.

Parameters
-City
Specifies the city of the new civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CityAlias
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CompanyName
Specifies the name of your organization.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CompanyTaxId
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the country or region of the new civic address. Needs to be a valid country code as contained in the ISO
3166-1 alpha-2 specification.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Specifies an administrator defined description of the new civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HouseNumber
Specifies the numeric portion of the new civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HouseNumberSuffix
Specifies the numeric suffix of the new civic address. For example, if the property was multiplexed, the
HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PostalCode
Specifies the postal code of the new civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PostDirectional
Specifies the directional attribute of the new civic address which follows the street name. For example, "425 Smith
Avenue NE".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PreDirectional
Specifies the directional attribute of the new civic address which precedes the street name. For example, "425 NE
Smith Avenue ".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StateOrProvince
Specifies the state or province of the new civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StreetName
Specifies the street name of the new civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StreetSuffix
Specifies the street type of the new civic address. The street suffix will typically be something like street, avenue,
way, or boulevard.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ValidationStatus
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
minutes to read • Edit Online

New-CsOnlineLisLocation
In ths Article

Use the New -CsOnlineLisLocation cmdlet to either to create a new emergency dispatch location within an existing
civic address, or to create both a new civic address and a location assigned to that address. There can be multiple
locations in a civic address. Typically the civic address designates the building, and locations are specific parts of
that building such as a floor, office, or wing.

Syntax
New-CsOnlineLisLocation -CivicAddressId <Guid> -Location <String> [-CompanyName <String>]
[-CompanyTaxId <String>] [-HouseNumberSuffix <String>] [-CityAlias <String>] [-Tenant <Guid>]
[-DomainController <Fqdn>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsOnlineLisLocation [-Location <String>] [-CompanyName <String>] [-CompanyTaxId <String>]


[-HouseNumber <String>] [-HouseNumberSuffix <String>] [-StreetName <String>] [-StreetSuffix <String>]
[-PostDirectional <String>] [-PreDirectional <String>] [-City <String>] [-CityAlias <String>]
[-StateOrProvince <String>] -CountryOrRegion <String> [-PostalCode <String>] [-Description <String>]
[-Tenant <Guid>] [-DomainController <Fqdn>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Examples
-------------------------- Example 1 --------------------------

New-CsOnlineLisLocation -CivicAddressId b39ff77d-db51-4ce5-8d50-9e9c778e1617 -Location "Office 101, 1st Floor"

This example creates a new location called "Office 101, 1st Floor" in the civic address specified by its identity.

Parameters
-City
Specifies the city of the civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CityAlias
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CivicAddressId
Specifies the unique identifier of the civic address that will contain the new location. If specified, no other address
description parameters are allowed. Civic address identities can be discovered by using the Get-
CsOnlineLisCivicAddress cmdlet.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CompanyName
Specifies the name of your organization.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CompanyTaxId
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the country or region of the civic address.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Specifies an administrator defined description of the civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HouseNumber
Specifies the numeric portion of the civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HouseNumberSuffix
Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the
HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Location
Specifies an administrator defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or
"Office 250".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PostalCode
Specifies the postal code of the civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PostDirectional
Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith
Avenue NE".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PreDirectional
Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith
Avenue ".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StateOrProvince
Specifies the state or province of the civic address.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StreetName
Specifies the street name of the civic address.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StreetSuffix
Specifies the modifier of the street name. The street suffix will typically be something like street, avenue, way, or
boulevard.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

New-CsOnlineNumberPortInOrder
In ths Article

This cmdlet is reserved for Microsoft internal use only. New third party provider ports should be provisioned
through the Skype for Business Online admin center.

Syntax
New-CsOnlineNumberPortInOrder [-Tenant <Guid>] -InventoryType <String> [-TelephoneNumbers <String[]>]
[-LOABase64PayLoad <String>] [-LOAContentType <String>] [-LOAAuthorizingPerson <String>]
[-SubscriberArea <String>] [-SubscriberCity <String>] [-SubscriberCountry <String>]
[-SubscriberStreetName <String>] [-SubscriberBuildingNumber <String>] [-SubscriberZipCode <String>]
[-SubscriberBusinessName <String>] [-BillingTelephoneNumber <String>] [-SubscriberFirstName <String>]
[-SubscriberLastName <String>] [-EmailAddresses <String[]>] [-RequestedFocDate <DateTime>]
[-LosingTelcoPin <String>] [-LosingTelcoAccountId <String>] [-IsPartialPort]
[-SubscriberAddressLine1 <String>] [-SubscriberAddressLine2 <String>] [-SubscriberAddressLine3 <String>]
[-FriendlyName <String>] [-IsManual] [-RequestedFocDateBegin <DateTimeOffset>]
[-RequestedFocDateEnd <System.DateTimeOffset>] [-RangeHolder <String>] [-TelephoneNumberRanges <String[][]>]
[-SubscriberAdditionalInfo <String>] [-SubscriberBuildingNumberSuffix <String>]
[-SubscriberStreetSuffix <String>] [-SubscriberPreDirectional <String>] [-SubscriberPostDirectional <String>]
[-SubscriberDescription <String>] [-SubscriberCounty <String>] [-SubscriberCompanyName <String>]
[-SubscriberCityAlias <String>] [-DomainController <Fqdn>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Examples
-------------------------- Example 1 --------------------------

Parameters
-BillingTelephoneNumber
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
This parameter is reserved for internal Microsoft use.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EmailAddresses
This parameter is reserved for internal Microsoft use.

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FriendlyName
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
This parameter is reserved for internal Microsoft use.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsManual
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsPartialPort
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LOAAuthorizingPerson
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LOABase64PayLoad
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LOAContentType
This parameter is reserved for internal Microsoft use.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LosingTelcoAccountId
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LosingTelcoPin
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RangeHolder
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequestedFocDate
This parameter is reserved for internal Microsoft use.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequestedFocDateBegin
PARAMVALUE: DateTimeOffset
Type: DateTimeOffset
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequestedFocDateEnd
PARAMVALUE: DateTimeOffset

Type: DateTimeOffset
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberAdditionalInfo
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberAddressLine1
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberAddressLine2
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberAddressLine3
This parameter is reserved for internal Microsoft use.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberArea
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberBuildingNumber
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberBuildingNumberSuffix
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberBusinessName
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberCity
This parameter is reserved for internal Microsoft use.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberCityAlias
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberCompanyName
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberCountry
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberCounty
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberDescription
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberFirstName
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberLastName
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberPostDirectional
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberPreDirectional
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberStreetName
This parameter is reserved for internal Microsoft use.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberStreetSuffix
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberZipCode
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumberRanges
PARAMVALUE: String[][]

Type: String[][]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumbers
This parameter is reserved for internal Microsoft use.

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

New-CsOnlinePSTNGateway
In ths Article

Creates a new Session Border Controller (SBC ) Configuration that describes the settings for the peer entity. This
cmdlet was introduced with Microsoft Phone System Direct Routing.

Syntax
New-CsOnlinePSTNGateway [-Tenant <System.Guid>] -SipSignallingPort <Int32> [-CodecPriority <String>]
[-ExcludedCodecs <String>] [-FailoverTimeSeconds <Int32>] [-ForwardCallHistory <Boolean>]
[-ForwardPai <Boolean>] [-SendSipOptions <Boolean>] [-MaxConcurrentSessions <System.Int32>]
[-Enabled <Boolean>] [-MediaBypass <Boolean>] [-GatewaySiteId <String>] [-GatewaySiteLbrEnabled <Boolean>] [-
Identity] <XdsGlobalRelativeIdentity> [-InMemory] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

New-CsOnlinePSTNGateway [-Tenant <System.Guid>] -Fqdn <String> -SipSignallingPort <Int32>


[-CodecPriority <String>] [-ExcludedCodecs <String>] [-FailoverTimeSeconds <Int32>]
[-ForwardCallHistory <Boolean>] [-ForwardPai <Boolean>] [-SendSipOptions <Boolean>]
[-MaxConcurrentSessions <System.Int32>] [-Enabled <Boolean>] [-MediaBypass <Boolean>] [-GatewaySiteId
<String>] [-GatewaySiteLbrEnabled <Boolean>] [-InMemory] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Use this cmdlet to create a new Session Border Controller (SBC ) configuration. Each configuration contains specific
settings for an SBC. These settings configure such entities as the SIP signaling port, whether media bypass is
enabled on this SBC, will the SBC send SIP Options, and specify the limit of maximum concurrent sessions. The
cmdlet also lets the administrator drain the SBC by setting parameter -Enabled to $true or $false state. When the
Enabled parameter is set to $false, the SBC will continue existing calls, but all new calls will be routed to another
SBC in a route (if one exists).

Examples
Example 1

PS C:\> New-CsOnlinePSTNGateway -FQDN sbc.contoso.com -SIPSignallingPort 5061

This example creates an SBC with FQDN sbc.contoso.com and signaling port 5061. All others parameters will stay
default. Note the SBC will be in the disabled state.
Example 2

PS C:\> New-CsOnlinePSTNGateway -FQDN sbc.contoso.com -SIPSignallingPort 5061 -ForwardPAI $true -Enabled $true

This example creates an SBC with FQDN sbc.contoso.com and signaling port 5061. For each outbound to SBC
session, the Direct Routing interface will report in P -Asserted-Identity fields the TEL URI and SIP address of the
user who made a call. This is useful when a tenant administrator sets the identity of the caller as "Anonymous" or a
general number of the company, but for billing purposes the real identity of the user is required.

Parameters
-CodecPriority
Allows choice of codec priority when media is negotiated between Media Proxy and SBC. Default priority is
("SILKWB,SILKNB,PCMU,PCMA").

Type: String
Required: False
Position: Named
Default value: ("SILKWB,SILKNB,PCMU,PCMA")
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is
being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default
value -Enabled $false).

Type: Boolean
Required: False
Position: Named
Default value: $false
Accept pipeline input: False
Accept wildcard characters: False

-ExcludedCodecs
Allows some codecs to be excluded when media is being negotiated between Media Proxy and SBC.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FailoverTimeSeconds
When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed
to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an
organization with slow networks and slow gateway responses, that could potentially result in calls being dropped
unnecessarily. The default value is 10.

Type: Int32
Required: False
Position: Named
Default value: 10
Accept pipeline input: False
Accept wildcard characters: False

-Force

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ForwardCallHistory
Indicates whether call history information will be forwarded to the SBC. If enabled, the Office 365 PSTN Proxy
sends two headers: History-info and Referred-By. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: $false
Accept pipeline input: False
Accept wildcard characters: False

-ForwardPai
Indicates whether the P -Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header
provides a way to verify the identity of the caller. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: $false
Accept pipeline input: False
Accept wildcard characters: False

-Fqdn
Limited to 63 characters, the FQDN registered for the SBC. Copied automatically to Identity of the SBC field.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GatewaySiteId
PSTN Gateway Site Id.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GatewaySiteLbrEnabled
Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When
this parameter is enabled ($True), the SBC will report the site name as defined by the tenant administrator. On an
incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site
assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing
feature. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: $false
Accept pipeline input: False
Accept wildcard characters: False

-Identity
When creating a new SBC, the identity must be identical to the -FQDN parameter, described above. If the
parameter is not defined the Identity will be copied from the -FQDN parameter. The Identity parameter is not
mandatory.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxConcurrentSessions
Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant
administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set,
alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24
hours.
Type: System.Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediaBypass
Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC.

Type: Boolean
Required: False
Position: Named
Default value: $false
Accept pipeline input: False
Accept wildcard characters: False

-ReinviteResponseCode
If Direct Routing receives any 4xx or 6xx SIP error code in response to an outgoing Invite the call is considered
completed by default. (Outgoing in this context is a call from a Teams client to the PSTN with traffic flow: Teams
Client -> Direct Routing -> SBC -> Telephony network). Setting the SIP codes in this parameter forces Direct
Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the
user). Find more information in the "Reference" section of "Phone System Direct Routing" documentation.

Type: Int
Required: False
Position: Named
Default value: 408, 503, 504
Accept pipeline input: False
Accept wildcard characters: False

-SendSipOptions
Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the
Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: $true
Accept pipeline input: False
Accept wildcard characters: False

-SipSignallingPort
Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS )
protocol. Must be value between 1 and 65535.

Type: Int32
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Set-CsOnlinePSTNGateway
Get-CsOnlinePSTNGateway
Remove-CsOnlinePSTNGateway
minutes to read • Edit Online

New-CsOnlineSchedule
In ths Article

Use the New -CsOnlineSchedule cmdlet to create a new schedule.

Syntax
New-CsOnlineSchedule -Name <String> -WeeklyRecurrentSchedule [-MondayHours <List>] [-TuesdayHours <List>] [-
WednesdayHours <List>] [-ThursdayHours <List>] [-FridayHours <List>] [-SaturdayHours <List>] [-SundayHours
<List>] [-Complement] [-Tenant <Guid>] [-CommonParameters]

New-CsOnlineSchedule -Name <String> -FixedSchedule [-DateTimeRanges <List>] [-Tenant <Guid>] [-


CommonParameters]

Description
The New -CsOnlineSchedule cmdlet creates a new schedule for the Organizational Auto Attendant (OAA) service.
The OAA service uses schedules to conditionally execute call flows when a specific schedule is in effect.
NOTE
The type of the schedule cannot be altered after the schedule is created.
Currently, only two types of schedules can be created: WeeklyRecurrentSchedule or FixedSchedule.
The schedule types are mutually exclusive. So a weekly recurrent schedule cannot be a fixed schedule and vice
versa.
For a weekly recurrent schedule, at least one day should have time ranges specified.
You can create a new time range by using New -CsOnlineTimeRange cmdlet.
A fixed schedule can be created without any date-time ranges. In this case, it would never be in effect.
For a fixed schedule, at most 10 date-time ranges can be specified.
You can create a new date-time range for a fixed schedule by using the New -CsOnlineDateTimeRange cmdlet.
The return type of this cmdlet composes a member for the underlying type/implementation. For example, in case of
the weekly recurrent schedule, you can modify Monday’s time ranges through the
Schedule.WeeklyRecurrentSchedule.MondayHours property. Similarly, date-time ranges of a fixed schedule can be
modified by using the Schedule.FixedSchedule.DateTimeRanges property.

Examples
-------------------------- Example 1 --------------------------

$tr1 = New-CsOnlineTimeRange -Start 09:00 -End 12:00


$tr2 = New-CsOnlineTimeRange -Start 13:00 -End 17:00
$businessHours = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr1,
$tr2) -TuesdayHours @($tr1, $tr2) -WednesdayHours @($tr1, $tr2) -ThursdayHours @($tr1, $tr2) -FridayHours
@($tr1, $tr2)
This example creates a weekly recurrent schedule that is active on Monday-Friday from 9AM -12PM and 1PM -
5PM.
-------------------------- Example 2 --------------------------

$tr1 = New-CsOnlineTimeRange -Start 09:00 -End 12:00


$tr2 = New-CsOnlineTimeRange -Start 13:00 -End 17:00
$afterHours = New-CsOnlineSchedule -Name " After Hours" -WeeklyRecurrentSchedule -MondayHours @($tr1, $tr2) -
TuesdayHours @($tr1, $tr2) -WednesdayHours @($tr1, $tr2) -ThursdayHours @($tr1, $tr2) -FridayHours @($tr1,
$tr2) -Complement

This example creates a weekly recurrent schedule that is active at all times except Monday-Friday, 9AM -12PM and
1PM -5PM.
-------------------------- Example 3 --------------------------

$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017"


$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr)

This example creates a fixed schedule that is active from December 24, 2017 to December 26, 2017.
-------------------------- Example 4 --------------------------

$dtr1 = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017"


$dtr2 = New-CsOnlineDateTimeRange -Start "24/12/2018" -End "26/12/2018"
$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr1, $dtr2)

This example creates a fixed schedule that is active from December 24, 2017 to December 26, 2017 and then from
December 24, 2018 to December 26, 2018.
-------------------------- Example 5 --------------------------

$dtr1 = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017"


$dtr2 = New-CsOnlineDateTimeRange -Start "24/12/2018" -End "26/12/2018"
$notInEffectSchedule = New-CsOnlineSchedule -Name "NotInEffect" -FixedSchedule

This example creates a fixed schedule that is never active.

Parameters
-Complement
The Complement parameter indicates how the schedule is used. When Complement is enabled, the schedule is
used as the inverse of the provided configuration. For example, if Complement is enabled and the schedule only
contains time ranges of Monday to Friday from 9AM to 5PM, then the schedule is active at all times other than the
specified time ranges.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DateTimeRanges
List of date-time ranges for a fixed schedule. At most, 10 date-time ranges can be specified using this parameter.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FixedSchedule
The FixedSchedule parameter indicates that a fixed schedule is to be created.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FridayHours
List of time ranges for that day.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MondayHours
List of time ranges for that day.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The Name parameter represents a unique friendly name for the schedule.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SaturdayHours
List of time ranges for that day.
Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SundayHours
List of time ranges for that day.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ThursdayHours
List of time ranges for that day.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TuesdayHours
List of time ranges for that day.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WednesdayHours
List of time ranges for that day.
Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WeeklyRecurrentSchedule
The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. This
parameter is mandatory when a weekly recurrent schedule is to be created.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.Schedule

Related Links
New -CsOnlineTimeRange
New -CsOnlineDateTimeRange
New -CsOrganizationalAutoAttendantCallFlow
New -CsOrganizationalAutoAttendantCallHandlingAssociation
minutes to read • Edit Online

New-CsOnlineTimeRange
In ths Article

The New -CsOnlineTimeRange cmdlet creates a new time range.

Syntax
New-CsOnlineTimeRange -Start <TimeSpan> -End <TimeSpan> [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsOnlineTimeRange cmdlet creates a new time range to be used with the Organizational Auto Attendant
(OAA) service. Time ranges are used to form schedules.

NOTE
The start bound of the range must be less than its end bound.
A time range must be aligned with 30/60-minutes boundaries.
A time range can span from one minute to 24 hours.

Examples
-------------------------- Example 1 --------------------------

$workdayTimeRange = New-CsOnlineTimeRange -Start 09:00 -End 17:00

This example creates a time range for a 9AM to 5PM work day.
-------------------------- Example 2 --------------------------

$allDayTimeRange = New-CsOnlineTimeRange -Start 00:00 -End 1.00:00

This example creates a 24-hour time range.

Parameters
-End
The End parameter represents the end bound of the time range.
Type: System.TimeSpan
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Start
The Start parameter represents the start bound of the time range.

Type: System.TimeSpan
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange
minutes to read • Edit Online

New-CsOnlineVoiceRoute
In ths Article

Creates a new online voice route. Online voice routes contain instructions that tell Skype for Business Online how
to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN ) or a
private branch exchange (PBX).

Syntax
New-CsOnlineVoiceRoute [-Tenant <Guid>] [-Description <String>] [-NumberPattern <String>]
[-OnlinePstnUsages <PSListModifier>] [-OnlinePstnGatewayList <PSListModifier>] [-Priority <Int32>]
[-Identity] <XdsGlobalRelativeIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsOnlineVoiceRoute [-Tenant <Guid>] -Name <String> [-Description <String>] [-NumberPattern <String>]


[-OnlinePstnUsages <PSListModifier>] [-OnlinePstnGatewayList <PSListModifier>] [-Priority <Int32>] [-InMemory]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Use this cmdlet to create a new online voice route. All online voice routes are created at the Global scope. However,
multiple global voice routes can be defined. This is accomplished through the Identity parameter, which requires a
unique route name.
Voice routes are associated with online voice policies through online PSTN usages. A voice route includes a regular
expression that identifies which phone numbers will be routed through a given voice route: phone numbers
matching the regular expression will be routed through this route.
This cmdlet is used when configuring Microsoft Phone System Direct Routing.

Examples
-------------------------- Example 1 --------------------------

PS C:\> New-CsOnlineVoiceRoute -Identity Route1

The command in this example creates a new online voice route with an Identity of Route1. All other properties will
be set to the default values.
-------------------------- Example 2 --------------------------

PS C:\> New-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add="Long Distance"} -OnlinePstnGatewayList


@{add="OnlinePstnGateway:sbc1.litwareinc.com"}

The command in this example creates a new online voice route with an Identity of Route1. It also adds the online
PSTN usage Long Distance to the list of usages and the service ID PstnGateway:sbc1.litwareinc.com to the list of
online PSTN gateways.
-------------------------- Example 3 --------------------------

PS C:\> $x = (Get-CsOnlinePstnUsage).Usage

New-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add=$x}

This example creates a new online voice route named Route1 and populates that route's list of PSTN usages with
all the existing usages for the organization. The first command in this example retrieves the list of global online
PSTN usages. Notice that the call to the Get-CsOnlinePstnUsage cmdlet is in parentheses; this means that we first
retrieve an object containing PSTN usage information. (Because there is only one, global, online PSTN usage, only
one object will be retrieved.) The command then retrieves the Usage property of this object. That property, which
contains a list of usages, is assigned to the variable $x. In the second line of this example, the
New-CsOnlineVoiceRoute cmdlet is called to create a new online voice route. This voice route will have an identity of
Route1. Notice the value passed to the OnlinePstnUsages parameter: @{add=$x}. This value says to add the
contents of $x, which contain the phone usages list retrieved in line 1, to the list of online PSTN usages for this
route.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of what this online voice route is for.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A name that uniquely identifies the online voice route. Voice routes can be defined only at the global scope, so the
identity is simply the name you want to give the route. (You can have spaces in the route name, for instance Test
Route, but you must enclose the full string in double quotes in the call to the New -CsOnlineVoiceRoute cmdlet.)
If Identity is specified, the Name must be left blank. The value of the Identity will be assigned to the Name.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The unique name of the voice route. If this parameter is set, the value will be automatically applied to the online
voice route Identity. You cannot specify both an Identity and a Name.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberPattern
A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern
will be routed according to the rest of the routing settings.
Default: [0-9]{10}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnlinePstnGatewayList
This parameter contains a list of online gateways associated with this online voice route. Each member of this list
must be the service Identity of the online PSTN gateway. The service Identity is a string in the format
OnlinePstnGateway:, where FQDN is the fully qualified domain name (FQDN ) of the pool or the IP address of the
server. For example, OnlinePstnGateway:redmondpool.litwareinc.com.
By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll
receive a warning message.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnlinePstnUsages
A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The
PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage
cmdlet).
By default this list is empty. However, if you leave this parameter blank when creating a new online voice route,
you'll receive a warning message.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
A number could resolve to multiple online voice routes. The priority determines the order in which the routes will
be applied if more than one route is possible.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Get-CsOnlineVoiceRoute
Set-CsOnlineVoiceRoute
Remove-CsOnlineVoiceRoute
minutes to read • Edit Online

New-CsOnlineVoiceRoutingPolicy
In ths Article

Creates a new online voice routing policy. Online voice routing policies manage online PSTN usages for Phone
System users.

Syntax
New-CsOnlineVoiceRoutingPolicy [-Tenant <Guid>] [-OnlinePstnUsages <PSListModifier>]
[-Description <String>] [-RouteType <String>] [[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Skype
for Business Online users an online voice routing policy enables those users to receive and to place phones calls to
the public switched telephone network by using your on-premises SIP trunks.
Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Skype
for Business Online or Teams. Among other things, you will also need to enable those users for Phone System and
will need to assign them an appropriate online voice policy.

Examples
-------------------------- Example 1 --------------------------

PS C:\> New-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -Name


"RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages "Long Distance"

The command shown in Example 1 creates a new online per-user voice routing policy with the Identity
RedmondOnlineVoiceRoutingPolicy. This policy is assigned a single online PSTN usage: Long Distance.
-------------------------- Example 2 --------------------------

PS C:\> New-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -Name


"RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages "Long Distance", "Local", "Internal"

Example 2 is a variation of the command shown in Example 1; in this case, however, the new policy is assigned
three online PSTN usages: Long Distance; Local; Internal. Multiple usages can be assigned simply by separating
each usage using a comma.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the
Description might include information about the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier assigned to the policy when it was created.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnlinePstnUsages
A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy.
The online PSTN usage must be an existing usage. (PSTN usages can be retrieved by calling the
Get-CsOnlinePstnUsage cmdlet.)

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RouteType
This parameter is reserved for internal Microsoft use.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Get-CsOnlineVoiceRoutingPolicy
Set-CsOnlineVoiceRoutingPolicy
Grant-CsOnlineVoiceRoutingPolicy
Remove-CsOnlineVoiceRoutingPolicy
minutes to read • Edit Online

New-CsOrganizationalAutoAttendant
In ths Article

Use the New -CsOrganizationalAutoAttendant cmdlet to create a new Auto Attendant (AA).

Syntax
New-CsOrganizationalAutoAttendant -Name <String> [-Domain <String>] [-LineUris <>] -LanguageId <String>
[-VoiceId <String>] -DefaultCallFlow <CallFlow> [-Operator <CallableEntity>] [-EnableVoiceResponse]
[-ApplicationId <Guid>] [-CallbackUri <Uri>] [-Ring <String>] [-ClientAudience <Uri>]
-TimeZoneId <String> [-CallFlows <List>] [-Schedules <List>] [-CallHandlingAssociations <List>]
[-InclusionScope <DialScope>] [-ExclusionScope <DialScope>] [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Force] [<CommonParameters>]

Description
Auto Attendants (AAs) are a key element in the Cloud PBX application. Each OAA can be associated with a phone
number that allows callers to reach specific people in the organization through a directory lookup. Alternatively, it
can route the calls to an operator, a user, another OAA, or a call queue.
You can create new OAAs by using the New -CsOrganizationalAutoAttendant cmdlet; each newly created OAA gets
assigned a random Primary (SIP ) URI that serves as the identity of the OAA.
NOTE
PrimaryUri of OAAs is a SIP URI.
The default call flow has the lowest precedence, and any custom call flow has a higher precedence and is executed if
the schedule associated with it is in effect.
Holiday call flows have higher priority than after-hours call flows. Thus, if a holiday schedule and an after-hours
schedule are both in effect at a particular time, the call flow corresponding to the holiday call flow will be rendered.
The default call flow can be used either as the 24/7 call flow if no other call flows are specified, or as the business
hours call flow if an “after hours” call flow was specified together with the corresponding schedule and call handling
association.
If a user is present in both inclusion and exclusion scopes, then exclusion scope always takes priority, i.e., the user
will not be able to be contacted through directory lookup feature.

Examples
-------------------------- Example 1 --------------------------
$lineUri = [System.Uri] "tel:+11098765432"

$operatorUri = "sip:operator@contoso.com"
$operatorEntity = New-CsOrganizationalAutoAttendantCallableEntity -Identity $operatorUri -Type User

$greetingPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!"


$menuOptionZero = New-CsOrganizationalAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse
Tone0
$menuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter
it now, followed by the pound sign or press 0 to reach the operator."
$defaultMenu = New-CsOrganizationalAutoAttendantMenu -Name "Default menu" -Prompts @($menuPrompt) -MenuOptions
@($menuOptionZero) -EnableDialByName
$defaultCallFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "Default call flow" -Greetings
@($greetingPrompt) -Menu $defaultMenu

$afterHoursGreetingPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!


Unfortunately, you have reached us outside of our business hours. We value your call please call us back Monday
to Friday, between 9 A.M. to 12 P.M. and 1 P.M. to 5 P.M. Goodbye!"
$automaticMenuOption = New-CsOrganizationalAutoAttendantMenuOption -Action Disconnect -DtmfResponse Automatic
$afterHoursMenu=New-CsOrganizationalAutoAttendantMenu -Name "After Hours menu" -MenuOptions
@($automaticMenuOption)
$afterHoursCallFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "After Hours call flow" -Greetings
@($afterHoursGreetingPrompt) -Menu $afterHoursMenu

$timerange1 = New-CsOnlineTimeRange -Start 09:00 -end 12:00


$timerange2 = New-CsOnlineTimeRange -Start 13:00 -end 17:00
$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours Schedule" -WeeklyRecurrentSchedule -MondayHours
@($timerange1, $timerange2) -TuesdayHours @($timerange1, $timerange2) -WednesdayHours @($timerange1,
$timerange2) -ThursdayHours @($timerange1, $timerange2) -FridayHours @($timerange1, $timerange2) -Complement

$afterHoursCallHandlingAssociation = New-CsOrganizationalAutoAttendantCallHandlingAssociation -Type AfterHours


-ScheduleId $afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id

$inclusionScopeGroupIds = @(“4c3053a6-20bf-43df-bf7a-156124168856”)
$inclusionScope = New-CsOrganizationalAutoAttendantDialScope -GroupScope -GroupIds $inclusionScopeGroupIds

$o=New-CsOrganizationalAutoAttendant -Name "Main auto attendant" -LineUris @($lineUri) -DefaultCallFlow


$defaultCallFlow -EnableVoiceResponse -Schedules @($afterHoursSchedule) -CallFlows @($afterHoursCallFlow) -
CallHandlingAssociations @($afterHoursCallHandlingAssociation) -Language "en-US" -TimeZoneId "UTC" -Operator
$operatorEntity -InclusionScope $inclusionScope

This example creates a new OAA named Main auto attendant that has the following properties:
A phone number is assigned.
It sets a default call flow.
It sets an after-hours call flow.
It enables voice response.
The default language is en-US.
The time zone is set to UTC.
An inclusion scope is specified.
-------------------------- Example 2 --------------------------
$lineUri = [System.Uri] "tel:+11098765432"

$operatorUri = "sip:operator@contoso.com"
$operatorEntity = New-CsOrganizationalAutoAttendantCallableEntity -Identity $operatorUri -Type User

$dcfGreetingPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!"


$dcfMenuOptionZero = New-CsOrganizationalAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse
Tone0
$dcfMenuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name,
enter it now, followed by the pound sign or press 0 to reach the operator."
$dcfMenu=New-CsOrganizationalAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -MenuOptions
@($dcfMenuOptionZero) -EnableDialByName
$defaultCallFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "Default call flow" -Greetings
@($dcfGreetingPrompt) -Menu $dcfMenu

$afterHoursGreetingPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!


Unfortunately, you have reached us outside of our business hours. We value your call please call us back Monday
to Friday, between 9 A.M. to 12 P.M. and 1 P.M. to 5 P.M. Goodbye!"
$afterHoursMenuOption = New-CsOrganizationalAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse
Automatic
$afterHoursMenu=New-CsOrganizationalAutoAttendantMenu -Name "After Hours menu" -MenuOptions
@($afterHoursMenuOption)
$afterHoursCallFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "After Hours call flow" -Greetings
@($afterHoursGreetingPrompt) -Menu $afterHoursMenu

$timerange1 = New-CsOnlineTimeRange -Start 09:00 -end 12:00


$timerange2 = New-CsOnlineTimeRange -Start 13:00 -end 17:00
$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours Schedule" -WeeklyRecurrentSchedule -MondayHours
@($timerange1, $timerange2) -TuesdayHours @($timerange1, $timerange2) -WednesdayHours @($timerange1,
$timerange2) -ThursdayHours @($timerange1, $timerange2) -FridayHours @($timerange1, $timerange2) -Complement

$afterHoursCallHandlingAssociation = New-CsOrganizationalAutoAttendantCallHandlingAssociation -Type AfterHours


-ScheduleId $afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id

$christmasGreetingPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed


for Christmas from December 24 to December 26. Please call back later."
$christmasMenuOption = New-CsOrganizationalAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse
Automatic
$christmasMenu = New-CsOrganizationalAutoAttendantMenu -Name "Christmas Menu" -MenuOptions
@($christmasMenuOption)
$christmasCallFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "Christmas" -Greetings
@($christmasGreetingPrompt) -Menu $christmasMenu

$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017"


$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr)

$christmasCallHandlingAssociation = New-CsOrganizationalAutoAttendantCallHandlingAssociation -Type Holiday -


ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id

$o=New-CsOrganizationalAutoAttendant -Name "Main auto attendant" -LineUris @($lineUri) -DefaultCallFlow


$defaultCallFlow -EnableVoiceResponse -Schedules @($afterHoursSchedule, $christmasSchedule) -CallFlows
@($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation,
$christmasCallHandlingAssociation) -Language "en-US" -TimeZoneId "UTC" -Operator $operatorEntity

This example creates a new OAA named Main auto attendant that has the following properties:
A phone number is assigned.
It sets a default call flow.
It sets an after-hours call flow.
It sets a call flow for Christmas holiday.
It enables voice response.
The default language is en-US.
The time zone is set to UTC.
Parameters
-ApplicationId
Specifies a custom application ID to use for OAAs. This parameter is reserved for Microsoft internal use only.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallbackUri
Specifies a custom Callback URI for OAAs. This parameter is reserved for Microsoft internal use only.

Type: Uri
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallFlows
The CallFlows parameter represents call flows, which are required if they are referenced in the Associations
parameter.
You can create CallFlows by using the New -CsOrganizationalAutoAttendantCallFlow cmdlet.

Type: List
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallHandlingAssociations
The CallHandlingAssociations parameter represents the call handling associations. The OAA service uses call
handling associations to determine which call flow to execute when a specific schedule is in effect.
You can create CallHandlingAssociations by using the New -
CsOrganizationalAutoAttendantCallHandlingAssociation cmdlet.

Type: List
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientAudience
Specifies a custom client audience for OAAs. This parameter is reserved for Microsoft internal use only.
Type: Uri
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultCallFlow
The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during
business hours).
You can create the DefaultCallFlow by using the New -CsOrganizationalAutoAttendantCallFlow cmdlet.

Type: CallFlow
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
The Domain parameter represents the domain part of the Primary (SIP ) URI that is generated for the OAA. The
domain name is validated against the list of domains that are configured by the tenant. If not provided, then a
domain is randomly chosen for primary URI.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableVoiceResponse
The EnableVoiceResponse parameter indicates whether voice response for OAA is enabled.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExclusionScope
Specifies the users to which call transfers are not allowed through directory lookup feature. If not specified, no user
in the organization is excluded from directory lookup.
Dial scopes can be created by using the New -CsOrganizationalAutoAttendantDialScope cmdlet.
Type: DialScope
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InclusionScope
Specifies the users to which call transfers are allowed through directory lookup feature. If not specified, all users in
the organization can be reached through directory lookup.
Dial scopes can be created by using the New -CsOrganizationalAutoAttendantDialScope cmdlet.

Type: DialScope
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LanguageId
The LanguageId parameter is the language that is used to read text-to-speech (TTS ) prompts.
You can query the supported languages using the Get-CsOrganizationalAutoAttendantSupportedLanguage
cmdlet.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineUris
The LineUris parameter represents PSTN numbers that are assigned to the OAA. PSTN numbers must be your
Service number or Toll-free number; User PSTN Numbers (normal numbers) cannot be added to Auto Attendant.
Each Uniform Resource Identifier (URI) must be specified by using the following format: the tel: prefix followed by
a plus sign, followed by the country/region calling code, area code, and phone number (using only digits, no blank
spaces, periods, or hyphens). For example: -LineUris [System.Uri]"tel:+4255551219" .
Note: Only PSTN numbers that are acquired through or migrated to Skype for Business Online are supported.

Type: List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The Name parameter is a friendly name that is assigned to the OAA.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Operator
The Operator parameter represents the SIP address or PSTN number of the operator.
You can create callable entities by using the New -CsOrganizationalAutoAttendantCallableEntity cmdlet.

Type: CallableEntity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Ring
Specifies a custom ring for OAAs. This parameter is reserved for Microsoft internal use only.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Schedules
The Schedules parameter reflects schedules that are associated with the OAA. Schedules are required if they are
referenced in the CallHandlingAssociations parameter.
You can create schedules by using the New -CsOnlineSchedule cmdlet.

Type: List
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TimeZoneId
The TimeZoneId parameter represents the OAA time zone. All schedules are evaluated based on this time zone.
You can query the supported timezones using the Get-CsOrganizationalAutoAttendantSupportedTimeZone
cmdlet.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VoiceId
The VoiceId parameter represents the voice that is used to read text-to-speech (TTS ) prompts.
You can query the supported voices by using the Get-CsOrganizationalAutoAttendantSupportedLanguage cmdlet.
You can determine the default voice for a language by issuing the following command:
$language = Get-CsOrganizationalAutoAttendantSupportedLanguage -Identity "en-US"` $defaultVoice =
$language.Voices[0].Gender

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.OAA.Models.OrgAutoAttendant

Related Links
New -CsOrganizationalAutoAttendantCallFlow
New -CsOrganizationalAutoAttendantCallHandlingAssociation
New -CsOrganizationalAutoAttendantCallableEntity
New -CsOnlineSchedule
Get-CsOrganizationalAutoAttendantSupportedLanguage
Get-CsOrganizationalAutoAttendantSupportedTimeZone
minutes to read • Edit Online

New-CsOrganizationalAutoAttendantCallableEntity
In ths Article

The New -CsOrganizationalAutoAttendantCallableEntity cmdlet lets you create a callable entity.

Syntax
New-CsOrganizationalAutoAttendantCallableEntity -Identity <String> -Type <User | OrganizationalAutoAttendant |
HuntGroup> [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsOrganizationalAutoAttendantCallableEntity cmdlet lets you create a callable entity for use with call
transfers from the Auto Attendant service. Callable entities can be created using either SIP or TEL URIs and can
refer to any of the following entities:
User
OrganizationalAutoAttendant
HuntGroup

Examples
-------------------------- Example 1 --------------------------

$callableEntity = New-CsOrganizationalAutoAttendantCallableEntity -Identity sip:operator@contoso.com -Type User

This example creates a user callable entity.


-------------------------- Example 2 --------------------------

$callableEntity = New-CsOrganizationalAutoAttendantCallableEntity -Identity "tel:+1234567890" -Type


OrganizationalAutoAttendant

This example creates an auto attendant callable entity.

Parameters
-Identity
The Identity parameter represents the ID of the callable entity; this can be either a SIP URI or a TEL URI.
Only the SIP URIs of users that have Enterprise Voice enabled are supported.
Only PSTN numbers that are acquired and assigned through Skype for Business Online are supported.
SIP URIs can be used for a user only.
TEL URIs can be a user, an auto attendant, or a hunt group (call queue).
Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
The Type parameter represents the type of the callable entity, which can be any of the following:
User
OrganizationalAutoAttendant
Huntgroup

Type: Object
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity
minutes to read • Edit Online

New-CsOrganizationalAutoAttendantCallFlow
In ths Article

Use the New -CsOrganizationalAutoAttendantCallFlow cmdlet to create a new call flow.

Syntax
New-CsOrganizationalAutoAttendantCallFlow -Name <String> [-Greetings <List>] -Menu <Menu> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
The New -CsOrganizationalAutoAttendantCallFlow cmdlet creates a new call flow for use with the Auto Attendant
(AA) service. The OAA service uses the call flow to handle inbound calls by playing a greeting (if present), and
provide callers with actions through a menu.

Examples
-------------------------- Example 1 --------------------------

$menuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter


it now, followed by the pound sign."
$menu = New-CsOrganizationalAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -EnableDialByName
$callFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu

This example creates a new call flow that renders the “Default Menu” menu.
-------------------------- Example 2 --------------------------

$menuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter


it now, followed by the pound sign."
$menu = New-CsOrganizationalAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName
$greeting = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!"
$callFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -Greetings
$greeting

This example creates a new call flow that plays a greeting before rendering the “Default Menu” menu.

Parameters
-Greetings
If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow’s
menu is rendered.
You can create prompts by using the New -CsOrganizationalAutoAttendantPrompt cmdlet.
Type: List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Menu
The Menu parameter identifies the menu to render when the call flow is executed.
You can create a new menu by using the New -CsOrganizationalAutoAttendantMenu cmdlet.

Type: Menu
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The Name parameter represents a unique friendly name for the call flow.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow

Related Links
New -CsOrganizationalAutoAttendantMenu
New -CsOrganizationalAutoAttendantPrompt
minutes to read • Edit Online

New-
CsOrganizationalAutoAttendantCallHandlingAssociation
In ths Article

Use the New -CsOrganizationalAutoAttendantCallHandlingAssociation cmdlet to create a new call handling


association.

Syntax
New-CsOrganizationalAutoAttendantCallHandlingAssociation -CallFlowId <String> -ScheduleId <String> -Type
<AfterHours | Holiday> [-Disable] [-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsOrganizationalAutoAttendantCallHandlingAssociation cmdlet creates a new call handling association
to be used with the Auto Attendant (AA) service. The OAA service uses call handling associations to determine
which call flow to execute when a specific schedule is in effect.

Examples
-------------------------- Example 1 --------------------------

$tr = New-CsOnlineTimeRange -Start 09:00 -End 17:00


$schedule = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr)
$scheduleId = $schedule.Id

$menuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter


it now, followed by the pound sign."
$menu = New-CsOrganizationalAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName
$callFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu
$callFlowId = $callFlow.Id

$callHandlingAssociation = New-CsOrganizationalAutoAttendantCallHandlingAssociation -Type AfterHours -


ScheduleId $scheduleId -CallFlowId $callFlowId

This example creates a new after-hours call handling association.


-------------------------- Example 2 --------------------------
$tr = New-CsOnlineTimeRange -Start 09:00 -End 17:00
$schedule = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr)
$scheduleId = $schedule.Id

$menuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter


it now, followed by the pound sign."
$menu = New-CsOrganizationalAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName
$callFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu
$callFlowId = $callFlow.Id

$disabledCallHandlingAssociation = New-CsOrganizationalAutoAttendantCallHandlingAssociation -Type AfterHours -


ScheduleId $scheduleId -CallFlowId $callFlowId -Disable

This example creates a disabled after-hours call handling association.


-------------------------- Example 3 --------------------------

$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017"


$schedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr)
$scheduleId = $schedule.Id

$menuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "We are closed for Christmas. Please


call back later."
$menuOption = New-CsOrganizationalAutoAttendantMenuOption -DtmfResponse Automatic -Action DisconnectCall
$menu = New-CsOrganizationalAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($menuOption)
$callFlow = New-CsOrganizationalAutoAttendantCallFlow -Name "Christmas" -Greetings @($greeting) -Menu $menu
$callFlowId = $callFlow.Id

$callHandlingAssociation = New-CsOrganizationalAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId


$scheduleId -CallFlowId $callFlowId

This example creates a holiday call handling association.

Parameters
-CallFlowId
The CallFlowId parameter represents the call flow to be associated with the schedule.
You can create a call flow by using the New -CsOrganizationalAutoAttendantCallFlow cmdlet.

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Disable
The Disable parameter, if set, establishes that the call handling association is created as disabled. This parameter
can only be used when the Type parameter is set to AfterHours.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ScheduleId
The ScheduleId parameter represents the schedule to be associated with the call flow.
You can create a schedule by using the New -CsOnlineSchedule cmdlet

Type: System.String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
The Type parameter represents the type of the call handling association. Currently, only AfterHours and Holiday are
supported.

Type: Object
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.OAA.Models.CallHandlingAssociation

Related Links
New -CsOrganizationalAutoAttendantCallFlow
New -CsOnlineSchedule
minutes to read • Edit Online

New-CsOrganizationalAutoAttendantDialScope
In ths Article

Use New -CsOrganizationalAutoAttendantDialScope cmdlet to create dial-scopes for use with Auto Attendant (AA)
service.

Syntax
New-CsOrganizationalAutoAttendantDialScope -GroupScope -GroupIds <List> [-Tenant <Guid>] [<CommonParameters>]

Description
This cmdlet creates a new dial-scope to be used with Auto Attendant (AA) service. OAAs use dial-scopes to restrict
the scope of call transfers that can be made through directory lookup feature.
NOTE
The returned dial-scope model composes a member for the underlying type/implementation, e.g. in case of the
group-based dial scope, in order to modify its Group IDs, you can access them through
DialScope.GroupScope.GroupIds .

Examples
-------------------------- Example 1 --------------------------

$groupIds = @("00000000-0000-0000-0000-000000000000")
$dialScope = New-CsOrganizationalAutoAttendantDialScope -GroupScope -GroupIds $groupIds

In Example 1, the New -CsOrganizationalAutoAttendantDialScope cmdlet is used to create a dial-scope with a


group whose id is 00000000-0000-0000-0000-000000000000.

Parameters
-GroupIds
Refers to the IDs of the groups that are to be included in the dial-scope.
Group IDs can be obtained by using the Find-CsGroup cmdlet.

Type: System.Collections.Generic.List
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-GroupScope
Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.OAA.Models.DialScope
minutes to read • Edit Online

New-CsOrganizationalAutoAttendantMenu
In ths Article

The New -CsOrganizationalAutoAttendantMenu cmdlet creates a new menu.

Syntax
New-CsOrganizationalAutoAttendantMenu -Name <String> -MenuOptions <List> [-Prompts <List>] [-EnableDialByName]
[-Tenant <Guid>] [<CommonParameters>]

Description
The New -CsOrganizationalAutoAttendantMenu cmdlet creates a new menu for the Auto Attendant (AA) service.
The OAA service uses menus to provide callers with choices, and then takes action based on the selection.

Examples
-------------------------- Example 1 --------------------------

$menuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter


it now, followed by the pound sign."
$menu = New-CsOrganizationalAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -EnableDialByName

This example creates a new menu that allows the caller to reach a target by name.
-------------------------- Example 2 --------------------------

$menuOptionZero = New-CsOrganizationalAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse


Tone0
$menuPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter
it now, followed by the pound sign. For operator, press zero."
$menu = New-CsOrganizationalAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -MenuOptions
@($menuOptionZero) -EnableDialByName

This example creates a new menu that allows the caller to reach a target by name or the operator by pressing the 0
key.

Parameters
-EnableDialByName
The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the
party.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MenuOptions
The MenuOptions parameter is a list of menu options for this menu. These menu options specify what action to
take when the user sends a particular input.
You can create menu options by using the New -CsOrganizationalAutoAttendantMenuOption cmdlet.

Type: System.Collections.Generic.List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The Name parameter represents a friendly name for the menu.

Type: System.String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Prompts
The Prompts parameter reflects the prompts to play when the menu is activated.
You can create new prompts by using the New -CsOrganizationalAutoAttendantPrompt cmdlet.

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None
Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.Menu

Related Links
New -CsOrganizationalAutoAttendantMenuOption
New -CsOrganizationalAutoAttendantPrompt
minutes to read • Edit Online

New-CsOrganizationalAutoAttendantMenuOption
In ths Article

Use the New -CsOrganizationalAutoAttendantMenuOption cmdlet to create a new menu option.

Syntax
New-CsOrganizationalAutoAttendantMenuOption -Action <ActionType> -DtmfResponse <DtmfTone> [-VoiceResponses
<List>]
[-CallTarget <CallableEntity>] [-Tenant <Guid>] [-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
The New -CsOrganizationalAutoAttendantMenuOption cmdlet creates a new menu option for the Auto Attendant
(AA) service. The OAA service uses the menu options to respond to a caller with the appropriate action.

Examples
-------------------------- Example 1 --------------------------

$menuOption = New-CsOrganizationalAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0

This example creates a menu option to call the operator when the 0 key is pressed.
-------------------------- Example 2 --------------------------

$troubleShootUri = "sip:troubleShoot@contoso.com"
$troubleShootEntity = New-CsOrganizationalAutoAttendantCallableEntity -Identity $troubleShootUri -Type
OrganizationalAutoAttendant
$menuOption = New-CsOrganizationalAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone1 -
VoiceResponses "Sales" -CallTarget $troubleShootEntity

This example creates a menu option to transfer the call to an auto attendant when the caller speaks the word
"Sales" or presses the 1 key.

Parameters
-Action
The Action parameter represents the action to be taken when the menu option is activated. The Action must be set
to one of the following values:
DisconnectCall - The call is disconnected.
TransferCallToOperator - the call is transferred to the operator.
TransferCallToTarget - The call is transferred to the menu option’s call target.
Type: ActionType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallTarget
The CallTarget parameter represents the target for call transfer after the menu option is selected.
CallTarget is required if the action of the menu option is TransferCallToTarget.
Use the New -CsOrganizationalAutoAttendantCallableEntity cmdlet to create new callable entities.

Type: CallableEntity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DtmfResponse
The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option.
The DtmfResponse must be set to one of the following values:
Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9.
Automatic - The action is executed without user response.

Type: DtmfTone
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VoiceResponses
The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are
enabled for the auto attendant.
Voice responses are currently limited to one voice response per menu option.
Type: List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption

Related Links
New -CsOrganizationalAutoAttendantCallableEntity
minutes to read • Edit Online

New-CsOrganizationalAutoAttendantPrompt
In ths Article

Use the New -CsOrganizationalAutoAttendantPrompt cmdlet to create a new prompt.

Syntax
New-CsOrganizationalAutoAttendantPrompt -AudioFilePrompt <AudioFile> [-Tenant <Guid>]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

New-CsOrganizationalAutoAttendantPrompt -ActiveType <PromptType> [-AudioFilePrompt <AudioFile>]


[-TextToSpeechPrompt <String>] [-Tenant <Guid>] [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt <String> [-Tenant <Guid>]


[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
The New -CsOrganizationalAutoAttendantPrompt cmdlet creates a new prompt for the Auto Attendant (AA)
service. A prompt is either an audio file that is played, or text that is read aloud to give callers additional
information. A prompt can be disabled by setting the ActiveType to None.

Examples
-------------------------- Example 1 --------------------------

$ttsPrompt = New-CsOrganizationalAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!"

This example creates a new prompt that reads the supplied text.
-------------------------- Example 2 --------------------------

$content = Get-Content "C:\Media\Welcome.wav" -Encoding byte -ReadCount 0


$audioFile = New-CsOnlineAudioFile -FileName "hello.wav" -Content $content
$audioFilePrompt = New-CsOrganizationalAutoAttendantPrompt -AudioFilePrompt $audioFile

This example creates a new prompt that plays the selected audio file.
-------------------------- Example 3 --------------------------
$content = Get-Content "C:\Media\Welcome.wav" -Encoding byte -ReadCount 0
$audioFile = New-CsOnlineAudioFile -FileName "hello.wav" -Content $content
$dualPrompt = New-CsOrganizationalAutoAttendantPrompt -ActiveType AudioFile -AudioFilePrompt $audioFile -
TextToSpeechPrompt "Welcome to Contoso!"

This example creates a new prompt that has both audio file and text-to-speech data, but will play the audio file
when the prompt is activated (rendered).

Parameters
-ActiveType
PARAMVALUE: None | TextToSpeech | AudioFile
The ActiveType parameter identifies the active type (modality) of the OAA prompt. It can be set to None (the
prompt is disabled), TextToSpeech (text-to-speech is played when the prompt is rendered) or AudioFile (audio file
data is played when the prompt is rendered).
This is explicitly required if both Audio File and TTS prompts are specified. Otherwise, it is inferred.

Type: PromptType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioFilePrompt
The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered).
This parameter is required when audio file prompts are being created. You can create audio files by using the New -
CsOnlineAudioFile cmdlet.

Type: AudioFile
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TextToSpeechPrompt
The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS ) prompt that is to be read when the prompt
is activated.
This parameter is required when text to speech prompts are being created.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt

Related Links
New -CsOnlineAudioFile
minutes to read • Edit Online

New-CsOutboundCallingNumberTranslationRule
In ths Article

Creates a new outbound calling number translation rule. An outbound calling number translation rule converts the
E.164 phone numbers used by Skype for Business Server to a format that can be used by trunking peers that do
not support E.164 numbers. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsOutboundCallingNumberTranslationRule [-Identity] <XdsIdentity> [-Confirm] [-Description <String>]
[-Force] [-InMemory] [-Pattern <String>] [-Priority <Int32>] [-Translation <String>] [-WhatIf]
[<CommonParameters>]

New-CsOutboundCallingNumberTranslationRule -Name <String> -Parent <String> [-Confirm] [-Description <String>]


[-Force] [-InMemory] [-Pattern <String>] [-Priority <Int32>] [-Translation <String>] [-WhatIf]
[<CommonParameters>]

Description
Outbound calling number translation rules convert the E.164 phone numbers used by Skype for Business to a
format that can be used by trunking peers that do not support E.164 numbers; when you create a translation rule
you supply a regular expression representing the outbound E.164 number (the Pattern) as well as a regular
expression representing the converted number (the Translation).
Outbound calling number translation rules must be bound to a collection of trunk configuration settings; when you
create a new translation rule you must specify both the Identity of the trunking configuration settings and a name
for the new rule (for example, site:Redmond/RedmondTranslationRule). Note that the trunking configuration
settings do not necessarily have to exist at the time you create a new rule. For example, suppose you create the rule
site:Redmond/RedmondTranslationRule but no trunk configuration settings have been created for the Redmond
site. If the Redmond site is a valid site, trunk configuration settings will automatically be created for the site and the
new translation rule will be assigned to that collection of settings. However, your command will fail if the Redmond
site does not exist.
Skype for Business Server Control Panel: To create a new outbound calling number translation rule using the Skype
for Business Server Control Panel, click Voice Routing then click Trunk Configuration, and then double-click the
appropriate item in the Name column. In the Edit Trunk Configuration dialog box scroll down to the section labeled
Calling number translation rules and then click New.

Examples
-------------------------- Example 1 --------------------------

New-CsOutboundCallingNumberTranslationRule -Parent "site:Redmond" -Name SevenDigit -Description "Converts a


dialed number to seven digits" -Pattern '^\+1206(\d{7})$' -Translation '$1'
The command shown in Example 1 creates a new outbound calling number translation rule that converts an E.164
number that begins with the string value +1206 (for example, +12065551219) to a seven-digit value (for example,
5551219, stripping off the +1206).

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional text to accompany a translation rule. This description can be used to
help administrators clearly identify the purpose of the rule.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new translation rule. Names are composed of the scope (parent), a "/" character, and a
unique name within that scope. For example, a rule named RedmondDialing created for the Redmond site would
have an Identity that looked like this:
-Identity "site:Redmond/RedmondDialing"

If you use the Identity parameter then your command cannot contain either the Parent or the Name parameter.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name for the new translation rule; names must be unique for the given scope. For example:
-Name "RedmondDialing"

Any time you use the Name parameter you must also use the Parent parameter. The Name parameter cannot be
used in the same command as the Identity parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Scope at which the new translation rule will be configured. To configure a rule at the global scope, use this syntax:
-Parent "global"

To configure a rule at the site scope, use syntax similar to this:


-Parent "site:Redmond"

To configure a rule at the service scope (for the PstnGateway service only) use syntax like this:
-Parent "service:PstnGateway:192.168.0.100"

Any time you use the Parent parameter you must also use the Name parameter. The Parent parameter cannot be
used in the same command as the Identity parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pattern
A regular expression representing the number pattern to which the Translation will be applied.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
Priority assigned to the rule. If a number matches the Pattern of more than one outbound translation rule, rules are
applied in priority order. Rules are processed in order of their assigned priority; the first rule to be processed has a
priority of 0; the second rule to be processed has a priority of 1; and so on.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Translation
A regular expression that will be applied to the number matching the Pattern to prepare that number for outbound
calling.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsOutboundCallingNumberTranslationRule cmdlet does not accept pipelined data.

Outputs
The New -CsOutboundCallingNumberTranslationRule cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule#Decorated
object.

Related Links
Get-CsOutboundCallingNumberTranslationRule
Remove-CsOutboundCallingNumberTranslationRule
Set-CsOutboundCallingNumberTranslationRule
minutes to read • Edit Online

New-CsOutboundTranslationRule
In ths Article

Creates a new outbound translation rule. An outbound translation rule converts phone numbers to the local dialing
format for interaction with private branch exchange (PBX) systems. This cmdlet was introduced in Lync Server
2010.

Syntax
New-CsOutboundTranslationRule [-Identity] <XdsIdentity> [-Description <String>] [-Pattern <String>]
[-Priority <Int32>] [-Translation <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsOutboundTranslationRule -Parent <String> -Name <String> [-Description <String>] [-Pattern <String>]


[-Priority <Int32>] [-Translation <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call this cmdlet to create a new outbound translation rule. Skype for Business Server normalizes phone numbers to
E.164 format. However, many private branch exchange (PBX) systems aren't able to work with this format.
Outbound translations rules translate the number to the local dialing format prior to sending the number to the
Mediation Server or gateway.
Each outbound translation rule is associated with a trunk configuration. More than one outbound translation rule
can be associated with each configuration. Therefore, the Identity for each rule consists of a scope along with a
name that is unique within the scope (in the format scope/name, for example site:Redmond/OBR1). The rule is
automatically associated with the trunk configuration with the same scope. If you call the New -
CsOutboundTranslationRule cmdlet and specify a scope at which a trunk configuration has not yet been defined,
the trunk configuration will be created with the given scope, the outbound translation rule, and default values.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsOutboundTranslationRule -Identity "site:Redmond/Prefix Redmond"

This example creates a new outbound translation rule for site Redmond named Prefix Redmond. Because no other
parameters are specified, the rule is created with the default values. Notice that the value passed to the Identity
parameter is in double-quotes; this is because the name of the rule (Prefix Redmond) contains a space. If the rule
name does not contain a space you don't need to enclose the Identity in double quotes.
-------------------------- EXAMPLE 2 --------------------------

New-CsOutboundTranslationRule -Parent global -Name SeattleSevenDigit -Description "Convert to seven digits" -


Pattern '^\+1425(\d{7})$' -Translation '$1'
This example creates a new global outbound translation rule named SeattleSevenDigit. (Note: Rather than
specifying a Parent and a Name, we could have instead created this same rule by specifying
-Identity global/SeattleSevenDigit. ) We've included a Description explaining that this rule is for translating
numbers in E.164 format to a seven-digit format. In addition, Pattern and Translation values have been specified.
These values translate an E.164 number (in this case 12 digits beginning with +1425), specified by the regular
expression in the Pattern, to a seven-digit number by removing the first five digits. For example, the number
+14255551212 would be translated to the number 5551212.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of the outbound translation rule. This description will help identify the purpose of the rule.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the outbound translation rule. The Identity includes the scope at which the rule is applied
and the name of the rule, and must be at the global, site, or service (PSTNGateway only) scope. For example,
site:Redmond/OutboundRule1 and PstnGateway:Redmond.litwareinc.com/OutboundRule2.
If the Identity parameter is specified, you cannot specify values for the Name or Parent parameters.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The name of the outbound translation rule. If no Name is supplied, an Identity consisting of a scope and name must
be specified. If a Name is supplied, the Parent parameter is also required, but an Identity cannot be specified.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
The scope of the outbound translation rule. If a value is specified for this parameter, a value must also be specified
for the Name parameter. However, the Identity parameter cannot be specified. If the Parent and Name parameters
aren't specified, the Identity must be.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pattern
A regular expression representing the number pattern to which the Translation will be applied.
Default: ^+(\d*)$

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Priority
If a number matches the Pattern of more than one outbound translation rule, rules are applied in priority order. Use
this parameter to assign a priority to the rule.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Translation
A regular expression that will be applied to the number matching the Pattern to prepare that number for outbound
routing.
Default: $1

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule.

Related Links
Remove-CsOutboundTranslationRule
Set-CsOutboundTranslationRule
Get-CsOutboundTranslationRule
minutes to read • Edit Online

New-CsPartnerApplication
In ths Article

Creates a new partner application. A partner application is any application that Skype for Business Server can
directly exchange security tokens with, without having to go through a third-party security token server. This cmdlet
was introduced in Lync Server 2013.

Syntax
New-CsPartnerApplication [[-Identity] <XdsGlobalRelativeIdentity>] -ApplicationIdentifier <String>
-ApplicationTrustLevel <ApplicationTrustLevel> [-UseOAuthServer]
[-AcceptSecurityIdentifierInformation <Boolean>] [-Confirm] [-Enabled <Boolean>] [-Force] [-InMemory]
[-Realm <String>] [-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

New-CsPartnerApplication [[-Identity] <XdsGlobalRelativeIdentity>] -ApplicationIdentifier <String>


-ApplicationTrustLevel <ApplicationTrustLevel> -CertificateFileData <String>
[-AcceptSecurityIdentifierInformation <Boolean>] [-Confirm] [-Enabled <Boolean>] [-Force] [-InMemory]
-Realm <String> [-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

New-CsPartnerApplication [[-Identity] <XdsGlobalRelativeIdentity>] -ApplicationIdentifier <String>


-ApplicationTrustLevel <ApplicationTrustLevel> -CertificateRawData <String>
[-AcceptSecurityIdentifierInformation <Boolean>] [-Confirm] [-Enabled <Boolean>] [-Force] [-InMemory]
-Realm <String> [-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

New-CsPartnerApplication [[-Identity] <XdsGlobalRelativeIdentity>]


-ApplicationTrustLevel <ApplicationTrustLevel> -MetadataUrl <String>
[-AcceptSecurityIdentifierInformation <Boolean>] [-Confirm] [-Enabled <Boolean>] [-Force] [-InMemory]
[-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

Description
In Skype for Business Server, server-to-server authentication (for example, the authentication that enables Skype
for Business Server and Exchange to share information) is carried out by using the OAuth security protocol. This
type of authentication typically requires three servers: the two servers that need to communicate with one another
(Server A and B ) and a third-party security token server. If Servers A and B need to communicate with one another,
the two servers contact the token server (also known as an OAuth server) and obtain mutually-trusted security
tokens that the two servers can exchange in order to prove their identities.
If you are using an on-premises version of Skype for Business Server and you need to communicate with another
server product that fully supports the OAuth protocol (for example, Exchange or SharePoint) then you typically do
not need to use a token server; that's because these server products are able to issue their own security tokens.
However, you will need to configure the other server product (e.g., Exchange) as a partner application. (You will also
need to configure Skype for Business Server as a partner application for the other server product.) In Skype for
Business Server, partner applications are managed by using the CsPartnerApplication cmdlets.
Skype for Business Server Control Panel: The functions carried out by the New -CsPartnerApplication cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsPartnerApplication -Identity "MicrosoftExchange" -ApplicationTrustLevel "Full" -


MetadataUrl"https://autodiscover.litwareinc.com/metadata/json/1"

The command shown in Example 1 creates a new partner application with the Identity "MicrosoftExchange". In this
example, the new partner application uses the metadata URL https://autodiscover.litwareinc.com/metadata/json/1.
-------------------------- Example 2 --------------------------

New-CsPartnerApplication -Identity "MicrosoftExchange" -ApplicationIdentifier "microsoft.exchange" -


ApplicationTrustLevel "Full" -UseOAuthServer

The command shown in Example 2 also creates a new partner application with the Identity "MicrosoftExchange". In
this case, however, the new partner application does not use a metadata URL but, instead, is configured to use a
predefined OAuth Server. To do this, the command uses the UseOAuthServer parameter instead of the
MetadataUrl parameter.

Parameters
-AcceptSecurityIdentifierInformation
When set to True ($True), security identifiers (SIDs) can be used for authentication purposes. The default value is
False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ApplicationIdentifier
Unique identifier for the partner application. The ApplicationIdentifier is provided by the server application. You
cannot use the ApplicationIdentifier parameter and the MetadataUrl parameter in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ApplicationTrustLevel
Specifies the level of trust between Skype for Business Server and the partner application. Allowed values are:
Full -- The partner application is trusted to represent itself and to impersonate any user in the realm. This is the
default value.
Application -- The partner application is trusted to represent itself within the realm. In order to impersonate a user,
it must obtain consent through from a security token server.
User -- The partner application must obtain consent from a security token server in order to represent a user, and
cannot represent itself.
The default value is Full.

Type: ApplicationTrustLevel
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CertificateFileData
Path to a certificate file that can be assigned to the partner application. For example:
-CertificateFileData "C:\Certificates\PartnerApplication.cer"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CertificateRawData
Certificate (in Base64 encoded format) that can be assigned to the partner application. To read raw data from a
certificate and then convert that data to the required format, use commands similar to these:
$x = Get-Content "C:\Certificates\PartnerApplication.cer" -Encoding Byte

$y = \[Convert\]::ToBase64String($x)

You can then use this syntax to assign the certificate data stored in the variable $y:
-CertificateRawData $y

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Enabled
When set to True the partner application will be enabled and available for immediate use. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new partner application.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MetadataUrl
URL where the WS -FederationMetadata for the partner application is published. Partner applications use the
metadata to agree on the types of tokens that will be exchanged as well the keys that will be used to sign these
tokens.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Realm
Server-to-server security container. By default, Skype for Business Server uses your default SIP domain as its
OAuth realm.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Realm
Server-to-server security container. By default, Skype for Business Server uses your default SIP domain as its
OAuth realm.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new partner
application is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseOAuthServer
When present, indicates that the partner application will use one of the pre-authorized OAuth servers instead of a
security token server built into the application itself.
Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPartnerApplication cmdlet does not accept pipelined input.

Outputs
The New -CsPartnerApplication cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication#Decorated object.

Related Links
Get-CsPartnerApplication
Remove-CsPartnerApplication
Set-CsPartnerApplication
minutes to read • Edit Online

New-CsPersistentChatAddin
In ths Article

Enables you to configure a new Persistent Chat add-in. A Persistent Chat add-in is a customized web page that can
be embedded within a Persistent Chat client. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsPersistentChatAddin -Name <String> -Url <String> [-PersistentChatPoolFqdn <String>] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Add-ins serve as extensions to a Persistent Chat chat room. Add-ins are external applications (that is, items not built
into Persistent Chat itself) that are associated with a particular chat room. For example, a help desk chat room
might include a URL that links to a Web page or to a Silverlight application that shows the status of the day's help
requests. Skype for Business Server Management Shell does not provide the ability to create these add-ins. Instead,
the CsPersistentChatAddin cmdlets are used to associate (or disassociate) an add-in from a chat room.
Skype for Business Server Control Panel: To create a new Persistent Chat add-in using the Skype for Business
Server Control Panel, click Persistent Chat, click Add-in, and then click New.

Examples
-------------------------- Example 1 --------------------------

New-CsPersistentChatAddin -Name "ITPersistentChatAddin" -PersistentChatPoolFqdn "atl-cs-001.litwareinc.com" -


Url "http://atl-cs-001.litwareinc.com/itchat"

The command shown in Example 1 creates a new Persistent Chat add-in (with the name ITPersistentChatAddin) for
the pool atl-cs-001.litwareinc.com. The URL parameter and the parameter value http://atl-cs-
001.litwareinc.com/itchat specify the location of the add-in's webpage.

Parameters
-Name
Friendly name to be given to the Persistent Chat add-in. Names must be unique per Persistent Chat Server pool.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Fully qualified domain name of the Persistent Chat Server pool.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Url
URL of the webpage to be displayed by the Persistent Chat add-in.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPersistentChatAddin cmdlet does not accept pipelined input.

Outputs
The New -CsPersistentChatAddin cmdlet creates new instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.AddinObject object.

Related Links
Get-CsPersistentChatAddin
Remove-CsPersistentChatAddin
Set-CsPersistentChatAddin
minutes to read • Edit Online

New-CsPersistentChatCategory
In ths Article

Creates a new Persistent Chat category. A Persistent Chat category represents a collection of Persistent Chat chat
rooms. Each chat room must be associated with a category. Note that you cannot assign chat rooms to a category
when you create that category. Instead, existing rooms must later be assigned to a category by using the Set-
CsPersistentChatRoom cmdlet. However, new chat rooms can be assigned to the category at the same time the
room is created. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsPersistentChatCategory -Name <String> [-Description <String>] [-EnableFileUpload] [-EnableInvitations]
[-PersistentChatPoolFqdn <String>] [-RemoveChatHistory] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Persistent Chat categories provide a way for administrators to organize, and manage, Persistent Chat chat rooms.
Categories provide a way for administrators to group related chat rooms; for example, all chat rooms used by the
finance department can be grouped in the same category. Likewise, categories provide a way for administrators to
manage permissions to these rooms, dictating which users are allowed access to the rooms, which users are denied
access to the rooms, and which users are allowed to create new chat rooms within the category.
Note that all chat rooms must belong to a category; you cannot create a chat room without assigning that room to
a category. That means that you must create at least one category before you can add any chat rooms to your
Persistent Chat implementation.
Skype for Business Server Control Panel: To create a new Persistent Chat category using the Skype for Business
Server Control Panel, click Persistent Chat, click Category, and then click New.

Examples
-------------------------- Example 1 --------------------------

New-CsPersistentChatCategory -Name "HelpDesk" -PersistentChatPoolFqdn "atl-cs-001.litwareinc.com" -


EnableFileUpload

The command shown in Example 1 creates a new Persistent Chat category named HelpDesk on the pool atl-cs-
001.litwareinc.com. In this example, file upload is enabled (by including the parameter EnableFileUpload).
Parameters
-Description
Additional text accompanying the Persistent Chat category. For example, the Description might explain the purpose
of the category and what type of rooms you can expect to find within the category.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFileUpload
When present, allows file uploads to the chat rooms in the category.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableInvitations
When this parameter is included, Invitations will be enabled for the category. Among other things, this means that
users on the AllowedMembers list will automatically receive an invitation to join a new chat room at the time that
new room is created.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name given to the Persistent Chat category. Names must be unique per Persistent Chat pool.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Fully qualified domain name of the Persistent Chat pool where the category should be created.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RemoveChatHistory
When this parameter is included, the chat history feature will be disabled for the new category. Typically, chat
history is only disabled for chat rooms that are used for announcements that are posted once and then never need
to be referred to again.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPersistentChatCategory cmdlet does not accept pipelined input.

Outputs
The New -CsPersistentChatCategory cmdlet creates new instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.CategoryObject object.

Related Links
Get-CsPersistentChatCategory
Remove-CsPersistentChatCategory
Set-CsPersistentChatCategory
minutes to read • Edit Online

New-CsPersistentChatComplianceConfiguration
In ths Article

Creates a new collection of Persistent Chat compliance configuration settings at the site or the service scope.
Persistent Chat compliance enables administrators to maintain an archive of Persistent Chat items and activities
including: new messages; new events (for example, a user entering or existing a chat room); file uploads and
downloads; and searches run against the chat history. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsPersistentChatComplianceConfiguration [-Identity] <XdsIdentity> [-AdapterName <String>]
[-AdapterOutputDirectory <String>] [-AdapterType <String>] [-AddChatRoomDetails <Boolean>]
[-AddUserDetails <Boolean>] [-Confirm] [-CreateFileAttachmentsManifest <Boolean>]
[-CustomConfiguration <String>] [-Force] [-InMemory] [-OneChatRoomPerOutputFile <Boolean>]
[-RunInterval <TimeSpan>] [-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Many organizations (including organizations involved in health care and organizations involved in the financial
industry) are required to maintain archives of all their electronic communications; this includes conversations that
might take place using the Persistent Chat service. Skype for Business Server allows you to create a separate
compliance database that keeps a detailed of archive of everything that happens in your Persistent Chat chat
rooms. Persistent Chat compliance can be enabled or disabled at the site scope or at the service scope (that is,
compliance can be enabled or disabled for a given Persistent Chat pool). In addition, Persistent Chat compliance
can only be managed using the Windows PowerShell command-line interface; there are no options available in the
Skype for Business Server Control Panel for managing Persistent Chat compliance.
Skype for Business Server Control Panel: The functions carried out by the New -
CsPersistentChatComplianceConfiguration cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsPersistentChatComplianceConfiguration -Identity "site:Redmond" -AddUserDetails $True -AddChatRoomDetails


$True

The command shown in Example 1 creates a new collection of Persistent Chat compliance configuration settings
for the Redmond site. In this example, both the AddUserDetails and the AddChatRoomDetails properties are set to
True ($True).
-------------------------- Example 2 --------------------------

New-CsPersistentChatComplianceConfiguration -Identity "site:Redmond" -RunInterval "00:30:00"

Example 2 also demonstrates how to create a new collection of Persistent Chat compliance configuration settings
for the Redmond site. In this example, the RunInterval property is set to 30 minutes; that is, 00 hours : 30 minutes :
00 seconds.

Parameters
-AdapterName
Name of the Persistent Chat adapters used by the compliance settings. Adapters are third-party products that
convert the data in the compliance database to a specific format.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AdapterOutputDirectory
Full path to the folder where adapter data is stored. You must have a separate folder for each adapter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AdapterType
Specifies the fully qualified name of a .Net managed type that implements the
Microsoft.Rtc.Internal.Chat.Server.Compliance.IComplianceAdapter interface. This adapter is supplied by a third-
party or can be set to the internal XML adapter,
"Microsoft.Rtc.Internal.Chat.Server.Compliance.XmlAdapter,compliance".
If you do not specify an adapter type Persistent Chat will not save compliance data.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AddChatRoomDetails
When set to True, additional details about each chat room are provided to the adapter. This has the potential to
greatly increase the size of the compliance data.
The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AddUserDetails
When set to True, additional details about each chat room user are provided to the adapter. This has the potential to
greatly increase the size of the compliance data.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CreateFileAttachmentsManifest
When set to True, additional output files will be created to track file transfers within chat rooms. These files will
have the file extension .ATTACH and are placed in the location specified by the AdapterOutputDirectory.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomConfiguration
XSLT transform script that enables Persistent Chat to save compliance data in a custom format of your design.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new Persistent Chat compliance settings being created. New compliance settings can be
created at either the site or the service scope (for the Persistent Chat Server service, only). To create new settings at
the site scope, use syntax similar to this:
-Identity "site:Redmond"

To create new settings at the service scope, use syntax like this:
-Identity "service:PersistentChatServer:atl-gc-001.litwareinc.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OneChatRoomPerOutputFile
When set to True, separate reports are created for each chat room. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RunInterval
Amount of time that the server waits before generating the next output file. The RunInterval must be specified
using the format days.hours:minutes:seconds. For example, to specify a RunInterval of 30 minutes (the default
value) use this syntax:
-RunInterval 00:30:00
The RunInterval can be set to any value between 1 minute (00:01.00) and 30 days (30.00:00:00), inclusive. The
default value is 15 minutes (00:15:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPersistentChatComplianceConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsPersistentChatComplianceConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatComplianceConfiguration object.

Related Links
Get-CsPersistentChatComplianceConfiguration
Remove-CsPersistentChatComplianceConfiguration
Set-CsPersistentChatComplianceConfiguration
minutes to read • Edit Online

New-CsPersistentChatConfiguration
In ths Article

Creates a new collection of Persistent Chat configuration settings at the site or service scope. Persistent Chat
configuration settings are used to manage the Persistent Chat service. For example, these settings allow you to
specify the maximum number of users who can participate in a chat room. This cmdlet was introduced in Lync
Server 2013.

Syntax
New-CsPersistentChatConfiguration [-Identity] <XdsIdentity> [-Confirm] [-DefaultChatHistory <Int16>] [-Force]
[-InMemory] [-MaxFileSizeKB <UInt32>] [-ParticipantUpdateLimit <UInt32>] [-RoomManagementUrl <String>]
[-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
The Persistent Chat service is managed, in part, by Persistent Chat configuration settings, which dictate such things
as the number of previously-posted chat messages immediately available when you log on to a chat room (the chat
history) or the maximum size of a file that can be uploaded to (or downloaded from) the service. These settings can
be configured at the global or the site scope, or at the service scope (that is, you can have a custom collection of
settings assigned to an individual Persistent Chat pool).
Skype for Business Server Control Panel: To create a new collection of Persistent Chat configuration settings using
the Skype for Business Server Control Panel, click Persistent Chat, click Persistent Chat Configuration, click New,
and then click either Site configuration or Pool configuration.

Examples
-------------------------- Example 1 --------------------------

New-CsPersistentChatConfiguration -Identity "site:Redmond" -ParticipantUpdateLimit 100

The command shown in Example 1 creates a new set of Persistent Chat configuration settings applied to the
Redmond site. In this example, the ParticipantUpdateLimit property is set to 100.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultChatHistory
Default number of chat messages instantly available in a chat room. Note that this value represents only the
number of messages immediately available; it does not place a limit on the total amount of messages that can be
retrieved.
DefaultChatHistory can be set to any value between 1 and 500, inclusive. The default value is 30.

Type: Int16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new Persistent Chat configuration settings being created. New configuration settings can
be created at either the site or the service scope (for the Persistent Chat Server service, only). To create new settings
at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To create new settings at the service scope, use syntax like this:
-Identity "service:PersistentChatServer:atl-gc-001.litwarein.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxFileSizeKB
Maximum size of a file (in kilobytes) that can be uploaded or downloaded by the web service. The default value is
20000 KB.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ParticipantUpdateLimit
Maximum number of users who can participate in a chat room before the active participant list updates are
disabled. The default value is 75.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RoomManagementUrl
URL for the Web page that administrators can use to manage individual chat rooms.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPersistentChatConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsPersistentChatConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatConfiguration object.

Related Links
Get-CsPersistentChatConfiguration
Remove-CsPersistentChatConfiguration
Set-CsPersistentChatConfiguration
minutes to read • Edit Online

New-CsPersistentChatEndpoint
In ths Article

Creates a new Persistent Chat endpoint. A Persistent Chat endpoint is an Active Directory contact object provides a
friendly URL for a Skype for Business Server Persistent Chat pool. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsPersistentChatEndpoint -PersistentChatPoolFqdn <Fqdn> -SipAddress <String> [-Confirm]
[-DisplayName <String>] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
However, if you have users running legacy clients (such as Microsoft Lync 2010 these users might find the default
Persistent Chat URIs difficult to work with and difficult to use when pointing their legacy client towards the pool.
Because of this, administrators can use the New -CsPersistentChatEndpoint cmdlet to create an additional contact
object for the pool, a contact object that provides a friendlier, easier-to-use URI.
Skype for Business Server Control Panel: The functions carried out by the New -CsPersistentChatEndpoint cmdlet
are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsPersistentChatEndpoint -SipAddress "sip:pce@litwareinc.com" -PersistentChatPoolFqdn "atl-pcpool-


001.litwareinc.com" -DisplayName "Persistent Chat Endpoint 1"

The command shown in Example 1 creates a new Persistent Chat endpoint for the pool atl-pcpool-
001.litwareinc.com. This new endpoint has the SIP address "sip:pce@litwareinc.com" and the display name of
"Persistent Chat Endpoint 1".

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Active Directory display name for the new contact object.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a contact object through the pipeline that represents the new Persistent Chat endpoint. By
default, the New -CsPersistentChatEndpoint cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Fully qualified domain name of the Persistent Chat pool that the new endpoint will be associated with. For example:
-PersistentChatPoolFqdn "atl-pc-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
Unique identifier that allows the endpoint to communicate with SIP devices such as Skype for Business. The SIP
address must use the sip: prefix as well as a valid SIP domain; for example:
-SipAddress "sip:pcEndpoint1@litwareinc.com"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPersistentChatEndpoint cmdlet does not accept pipelined input.

Outputs
The New -CsPersistentChatEndpoint cmdlet creates new instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSPersistentChatContact class.

Related Links
Get-CsPersistentChatEndpoint
Remove-CsPersistentChatEndpoint
minutes to read • Edit Online

New-CsPersistentChatPolicy
In ths Article

Creates a new Persistent Chat policy at the site or the per-user scope. Persistent Chat policies determine whether or
not users are allowed access to Persistent Chat chat rooms. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsPersistentChatPolicy [-Identity] <XdsIdentity> [-Confirm] [-Description <String>]
[-EnablePersistentChat <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Tenant <Guid>] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
By default, users are not granted access to the Persistent Chat service; that access can only be granted if the user is
managed by a Persistent Chat policy that allows for the user of the service. When you install Skype for Business
Server, all your users are managed by a global Persistent Chat policy in which the use of Persistent Chat is disabled.
If you want to give all your users access to the service you can simply set the EnablePersistentChat property in this
global policy to True. Alternatively, you can create additional policies at the site or at the per-user scope, and thus
provide Persistent Chat access to some users while denying this access to other users.
Skype for Business Server Control Panel: To create a new Persistent Chat policy using the Skype for Business
Server Control Panel, click Persistent Chat, click Persistent Chat Policy, click New, and then click either Site policy or
User policy.

Examples
-------------------------- Example 1 --------------------------

New-CsPersistentChatPolicy -Identity "RedmondPersistentChatPolicy" -EnablePersistentChat $True

The command shown in Example 1 creates a new per-user Persistent Chat policy with the Identity
RedmondPersistentChatPolicy. In this example, Persistent Chat is enabled by using the parameter
EnablePersistentChat and the parameter value $True.
-------------------------- Example 2 --------------------------

New-CsPersistentChatPolicy -Identity "site:Redmond" -EnablePersistentChat $True


Example 2 is a variation of the command shown in Example 1; the only difference is that the new policy is applied to
the site scope instead of the per-user scope. That's done by setting the Identity to the string value "site:" followed by
the name of the site itself; in this case, site:Redmond.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text to accompany the policy. For example, the Description might
include information about the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePersistentChat
When set to True, users affected by the policy will be allowed to use Persistent Chat. When set to False (the default
value) users affected by the policy will not be allowed to use Persistent Chat.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier to be assigned to the policy. New Persistent Chat policies can be created at the site scope or the
per-user scope. To create a new site policy, use the prefix "site:" and the name of the site as your Identity. For
example, use this syntax to create a new policy for the Redmond site:
-Identity site:Redmond

To create a new per-user policy, use an Identity similar to this:


-Identity SalesPersistentChatPolicy

Note that you cannot create a new global policy; if you want to make changes to the global policy, use the Set-
CsPersistentChatPolicy cmdlet instead. Likewise, you cannot create a new site or per-user policy if a policy with that
Identity already exists. If you need to make changes to an existing policy, use the Set-CsPersistentChatPolicy
cmdlet.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new Persistent
Chat policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPersistentChatPolicy cmdlet does not accept pipelined input.

Outputs
The New -CsPersistentChatPolicy cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.PersistentChat.PersistentChatPolicy object.

Related Links
Get-CsPersistentChatPolicy
Grant-CsPersistentChatPolicy
Remove-CsPersistentChatPolicy
Set-CsPersistentChatPolicy
minutes to read • Edit Online

New-CsPersistentChatRoom
In ths Article

Creates a new Persistent Chat chat room. A chat room is a discussion forum that typically revolves around a
specific topic. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsPersistentChatRoom -Category <String> -Name <String> [-Addin <String>] [-Description <String>]
[-Disabled <Boolean>] [-Invitations <ChatRoomInvitations>] [-PersistentChatPoolFqdn <String>]
[-Privacy <ChatRoomPrivacy>] [-Type <ChatRoomType>] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Persistent Chat discussions take the form of messages posted in individual chat rooms; chat rooms are discussion
forums based on specific topics. By design, messages posted in a chat room remain there forever; at any time, users
can return to the room and review all the messages that have been previously posted.
The New -CsPersistentChatRoom cmdlet enables administrators to create new Persistent Chat chat rooms. Note
that not all the properties of a chat room are available using the New -CsPersistentChatRoom cmdlet; for example,
you cannot assign chat room Managers or Presenters by using this cmdlet. To assign Managers or Presenters, you
must create the chat room, then make those assignments using the Set-CsPersistentChatRoom cmdlet.
Skype for Business Server Control Panel: To create a new Persistent Chat chat room using the Skype for Business
Server Control Panel, click Persistent Chat, click Room, and then click New.

Examples
-------------------------- Example 1 --------------------------

New-CsPersistentChatRoom -Name "ITChatRoom" -PersistentChatPoolFqdn "atl-cs-001.litwareinc.com"-Category "IT"

The command shown in Example 1 creates a new Persistent Chat chat room named ITChatRoom on the pool atl-cs-
001.litwareinc.com. In this example, the chat room is added to the IT category.

Parameters
-Addin
Name of the Persistent Chat add-in, if any, associated with the chat room. A Persistent Chat add-in is a customized
web page that can be embedded within a Persistent Chat client. Add-ins can be created by using the New -
CsPersistentChatAddin cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Category
Category under which the room is to be created; for example:
-Category "IT"

Note that the specified category must already exist or the command will fail. Categories, which are collections of
Persistent Chat chat rooms, can be created by using the New -CsPersistentChatCategory cmdlet.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional information about the new chat room

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Disabled
When present, the new chat room will be disabled and unavailable for use when it is first created. If this parameter
is not used then the new chat room will be enabled and available for immediate use.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Invitations
Specifies whether or not Invitations for the new chat room will be inherited from the category. Among other things,
this means that users on the AllowedMembers list will automatically receive an invitation to join a new chat room
at the time that new room is created.
Type: ChatRoomInvitations
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name of the new Persistent Chat chat room. Names must be unique per Persistent Chat pool.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PersistentChatPoolFqdn
Fully qualified domain name of the Persistent Chat pool where the new chat room will be located. For example:
-PersistentChatPoolFqdn "atl-gc-001.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Privacy
Privacy settings for the new chat room. Allowed values are:
Open (any user can locate the chat room by doing a directory search, and anyone can participate in chat room
activities)
Secret (only chat room members can locate the room by doing a directory search, and only members can
participate in chat room activities)
Closed (any user can locate the chat room by doing a directory search, but only members can participate in chat
room activities)

Type: ChatRoomPrivacy
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Specifies whether the new chat room should be configured as a Normal chat room (where all members can post
messages) or an Auditorium (where only presenters can post messages). For example:
-Type "Auditorium"

The default value is Normal.


Type: ChatRoomType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPersistentChatRoom cmdlet does not accept pipelined input.

Outputs
The New -CsPersistentChatRoom cmdlet creates new instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.ChatRoomObject object.

Related Links
Clear-CsPersistentChatRoom
Get-CsPersistentChatRoom
Remove-CsPersistentChatRoom
Set-CsPersistentChatRoom
minutes to read • Edit Online

New-CsPinPolicy
In ths Article

Creates a new client personal identification number (PIN ) policy. PIN authentication enables users to access Skype
for Business Server by providing a PIN instead of a user name and password. This cmdlet was introduced in Lync
Server 2010.

Syntax
New-CsPinPolicy [-Identity] <XdsIdentity> [-Description <String>] [-MaximumLogonAttempts <UInt32>]
[-MinPasswordLength <UInt32>] [-PINHistoryCount <UInt64>] [-PINLifetime <UInt64>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [-AllowCommonPatterns <Boolean>] [-Tenant <Guid>] [<CommonParameters>]

Description
Skype for Business Server enables users to connect to the system or to join public switched telephone network
(PSTN ) conferences via telephone. Users typically log on to the system or join a conference by entering a user
name or password; however, entering a user name and password can be a problem if you are using a phone that
does not have an alphanumeric keypad. Because of that, Skype for Business Server enables you to supply users
with numeric-only PINs; when prompted, users can then log on or join a conference by entering the PIN instead of
a user name and password.
Skype for Business Server uses PIN policies to manage PIN authentication properties; for example, you can specify
the minimum length for a PIN as well as determine whether you will allow PINs that use "common patterns" such
as consecutive digits (for example, a PIN like 123456). You can use the New -CsPinPolicy cmdlet to create new PIN
authentication policies; these new policies can be configured at either the site or the per-user scope. (There is also a
global PIN policy. However, you cannot create a second global PIN policy; all you can do is modify the existing
global policy.)

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsPinPolicy -Identity "site:Redmond" -MinPasswordLength 10

In Example 1, the New -CsPinPolicy cmdlet is used to create a new PIN policy with the Identity site:Redmond. This
command includes just one optional parameter, MinPasswordLength, which is used to set the MinPasswordLength
property to 10. All the remaining policy properties will be configured using the default values.
-------------------------- EXAMPLE 2 --------------------------

New-CsPinPolicy -Identity "site:Redmond" -MinPasswordLength 10 -PINHistoryCount 10 -PINLifetime 30

The command shown in Example 2 creates a new policy with the Identity site:Redmond. This command uses the
parameters MinPasswordLength, PINHistoryCount, and PINLifetime to explicitly configure three different property
values for the new policy.
-------------------------- EXAMPLE 3 --------------------------

$x = New-CsPinPolicy -Identity "site:Redmond" -InMemory

$x.MinPasswordLength = 10

$x.PINHistoryCount = 10

$x.PINLifetime = 30

Set-CsPinPolicy -Instance $x

The commands shown in Example 3 demonstrate how you can create a new PIN policy in memory only, modify the
property values for that policy, and then use the Set-CsPinPolicy cmdlet to turn that in-memory-only policy into an
actual PIN policy. In the first line above, the New -CsPinPolicy cmdlet and the InMemory parameter are used to
create an in-memory policy with the Identity site:Redmond; this policy is stored in the variable $x. If the policy was
not assigned to a variable it would be created in memory only and then immediately disappear as soon as the
command completed.
After the virtual policy has been assigned to the variable $x, the next three commands are used to modify property
values for that policy; for example, line 2 sets the value of the MinPasswordLength property to 10. After all the
properties have been configured, the Set-CsPinPolicy cmdlet is used to create an actual policy with the Identity
site:Redmond; this is done by using the Instance parameter and passing the variable $x as the parameter value.
After the Set-CsPinPolicy cmdlet has been called, you will be able to view the policy and its property values by
using the Get-CsPinPolicy cmdlet.
-------------------------- EXAMPLE 4 --------------------------

$x = Get-CsPinPolicy -Identity "site:Redmond"

New-CsPinPolicy -Identity "site:Paris" -MinPasswordLength $x.MinPasswordLength

The commands used in Example 4 create a new PIN policy (site:Paris) that uses one of the property values found in
the existing policy site:Redmond. To achieve this, the first command uses the Get-CsPinPolicy cmdlet to retrieve the
PIN policy site:Redmond; the information retrieved for this policy is then stored in the variable $x.
In the second command, the New -CsPinPolicy cmdlet is used to create the policy site:Paris. In addition, the
MinPasswordLength parameter is used to specify the value of the MinPasswordLength property. However, instead
of using a hard-coded numeric value, the command uses $x.MinPasswordLength as the parameter value; this tells
the New -CsPinPolicy cmdlet to set the minimum password length to the value of the MinPasswordLength property
found in the policy site:Redmond. The net result is that the value of the MinPasswordLength property will be copied
from the existing policy site:Redmond to the new policy site:Paris.

Parameters
-AllowCommonPatterns
Indicates whether or not "common patterns" are allowed in PINs. Common patterns include repeating digits
(222222); four or more consecutive digits (123456); and PINs that match a user's phone number or extension
number. If set to True common patterns (such as the PIN 456789, which includes consecutive digits) are allowed; if
set to False common patterns are not allowed. The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text to accompany a PIN policy. For example, the Description might
include information about the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique Identity to be assigned to the policy. PIN policies can be created at the site or per-user scope.
To create a policy at the site scope, use syntax similar to this:
-Identity site:Redmond

To create a policy at the per-user scope, use syntax similar to this:


-Identity RedmondPinPolicy
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaximumLogonAttempts
Indicates the number of sequential logon failures that are allowed before a user's PIN is automatically locked.
Logon failures are counted in two different ways: local logon failures and global logon failures. When a user first
tries to logon, a new 30 minute observation window starts; each failed logon during that 30 minute window is
recorded as both a local logon failure and a global logon failure. If the user reaches the MaximumLogonAttempts
during that 30 minute observation window then he or she will temporarily be locked out of the system for one
hour; during this time they will not be able to logon using PIN authentication even if they supply the correct PIN.
After the lockout period has expired, the user's local logon attempts will be reset to 0. However, the user's global
logon attempts will not be reset. If the user continually fails to logon, he or she will eventually reach the maximum
number of allowed global logon attempts. Any user who reaches that point will have their PIN locked by the
system, and will not be able to use PIN authentication until an administrator has unlocked the PIN.
The maximum number of allowed logon attempts also varies with PIN size; this is why the
MaximumLogonAttempts property does not show a default value when you run Get-CsPinPolicy. By default, a PIN
length of 4 allows users 10 local logon attempts and 100 global logon attempts. A PIN length of 5 allows 25 local
and 1000 global logon attempts, and PIN lengths greater than 6 allow 25 local tries and 5000 global tries. If you
specify a value for the MaximumLogonAttempts property that value will be used for the maximum allowed number
of local logon tries; however, global logon values do not change regardless of the value assigned to
MaximumLogonAttempts.
Each time a user successfully logs on using PIN authentication the local failed logon attempts is reset to 0. The
global logon attempts are only reset when an administrator unlocks a user's PIN.
MaximumLogonAttempts can be set to any whole number between 1 and 999, inclusive. However, it is
recommended that you do not modify this property. When set to a null value (the default value) Skype for Business
Server will automatically calculate lockout policies. This typically provides the most security.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-MinPasswordLength
The minimum allowed length (that is, the minimum number of digits) in a PIN. For example, if MinPasswordLength
is set to 8 then a PIN of 1259 will be rejected because that PIN only has 4 digits. PIN lengths must have at least 4
digits but no more than 24 digits; the default value is 5.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PINHistoryCount
Indicates how often users are allowed to reuse the same PIN. For example, if the PINHistoryCount is set to 3, then
the first three times a user resets his or her PIN they must use a new PIN; on the fourth reset, they can reuse their
first PIN. (And, on the fifth reset, they can reuse their second PIN, and so on.) The PIN history count can be any
whole number between 0 and 20, inclusive; 0 means that users can use the same PIN number over and over again.
By default, PINHistoryCount is set to 0.
If the PINLifetime is set to any value greater than 0 then the PINHistoryCount must also be greater than 0. For
example, you cannot set PINLifetime to 30 and leave PINHistoryCount at 0.

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PINLifetime
Indicates the length of time (in days) that a PIN remains valid; after the PIN lifetime expires users must select a new
PIN number before they will be allowed to use PIN authentication to gain access to the system. PINLifetime can be
set to any whole number between 0 and 999, inclusive; 0 indicates that PIN numbers never expire. By default, the
PIN lifetime is set to 0 days.
If you set the PINLifetime to a value greater than 0 then you must also set the PINHistoryCount to a value greater
than 0.

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new PIN policy is
being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPinPolicy cmdlet does not accept pipelined input.

Outputs
Creates a new instance of the Microsoft.Rtc.Management.WritableConfig.Policy.UserPin.UserPolicy object.

Related Links
Get-CsPinPolicy
Grant-CsPinPolicy
Remove-CsPinPolicy
Set-CsPinPolicy
minutes to read • Edit Online

New-CsPlatformServiceSettings
In ths Article

Creates a new Skype for Business on Mac configuration in your organization. This cmdlet was introduced in Skype
for Business Server 2015 Cumulative Update 6 (December 2017).

Syntax
New-CsPlatformServiceSettings [-EnableDelegateManagement <Boolean>] [-EnableExternalAccessCheck <Boolean>]
[-EnablePushNotifications <Boolean>] [-UseLegacyPushNotifications <Boolean>] [-EnableE911 <Boolean>]
[-EnableFileTransfer <Boolean>] [-EnableCORS <Boolean>] [-EnableUcwaScopeCheck <Boolean>]
[-MaxRegistrationsPerPublicApplication <Int32>] [-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
Skype for Business Server 2015 Cumulative Update 6 introduces new features for Skype for Business on Mac
users like support for E -911 calls, send files in peer-to-peer chats, block external access by policy and more.
The New-CsPlatformServiceSettings cmdlet gives you the ability to create a new configuration for these settings.

Examples
-------------------------- EXAMPLE 1 --------------------------

PS C:\> New-CsPlatformServiceSettings -Identity NewPSS -EnableDelegateManagement $True -


EnableExternalAccessCheck $True

This example creates a new Platform Service Settings configuration and enables delegate management and
external access check.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCORS
This parameter is reserved for Microsoft internal use only.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDelegateManagement
Enables the ability to manage delegates from the Skype for Business on Mac client.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableE911
Allows Skype for Business on Mac users to call 911.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExternalAccessCheck
Enables administrators to use external access policies to block external access to Skype for Business on Mac users.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFileTransfer
Enables Skype for Business on Mac users send files in peer-to-peer chats.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePushNotifications
Enables Skype for Business on Mac clients to use push notifications.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableUcwaScopeCheck
This parameter is reserved for Microsoft internal use only.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before testing.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the Platform Service Settings to be created.
To create a new collection of settings at the site scope, use syntax similar to this:
-Identity site:Redmond

To create new settings at the service scope, use syntax like this:
-Identity service:WebServer:atl-cs-001.litwareinc.com

Privacy settings can only be created for the WebServer service. An error will occur if you try to apply these settings
to any other service.
Note that your command will fail if Platform Service Settings already exist for the specified site or service. Likewise,
your command will fail if you attempt to create a new collection of global settings.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-CsPlatformServiceSettings.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxRegistrationsPerPublicApplication
This parameter is reserved for Microsoft internal use only.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseLegacyPushNotifications
This parameter is reserved for Microsoft internal use only.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Set-CsPlatformServiceSettings
Get-CsPlatformServiceSettings
Remove-CsPlatformServiceSettings
minutes to read • Edit Online

New-CsPresencePolicy
In ths Article

Creates a new presence policy at either the site scope or the per-user scope. This cmdlet was introduced in Lync
Server 2010.

Syntax
New-CsPresencePolicy [-Identity] <XdsIdentity> [-MaxCategorySubscription <UInt16>]
[-MaxPromptedSubscriber <UInt16>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-Description <String>]
[-Tenant <Guid>] [<CommonParameters>]

Description
Presence information (which, among other things, lets you know whether a contact is available to take part in an
instant messaging conversation) is invaluable. At the same time, however, there is a cost associated with presence
information: the more presence subscriptions you have the more network bandwidth must be devoted to updating
presence information. If network bandwidth is a concern, you might want to limit the number of presence
subscriptions any one user can have.
The CsPresencePolicy cmdlets enable you to manage two important aspects of presence subscriptions: prompted
subscribers and category subscriptions. When you are added to another person's Skype for Business Contacts list,
the default behavior is for you to receive a pop-up notification informing you that you have been added to that list.
Until you dismiss the pop-up, each notification counts as a prompted subscriber. The presence policy's
MaxPromptedSubscriber property enables you to specify the maximum number of unresolved notification dialogs
a user can have. (If a user reaches the maximum amount then he or she will not receive new contact notifications, at
least not until some of those dialogs have been resolved.)
Category subscriptions represent a request for a specific category of information; for example, an application that
requests calendar data. The MaxCategorySubscription property enables administrators to place a limit on the
number of category subscriptions a user can have.
Prior to the release of Lync Server, prompted subscriber and category subscriptions were managed on a global
basis. With the CsPresencePolicy cmdlets you can manage these presence subscriptions at the global scope, the site
scope, or the per-user scope. This enables you to control bandwidth use while, at the same time, ensuring that users
have access to the presence information they need to do their jobs.
The New -CsPresencePolicy cmdlet provides a way for you to create custom presence policies at either the site
scope or the per-user scope. Policies created at the site scope are automatically applied to that site; policies created
at the per-user scope must be assigned to users by running the Grant-CsPresencePolicy cmdlet. Note that you
cannot create a new presence policy at the global scope, nor can you create a second presence policy at an
individual site. (For example, the Redmond site can host only one presence policy.)

Examples
-------------------------- EXAMPLE 1 --------------------------
New-CsPresencePolicy -Identity "RedmondPresencePolicy" -MaxPromptedSubscriber 400 -MaxCategorySubscription 500

The command shown in Example 1 creates a new per-user presence policy with the Identity
RedmondPresencePolicy. In this example, the value of the MaxPromptedSubscriber property is set to 400 and the
value of the MaxCategorySubscription property is set to 500.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsPresencePolicy -Identity "RedmondPresencePolicy" -InMemory

$x.MaxPromptedSubscriber = 400

$x.MaxCategorySubscription = 500

Set-CsPresencePolicy -Instance $x

In Example 2, a new per-user presence policy is initially created in memory, and only later converted to an actual
presence policy. To do this, the first command in the example creates a presence policy with the Identity
RedmondPresencePolicy and stores this policy in a variable named $x. The InMemory parameter ensures that the
policy is created in memory only, and is not immediately added to Skype for Business Server.
Commands 2 and 3 are next used to configure the MaxPromptedSubscriber and the MaxCategorySubscription
properties of the virtual policy. After the policy values have been set, line 4 uses the Set-CsPresencePolicy cmdlet
and the Instance parameter to create an actual presence policy based on the information stored in $x. This final step
is crucial: if you do not call the Set-CsPresencePolicy cmdlet the policy will exist only in memory, and will disappear
as soon as you end your Windows PowerShell session or delete the variable $x.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional text to accompany a presence policy. For example, the Description
might include information about the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new presence policy. To create a new per-user policy, use syntax similar to this:
-Identity "RedmondPresencePolicy"

To create a new policy at the site scope, use syntax similar to this:
-Identity "site:Redmond"

Note that you cannot create a new presence policy at the global scope. In addition, your command will fail if the site
in question already hosts a presence policy, or if you try to use the Identity of a per-user policy that already exists.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxCategorySubscription
The maximum number of category subscriptions allowed at any one time. A category subscription represents a
request for a specific category of information; for example, an application that requests calendar data.
MaxCategorySubscription can be set to any integer value between 0 and 3000; the default value is 1000.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxPromptedSubscriber
The maximum number of promoted subscribers a user can have at any one time. By default, any time you are
added to another user's Contacts list a notification dialog appears on screen informing you of this fact, and giving
you the chance to do such things as add the person to your own Contacts list or block the person from viewing
your presence. Until you take action and dismiss the dialog box, each notification counts as a prompted subscriber.
MaxPromptedSubscriber can be set to any integer value between 0 and 600, inclusive; the default value is 200. If
you set this value to 0, users will not receive any notifications when they are added to another user's Contacts list.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the new presence
policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPresencePolicy cmdlet does not accept pipelined input.

Outputs
The New -CsPresencePolicy cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Presence.PresencePolicy object.

Related Links
Get-CsPresencePolicy
Grant-CsPresencePolicy
Remove-CsPresencePolicy
Set-CsPresencePolicy
minutes to read • Edit Online

New-CsPresenceProvider
In ths Article

Authorizes a new presence provider for use in the organization. Presence providers represent the
PresenceProviders property of a collection of user services configuration settings. This cmdlet was introduced in
Lync Server 2013.

Syntax
New-CsPresenceProvider -Fqdn <String> -Parent <String> [-Confirm] [-Force] [-InMemory] [-WhatIf]
[<CommonParameters>]

New-CsPresenceProvider [-Identity] <XdsIdentity> [-Confirm] [-Force] [-InMemory] [-WhatIf] [<CommonParameters>]

Description
The CsPresenceProvider cmdlets are used to manage the PresenceProviders property found in the User Services
configuration settings. Among other things, these settings are used to maintain presence information, including a
collection of authorized presence providers. That collection is stored in the PresenceProviders property. You can use
the New -CsPresenceProvider cmdlet to add an authorized presence provider to a collection of User Services
configuration settings.
Skype for Business Server Control Panel: The functions carried out by the New -CsPresenceProvider cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsPresenceProvider -Parent "global" -Fqdn "fabrikam.com"

The command shown in Example 1 creates a new presence provider (with the fully qualified domain name
"fabrikam.com") that will be added to the global collection of user services configuration settings.
-------------------------- Example 2 --------------------------

Get-CsUserServicesConfiguration | ForEach-Object {New-CsPresenceProvider -Parent $_.Identity -Fqdn


"fabrikam.com"}

Example 2 adds a presence provider with the Fqdn "fabrikam.com" to all the user services configuration collections
in the organization. To do this, the command first uses the Get-CsUserServicesConfiguration cmdlet to return a
collection of all the user services settings. Those settings are then piped to the ForEach-Object, which takes each
item in the collection and a creates a new presence provider for that collection, using "fabrikam.com" as the
presence provider Fqdn and the Identity of the user services collection as the presence provider Parent.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Fqdn
Fully qualified domain name for the presence provider. For example:
-Fqdn "fabrikam.com"
If you use the Fqdn parameter you must also use the Parent parameter. However, the Fqdn parameter cannot be
used in the same command as the Identity parameter.
Note that FQDNs must be unique at a given scope.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new presence provider. The Identity of a presence provider is composed of two parts: the
scope (Parent) where the rule has been applied (for example, service:UserServer:atl-cs-001.litwareinc.com) and the
provider's fully qualified domain name. To create a new provider at the global scope use syntax similar to this:
-Identity "global/fabrikam.com"

To create a provider at the site scope, use syntax like this:


-Identity "site:Redmond/fabrikam.com"

To create a provider at the service scope (for the UserServer service only), use syntax similar to this:
-Parent "UserServer:atl-cs-001.litwareinc.com"

You cannot use the Identity parameter in the same command as the Fqdn or the Parent parameter.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Scope where the new presence provider will be created. To create a new presence provider at the global scope, use
syntax similar to this:
-Parent "global"

To create a new provider at the site scope use syntax like this:
-Parent "site:Redmond"

To create a provider at the service scope (for the UserServer service only), use syntax similar to this:
-Parent "UserServer:atl-cs-001.litwareinc.com"

If you use the Parent parameter you must also include the Fqdn parameter. However, the Parent parameter cannot
be used in conjunction with the Identity parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPresenceProvider cmdlet does not accept pipelined input.

Outputs
The New -CsPresenceProvider cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider#Decorated object.

Related Links
Get-CsPresenceProvider
Get-CsUserServicesConfiguration
Remove-CsPresenceProvider
Set-CsPresenceProvider
minutes to read • Edit Online

New-CsPrivacyConfiguration
In ths Article

Creates a new collection of privacy configuration settings. Privacy configuration settings help determine how much
information users make available to other users. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsPrivacyConfiguration [-Identity] <XdsIdentity> [-AutoInitiateContacts <Boolean>]
[-DisplayPublishedPhotoDefault <Boolean>] [-EnablePrivacyMode <Boolean>]
[-PublishLocationDataDefault <Boolean>] [-Force] [-InMemory] [-Tenant <Guid>] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Skype for Business Server gives users the opportunity to share a wealth of presence information with other people:
they can publish a photograph of themselves; they can provide detailed location information; they can have
presence information automatically made available to everyone in the organization (as opposed to having this
information available only to people on their Contacts list).
Some users will welcome the opportunity to make this information available to their colleagues; other users might
be more reluctant to share this data. (For example, many people might be hesitant about having their photo
included in their presence data.) As a general rule, users have control over what information they will (or will not)
share; for example, users can select or clear a check box in order to control whether or not their location
information is shared with others. In addition, the privacy configuration cmdlets enable administrators to manage
privacy settings for their users. In some cases, administrators can enable or disable settings; for example, if the
property AutoInitiateContacts is set to True, then team members will automatically be added to each user's
Contacts list; if set to False, team members will not be automatically be added to each user's Contacts list.
In other cases, administrators can configure the default values in Skype for Business while still giving users the
right to change these values. For example, by default location data is published for users, although users do have
the right to stop location publication. By setting the PublishLocationDataByDefault property to False,
administrators can change this behavior: in that case, location data will not be published by default, although users
will still have the right to publish this data if they choose.
Privacy configuration settings can be applied at the global scope, the site scope, and at the service scope (albeit only
for the User Server service). The New -CsPrivacyConfiguration cmdlet enables you to create new privacy
configuration settings to be applied to a site or service. (New collections cannot be created at the global scope.)
Note that each individual site or service can have, at most, a single collection of privacy configuration settings: if
you try to create a new collection for the Redmond site and that site already has a collection of privacy settings then
your command will fail.

Examples
-------------------------- EXAMPLE 1 --------------------------
New-CsPrivacyConfiguration -Identity site:Redmond -EnablePrivacyMode $True

The command shown in Example 1 creates a new collection of privacy configuration settings that will be applied to
the Redmond site ( -Identity site:Redmond ). The new settings enable privacy mode; this is done by adding the
EnablePrivacyMode parameter and setting the parameter value to True. Note that this command will fail if the
Redmond site already has a collection of privacy settings.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsPrivacyConfiguration -Identity site:Redmond -InMemory

$x.EnablePrivacyMode = $True

Set-CsPrivacyConfiguration -Instance $x

Example 2 demonstrates how you can use the InMemory parameter to create a new collection of privacy
configuration settings that initially exist only in memory. To do this, the New -CsPrivacyConfiguration cmdlet is
called along with the Identity and InMemory parameters; the resulting object is stored in a variable named $x. At
this point, the privacy settings exist only in memory; if you run the Get-CsPrivacyConfiguration cmdlet you will not
see a listing for site:Redmond.
In the second command, the value of the EnablePrivacyMode property is set to True. Finally, the third command
uses the Set-CsPrivacyConfiguration cmdlet to transform this virtual collection of privacy settings into an actual
collection of settings applied to the Redmond site. Calling the Set-CsPrivacyConfiguration cmdlet is critical: if you
fail to call this cmdlet then your new privacy settings will not be applied to the Redmond site, and will disappear
when you end your Windows PowerShell session or delete the variable $x

Parameters
-AutoInitiateContacts
If True, Skype for Business will automatically add your manager and your direct reports to your Contacts list. The
default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayPublishedPhotoDefault
If True, the user's photo will automatically be published in Skype for Business. If False, the user's photo will not be
available unless he or she explicitly selects the option Let others see my photo. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePrivacyMode
If True, gives users the opportunity to enable the advanced privacy mode. In advanced privacy mode, only people
on your Contacts list will be allowed to view your presence information. If False, your presence information will be
available to anyone in your organization. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the privacy configuration settings to be created. To create a new collection of settings at the
site scope, use syntax similar to this:
-Identity site:Redmond

To create new settings at the service scope, use syntax like this:
-Identity service:UserServer:atl-cs-001.litwareinc.com

Privacy settings can only be created for the User Server service. An error will occur if you try to apply these settings
to any other service.
Note that your command will fail if privacy configuration settings already exist for the specified site or service.
Likewise, your command will fail if you attempt to create a new collection of global settings.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PublishLocationDataDefault
If True, location data will automatically be published in Skype for Business. If False, location data will not be
available unless the user explicitly selects the option Show Contacts My Location. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new privacy
configuration settings are being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPrivacyConfiguration cmdlet does not accept pipelined input.
Outputs
The New -CsPrivacyConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration object.

Related Links
Get-CsPrivacyConfiguration
Remove-CsPrivacyConfiguration
Set-CsPrivacyConfiguration
minutes to read • Edit Online

New-CsProxyConfiguration
In ths Article

Creates a new collection of proxy configuration settings. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsProxyConfiguration [-Identity] <XdsIdentity> [-AcceptClientCompression <Boolean>]
[-AcceptServerCompression <Boolean>] [-EnableWhiteSpaceKeepAlive <Boolean>]
[-MaxClientCompressionCount <UInt32>] [-MaxServerCompressionCount <UInt32>] [-Realm <IRealmChoice>]
[-RequestServerCompression <Boolean>] [-TreatAllClientsAsRemote <Boolean>]
[-UseCertificateForClientToProxyAuth <Boolean>] [-UseKerberosForClientToProxyAuth <Boolean>]
[-UseNtlmForClientToProxyAuth <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-DisableNtlmFor2010AndLaterClients <Boolean>] [-DnsCacheRecordCount <UInt32>]
[-MaxClientMessageBodySizeKb <UInt32>] [-MaxServerMessageBodySizeKb <UInt32>] [-OutgoingTlsCount <UInt32>]
[-AllowPartnerPollingSubscribes <Boolean>] [-EnableLoggingAllMessageBodies <Boolean>]
[-LoadBalanceEdgeServers <Boolean>] [-LoadBalanceInternalServers <Boolean>] [-MaxKeepAliveInterval <UInt32>]
[-SpecialConfigurationList <String>] [-TestFeatureList <String>] [-TestParameterList <String>]
[<CommonParameters>]

Description
Skype for Business Server enables you to manage your proxy servers through proxy server configuration settings.
These settings, which can be applied at both the global scope and the service scope (albeit for only the Edge Server
and Registrar services) enable you to control such things as the authentication protocols that can be used by client
endpoints and whether or not compression will be used on incoming and outgoing proxy server connections.
When you install Skype for Business Server, a global collection of proxy server configuration settings is
automatically created for you. As noted, you can also create additional collections at the service scope. These new
collections are created by using the New -CsProxyConfiguration cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsProxyConfiguration -Identity "service:EdgeServer:atl-edge-001.litwareinc.com" -RequestServerCompression


$True -MaxClientMessageBodySizeKb 256

Example 1 creates a new collection of proxy configuration settings for the service EdgeServer:atl-edge-
001.litwareinc.com. These new settings use all the default proxy server property values except for two:
RequestServerCompression, which is set to True; and MaxClientMessageBodySizeKb, which is set to 256. Note that
this command will fail if proxy server settings have already been configured for the service EdgeServer:atl-edge-
001.litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------
$x = New-CsProxyConfiguration -Identity "service:EdgeServer:atl-edge-001.litwareinc.com" -InMemory

$x.RequestServerCompression = $True

$x.MaxClientMessageBodySizeKb = 256

Set-CsProxyConfiguration -Instance $x

The commands shown in Example 2 demonstrate how you can create a collection of proxy server settings that
initially exist only in memory. To do this, the first command calls the New -CsProxyConfiguration cmdlet along with
two parameters: Identity (which specifies the Identity for the settings) and InMemory, which indicates that the new
settings should be created in memory only. The resulting object is stored in the variable $x.
After these virtual settings have been created, commands 2 and 3 are used to modify the values of the
RequestServerCompression and MaxClientMessageBodySizeKb properties, respectively. Finally, command 4 is
used to transform the virtual proxy server configuration settings into an actual collection of settings applied to the
service EdgeServer:atl-edge-001.litwareinc.com. This final command is mandatory. If you do not call the Set-
CsProxyConfiguration cmdlet, no settings will be applied to EdgeServer:atl-edge-001.litwareinc.com and the virtual
settings will disappear as soon as you end your Windows PowerShell session or delete the variable $x.

Parameters
-AcceptClientCompression
When set to True (the default value), the proxy server will accept all incoming compression requests from client
endpoints.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AcceptServerCompression
When set to True (the default value), the proxy server will accept all incoming compression requests from other
servers.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowPartnerPollingSubscribes
When set the True, partner applications are allowed to periodically poll the service for state changes. The default
value is False ($False).
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableNtlmFor2010AndLaterClients
When set to True, users logging on from Skype for Business must use the Kerberos protocol for authentication. The
default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DnsCacheRecordCount
Maximum number of records that can be maintained in the DNS record cache. The default value is 3000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableLoggingAllMessageBodies
When set to True, Microsoft Lync Server will log the actual content of all instant messages. For privacy reasons,
message content is typically deleted and only information about the communicating endpoints is included in the
log files.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableWhiteSpaceKeepAlive
When set to True (the default value), the proxy server expects clients to periodically send a "whitespace message"
(an empty message with no content) to indicate that the connection is still active.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the proxy server configuration settings to be created. Proxy server configuration settings can
only be created at the service scope, and only for the Edge Server and Registrar services. You cannot create settings
at the global scope; likewise, you cannot create settings at the service scope if the service in question already hosts
a collection of proxy server settings. For example, if the service Registrar:atl-cs-001.litwareinc.com already hosts
proxy server settings, then any command that attempts to create new settings for that service will fail.
To specify the Identity for your new proxy server settings, use syntax similar to this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LoadBalanceEdgeServers
When True, software load balancing is employed for requests to Edge Servers. The default value is True ($True).
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LoadBalanceInternalServers
When True, software load balancing is employed for requests to Registrars and other internal servers. The default
value is true ($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxClientCompressionCount
Indicates the maximum number of client-to-server connections that can be compressed at any given time;
additional connections beyond this limit will not be compressed. The compression count can be set to any integer
value between 0 and 65535, inclusive. The default value is 15000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxClientMessageBodySizeKb
The maximum-allowed size (in kilobytes) for the body of a message sent from a client endpoint. The default value is
128, meaning that messages with a body size larger than 128 KB will be rejected. The client message body size can
be set to any integer value between 64 and 256, inclusive.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxKeepAliveInterval
Specifies the amount of time (in minutes) that can elapse before the server verifies that the connection with the
client is still valid. The default value is 20 minutes.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-MaxServerCompressionCount
Indicates the maximum number of server-to-server connections that can be compressed at any given time;
additional connections beyond this limit will not be compressed. The server compression count can be set to any
integer value between 0 and 65535, inclusive. The default value is 1024.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxServerMessageBodySizeKb
The maximum-allowed size (in kilobytes) for the body of a message sent from another server. The default value is
5000, meaning that messages with a body size larger than 5000 KB will be rejected. The server message body size
can be set to any integer value between 1000 and 20000, inclusive.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutgoingTlsCount
Specifies the maximum number of Transport Layer Security (TLS ) connections that can be used for each internal
server. The minimum number of TLS connections is 1, and the maximum number is 4. By default,
OutgoingTlsCount is set to 4.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Realm
Indicates whether or not security credentials are processed by the default proxy server realm (SIP Communications
Service) or by a custom realm. Custom realms must be specified (and created) by using the New -
CsSipProxyCustom cmdlet.

Type: IRealmChoice
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequestServerCompression
When set to True (the default value) the proxy server requests that compression be used on all outgoing
connections to other servers.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SpecialConfigurationList
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TestFeatureList
This parameter is not currently used by Skype for Business Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TestParameterList
This parameter is not currently used by Skype for Business Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TreatAllClientsAsRemote
When set to True, the proxy server functions as if all client connections are external connections that pass through
the Edge Server running the Access Edge service. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseCertificateForClientToProxyAuth
When set to True (the default value), client endpoints will be allowed to use certificates for authentication.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseKerberosForClientToProxyAuth
When set to True (the default value), client endpoints will be allowed to use the Kerberos protocol for
authentication. Although Kerberos is a more secure protocol than NTLM, it cannot be used if the client belongs to a
different realm than the server.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseNtlmForClientToProxyAuth
When set to True (the default value), client endpoints will be allowed to use the NTLM protocol for authentication.
Although NTLM is a less secure protocol than Kerberos, NTLM can be used if the client belongs to a different
domain than the server. That is not true for Kerberos authentication.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsProxyConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsProxyConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.ProxySettings object.

Related Links
Get-CsProxyConfiguration
Remove-CsProxyConfiguration
Set-CsProxyConfiguration
minutes to read • Edit Online

New-CsPublicProvider
In ths Article

Creates a federation relationship with a new public provider. A public provider is an organization that provides
instant messaging, presence, and related services to the general public. This cmdlet was introduced in Lync Server
2010.

Syntax
New-CsPublicProvider [-Identity] <XdsGlobalRelativeIdentity> -ProxyFqdn <String> -Enabled <Boolean>
[-VerificationLevel <VerificationLevelType>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-IconUrl <String>]
[-NameDecorationDomain <String>] [-EnableSkypeDirectorySearch <Boolean>] [-EnableSkypeIdRouting <Boolean>]
[-NameDecorationExcludedDomainList <String>] [-NameDecorationRoutingDomain <String>] [<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When a federation has been established, users in the two organizations can send each
other instant messages, subscribe for presence notifications, and otherwise communicate with one another using
SIP applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1)
direct federation between your organization and another; 2) federation between your organization and a public
provider; and, 3) federation between your organization and a third-party hosting provider.
A public provider is an organization which provides SIP communication services for the general public. When you
establish a federation relationship with a public provider, you effectively establish federation with any user who has
an account hosted by that provider. For example, if you federate with Skype your users will be able to exchange
instant messages and presence information with anyone who has a Skype instant messaging account.
In order to federate with a public provider you need to create and enable a new public provider. (In addition, the
public provider will need to create a federation relationship with you.) The Set-CsPublicProvider enables you to
modify property values for any of the public providers that have been configured for use in your organization.
Note that you cannot federate with a public provider if your Edge servers are configured to use default routing
rather than DNS server routing.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsPublicProvider -Identity "Fabrikam" -ProxyFqdn "proxyserver.fabrikam.com" -Enabled $True

The command shown in Example 1 creates a new federation relationship with a public provider that has the Identity
Fabrikam. In addition to specifying the Identity, two other property values (and their corresponding parameters)
must be set: ProxyFqdn (set to proxyserver.fabrikam.com) and Enabled (which, in this case, is set to True).
-------------------------- EXAMPLE 2 --------------------------
$x = New-CsPublicProvider -Identity "Fabrikam" -ProxyFqdn "proxyserver.fabrikam.com" -Enabled $True -InMemory

$x.VerificationLevel = "AlwaysUnverifiable"

Set-CsPublicProvider -Instance $x

Example 2 demonstrates how you can create a new public provider in memory only, modify the properties of that
provider, then turn the virtual provider into a real provider that can be used in your organization. To do this, the first
command in the example creates a public provider with the Identity Fabrikam. In addition to including the required
parameters (Identity, ProxyFqdn, and Enabled), the command adds the InMemory parameter; this creates an in-
memory-only instance of the provider that is then stored in a variable named $x.
After the in-memory instance of the provider has been created the second command in the example modifies the
VerificationLevel of the virtual provider. The final command then uses the Set-CsPublicProvider cmdlet to turn the
virtual provider (stored in $x) into an actual public provider. If you do not call the Set-CsPublicProvider cmdlet the
real provider will not be created. In turn, the virtual provider will disappear the moment you end your Windows
PowerShell session or delete the variable $x.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether or not the federation relationship between your organization and the public provider is active. If
set to True, users in your organization will be able to exchange instant messages and presence information with
users who have accounts hosted on the public provider. If set to False, users in your organization will not be able to
exchange instant messages and presence information with users who have accounts hosted on the public provider.
You can enable and disable federation relationships at any time by using the Enable-CsPublicProvider cmdlet and
the Disable-CsPublicProvider cmdlet, respectively.

Type: Boolean
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSkypeDirectorySearch
PARAMVALUE: $true | $false
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSkypeIdRouting
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IconUrl
URL for the icon used to indicate a Microsoft Skype contact.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the public provider to be created. The Identity typically the name of the website providing the
services.
Identities must be unique not only among public providers, but also among hosting providers. Suppose you try to
create a new public provider with the Identity Fabrikam. Your command will fail if a public provider or a hosting
provider with that Identity already exists.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NameDecorationDomain
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NameDecorationExcludedDomainList
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NameDecorationRoutingDomain
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyFqdn
Specifies the fully qualified domain name (FQDN ) (for example, proxyserver.fabrikam.com) of the proxy server
used by the public provider.
Proxy FQDNs must be unique not only among public providers, but also among hosting providers. For example,
suppose you try to create a new public provider with the proxy FQDN proxyserver.fabrikam.com. This command
will fail if a public provider or a hosting provider with that proxy FQDN already exists.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VerificationLevel
Indicates how (or if) messages sent from a public provider are verified to ensure that they were sent from that
provider. The VerificationLevel must be set to one of the following values:
AlwaysVerifiable. All messages purportedly sent from this provider will be accepted. If a verification header is not
found in the message it will be added by Skype for Business Server. This is the default value.
AlwaysUnverifiable. All messages purportedly sent from a public provider are considered unverified. They will be
delivered only if they were sent from a person who is on the recipient's Contacts list. For example, if Ken Myer is on
your Contacts list you will be able to receive messages from him. If Pilar Ackerman is not on your Contacts list then
you will not be able to receive messages from her. Note that Skype for Business users can manually override this
setting, thereby allowing themselves to receive messages people not on their Contacts list.
UseSourceVerification. Uses the verification header added to the message by the public provider. If the verification
information is missing the message will be rejected. This value has been deprecated for use in Skype for Business
Server.

Type: VerificationLevelType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPublicProvider cmdlet does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider
object.

Related Links
Disable-CsPublicProvider
Enable-CsPublicProvider
Get-CsPublicProvider
Remove-CsPublicProvider
Set-CsPublicProvider
minutes to read • Edit Online

New-CsPushNotificationConfiguration
In ths Article

Creates a new collection of push notification configuration settings at the site scope. The push notification service
(Apple Push Notification Service and Microsoft Push Notification Service) provides a way to send notifications
about events such as new instant messages or new voice mail to mobile devices such as iPhones and Windows
Phones, even if the Skype for Business application on those devices is currently suspended or running in the
background. This cmdlet was introduced in the cumulative update for Lync Server 2010: November 2011.

Syntax
New-CsPushNotificationConfiguration [-Identity] <XdsIdentity> [-Confirm]
[-EnableApplePushNotificationService <Boolean>] [-EnableMicrosoftPushNotificationService <Boolean>] [-Force]
[-InMemory] [-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

Description
The Apple Push Notification Service and the Microsoft Push Notification Service enable users running Skype for
Business on their Apple iPhone or Windows Phone to receive notifications about Skype for Business Server events
even when Skype for Business is suspended or running in the background. For example, users can receive notice
for events such as these:
Invitations to a new instant messaging session or conference
New instant messages
New voice mail
Without the push notification service, users would receive these notices only when Skype for Business was in the
foreground and serving as the active application.
Administrators have the ability to enable or disable push notifications for iPhone users and/or Windows Phone
users. (By default, push notifications are disabled for both iPhone users and Windows Phone users.) Administrators
can enable or disable push notifications at the global scope by using the Set-CsPushNotificationConfiguration
cmdlet. They can also create custom push notification settings at the site scope by using the New -
CsPushNotificationConfiguration cmdlet. That gives Administrators the ability to provide push notifications to
users in some sites (for example, Redmond) while restricting the use of these notifications in other sites.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsPushNotificationConfiguration -Identity "site:Redmond" -EnableApplePushNotificationService $True -


EnableMicrosoftPushNotificationService -$True

The command shown in Example 1 creates a new collection of push notification settings for the Redmond site, and
enables push notifications from both the Apple Push Notification Service and the Microsoft Push Notification
Service. The latter is done by setting both the EnableApplePushNotificationService and the
EnableMicrosoftPushNotificationService properties to True.
-------------------------- EXAMPLE 2 --------------------------

Get-CsSite | ForEach-Object {New-CsPushNotificationConfiguration -Identity $_.Identity}

Example 2 shows how you can create a set of push configuration settings for each of your Skype for Business
Server sites. To do this, the command first uses the Get-CsSite cmdlet to return a collection of all your Skype for
Business Server sites. That collection is then piped to the ForEach-Object cmdlet, which takes each site in the
collection, calls the New -CsPushNotificationConfiguration cmdlet, and creates a new set of push notification
configuration settings for that site. Note that this command will fail for any site that already hosts a collection of
push notification configuration settings.
-------------------------- EXAMPLE 3 --------------------------

$x = New-CsPushNotificationConfiguration -Identity "site:Redmond" -InMemory

$x.EnableApplePushNotificationService = $True

$x.EnableMicrosoftPushNotificationService = $True

Set-CsPushNotificationConfiguration -Instance $x

Example 3 demonstrates the use of the InMemory parameter to create a collection of push notification
configuration settings that initially exist only in memory. To do this, the example creates a new collection of settings
(with the Identity site:Redmond) and stores this collection in a variable named $x. Note that, after this first
command executes, the collection exists only in memory; if you run the Get-CsPushNotificationConfiguration
cmdlet, you will not see an entry for site:Redmond.
In the next two commands, both the EnableApplePushNotificationService and the
EnableMicrosoftPushNotificationService properties for this virtual collection of settings are set to True, which
enables push notifications from both the Apple Push Notification Service and the Microsoft Push Notification
Service. Finally, the last command uses the Set-CsPushNotificationConfiguration cmdlet to transform the virtual
push notification settings into an actual collection of settings applied to the Redmond site. If you do not call the Set-
CsPushNotificationConfiguration cmdlet, these settings will remain in memory only and will disappear when your
Windows PowerShell session is terminated or the variable $x is deleted.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableApplePushNotificationService
When set to True, iPhone users will receive push notifications from the Apple Push Notification Service. When set
to False, iPhone users will not receive these notifications.
The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMicrosoftPushNotificationService
When set to True, Windows Phone users will receive push notifications from the Microsoft Push Notification
Service. When set to False, Windows Phone users will not receive these notifications.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Push notification settings can only be created at the site scope. To specify a new collection of settings for a site, use
syntax similar to this:
-Identity "site:Redmond"

Note that this command will fail if the Redmond site already hosts a collection of push notification settings.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of a command called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new push
notification configuration settings are being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsPushNotificationConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsPushNotificationConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WriteableConfig.Settings.PushNotificationConfiguration.PushNotificationConfiguration
object.

Related Links
Set-CsPushNotificationConfiguration
Get-CsPushNotificationConfiguration
Remove-CsPushNotificationConfiguration
minutes to read • Edit Online

New-CsQoEConfiguration
In ths Article

Creates a new collection of QoE (Quality of Experience) settings. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsQoEConfiguration [-Identity] <XdsIdentity> [-EnableExternalConsumer <Boolean>] [-EnablePurging <Boolean>]
[-EnableQoE <Boolean>] [-ExternalConsumerIssuedCertId <IssuedCertId>] [-ExternalConsumerName <String>]
[-ExternalConsumerURL <String>] [-KeepQoEDataForDays <UInt32>] [-PurgeHourOfDay <UInt32>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
QoE metrics track the quality of audio and video calls made in your organization, including such things as the
number of network packets lost, background noise, and the amount of "jitter" (differences in packet delay). These
metrics are stored in a database apart from other data (such as call detail records), which allows you to enable and
disable QoE independent of other data recording. Use this cmdlet to create settings that configure QoE at the site
level. (Settings at the global level exist by default and cannot be removed.)
QoE is part of the Monitoring Server role; therefore Monitoring Server must be deployed on your Skype for
Business Server installation before QoE recording takes effect or any QoE data can be collected.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsQoEConfiguration -Identity site:Redmond -EnableQoE $False

The command in Example 1 uses the New -CsQoEConfiguration cmdlet to create a new set of Quality of Experience
settings with the Identity site:Redmond. In addition to the Identity site:Redmond, the new settings also have the
EnableQoE property set to False. Because site settings take precedence over global settings, this means that QoE
will be disabled for the Redmond site, regardless of whether or not QoE has been enabled at the global scope.
-------------------------- EXAMPLE 2 --------------------------

New-CsQoEConfiguration -Identity site:Dublin -KeepQoEDataForDays 30 -PurgeHourOfDay 4

This command creates new QoE settings that apply to the Dublin site. In this example we've set the
KeepQoEDataForDays parameter to 30, so QoE data will be purged from the database after 30 days rather than the
default 60 days. In addition, we've set the PurgeHourOfDay parameter to 4, meaning any data older than the 30
days we just specified will be purged at 4:00 AM.
Note: If you have enabled QoE and call detail recording (CDR ), for performance reasons it's a good idea to make
sure the PurgeHourOfDay setting is different for QoE than for CDR.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExternalConsumer
Specifies whether an external consumer is able to receive QoE reports.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePurging
Specifies whether records will be purged after the duration defined in the KeepQoEDataForDays property has
elapsed.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableQoE
Specifies whether QoE records will be collected and saved to the monitoring database.
Note that even if EnableQoE is set to True, QoE data will not be collected unless a Monitoring Server has been
deployed and associated with a Registrar pool.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalConsumerIssuedCertId
The certificate ID of the certificate that allows access to the external consumer web service.

Type: IssuedCertId
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalConsumerName
The friendly name of the external consumer of the QoE report.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalConsumerURL
The URL of the external consumer to which the QoE reports will be posted.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The site to which the new settings apply. This must be entered in the format site:<site name>, where <site name>
is the name of the site in your Skype for Business Server deployment.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeepQoEDataForDays
The number of days QoE data will be stored before being purged from the database. This value is ignored if
EnablePurging is set to False.
Must be a value from 1 through 2562.
Default: 60

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeHourOfDay
The hour of day that QoE records that have exceeded the number of days specified in the KeepQoEDataForDays
property will be purged.
Must be a value 0 through 23, representing the hour of the day. For example, 0 would be midnight, 13 would be
1:00 PM. Default: 1

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.WritableConfig.Settings.QoE.QoESettings.

Related Links
Remove-CsQoEConfiguration
Set-CsQoEConfiguration
Get-CsQoEConfiguration
minutes to read • Edit Online

New-CsRegistrarConfiguration
In ths Article

Creates a new collection of Registrar configuration settings. Registrars are used to authenticate logon requests and
to maintain information about user status and availability. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsRegistrarConfiguration [-Identity] <XdsIdentity> [-DefaultEndpointExpiration <Int32>]
[-EnableDHCPServer <Boolean>] [-MaxEndpointExpiration <Int32>] [-MinEndpointExpiration <Int32>]
[-MaxEndpointsPerUser <UInt16>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-BackupStoreUnavailableThreshold <TimeSpan>] [-MaxUserCount <UInt64>] [-PoolState <PoolState>]
[-EnableWinFabLogUpload <Boolean>] [-UserCertificateReplicationThreshold <UInt64>]
[-WinFabMaxLogsSizeMb <Int32>] [<CommonParameters>]

Description
The Registrar is perhaps the most important component in Skype for Business Server; after all, without a Registrar,
users would not be able to log on to the system, and Skype for Business Server would not be able to keep track of
users and their current status. When a user logs on to Skype for Business Server, the endpoint the user is logging
on from sends a REGISTER request to the Registrar; in turn, the server responds by challenging the client device
for authentication credentials. If the client passes the challenge (that is, if the client presents a valid set of
credentials), then the user is authenticated and endpoint information such as IP address, port, and user name is
logged in the registration database. When a user logs off, this information is then removed from the database. In
between log on and log off, the Registrar keeps status information up-to-date and helps to route messages to and
from the user.
Registrar configuration settings are used to help manage endpoints and endpoint subscriptions; these settings can
be applied at the global, site, or service scope. (Service scoped-settings can only be used with the Registrar service.)
The New -CsRegistrarConfiguration cmdlet enables you to create new Registrar configuration settings at either the
site or the service scope. Note that a given site or service can only have, at most, one such settings collection; if you
try to add a new collection to a site or service that already hosts a collection of Registrar configuration settings,
your command will fail. Your command will also fail if you try to create new settings at the global scope.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsRegistrarConfiguration -Identity site:Redmond -MaxEndpointsPerUser 4 -EnableDHCPServer $True

Example 1 creates a new collection of Registrar configuration settings for the Redmond site (-Identity
site:Redmond). In addition to specifying the Identity for the new settings, the command also sets the maximum
endpoints per user to 4 (-MaxEndpointsPerUser 4) and enables the use of the DHCP server for client registration (-
EnableDHCPServer $True). Note that this command will fail if the Redmond site has already been assigned a
collection of Registrar configuration settings.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsRegistrarConfiguration -Identity site:Redmond -InMemory

$x.MaxEndpointsPerUser = 4

$x.EnableDHCPServer = $True

Set-CsRegistrarConfiguration -Instance $x

The commands shown in Example 2 also create a new collection of Registrar configuration settings for the
Redmond site (-Identity site:Redmond). In this example, however, the settings are initially created in memory only,
and are later applied to the site itself.
To carry out this task, the first command uses the New -CsRegistrarConfiguration cmdlet to create a new collection
of settings for site:Redmond; the InMemory parameter is added to the end of the command to ensure that these
settings are created in memory only and are not immediately applied to the Redmond site. Because these settings
exist only in memory, they must be stored in a variable; in this example, that's a variable named $x.
In commands 2 and 3, two properties of these new virtual settings (MaxEndpointsPerUser and
EnableDHCPServer) are modified. The final command in the example then uses the Set-CsRegistrarConfiguration
cmdlet to transform the virtual settings stored in $x into an actual set of Registrar configuration settings applied to
the Redmond site. If you do not call the Set-CsRegistrarConfiguration cmdlet, no new settings will be created for
the Redmond site, and your virtual settings will disappear as soon as you end your Windows PowerShell session or
delete the variable $x.

Parameters
-BackupStoreUnavailableThreshold
Specifies the amount of time the system will wait before determining that the backup store is unavailable; at that
point, users will be placed in survivability mode. The default value is 30 minutes (00:30:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultEndpointExpiration
When endpoints log on they have the option of requesting an expiration timeout; this specifies the time interval
that an endpoint can remain logged onto the system before it must contact the server and request an extension.
The DefaultEndpointExpiration property represents the expiration timeout interval for clients that do not request a
specific timeout value.
The DefaultEndpointExpiration must be between 300 (5 minutes) and 900 (15 minutes). The default value is 600
(10 minutes).

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDHCPServer
Indicates whether endpoints can use DHCP servers to locate a Registrar. If True, clients will send a DHCP Inform
message when they first start; the DHCP server will respond by sending the fully qualified domain name (FQDN )
of a Registrar that can be used to log on the user.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableWinFabLogUpload
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Registrar configuration settings to be created. To create settings configured at the site
scope, use syntax similar to this:
-Identity site:Redmond

To create settings at the service level, use syntax like this:


-Identity service:Registrar:atl-cs-001.litwareinc.com

Note that a given site or service can only have, at most, a single collection of Registrar settings. If you try to create a
new collection with the Identity site:Redmond and the Redmond site already hosts a collection of Registrar settings,
then your command will fail.
In addition, you cannot create new Registrar settings at the global scope. If you want to change values at the global
scope, use the Set-CsRegistrarConfiguration cmdlet.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxEndpointExpiration
When endpoints log on, they have the option of requesting an expiration timeout; this specifies the time interval
that an endpoint can remain logged onto the system before it must contact the server and request an extension.
The MaxEndpointExpiration property represents the maximum amount of time that clients can be granted. For
example, if the maximum time is set to 600 seconds and a client requests a timeout interval of 800 seconds, the
client will be given the maximum allowed expiration period: 600 seconds.
The MaxEndpointExpiration must be between 300 (5 minutes) and 900 (15 minutes). The default value is 900.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxEndpointsPerUser
Indicates the maximum number of endpoints a user can simultaneously have connected to the system. (For
example, a user who is logged on to Skype for Business Server with both a computer and a mobile phone would be
using two endpoints.) MaxEndpointsPerUser must be set to a value between 1 and 64, inclusive. The default value
is 8.
Although it is possible to allow a user as many as 64 endpoints, it is recommended that the maximum number of
endpoints not exceed 8. Values of 9 or more are used for backwards compatibility and, in rare cases, when
suggested by Microsoft support personnel. For new deployments, the maximum number of endpoints should be
no more than 8.
Note, too, that the maximum number of endpoints is intended to give individual users multiple points of presence.
As such, this setting is designed for individual users and not for groups of users (such as an entire department.)
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxUserCount
Indicates the maximum number of users that can simultaneously be logged on to a Registrar. MaxUserCount can
be set to any integer value between 2000 and 100000, inclusive. The default value is 12000.

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MinEndpointExpiration
When endpoints log on, they have the option of requesting an expiration timeout; this specifies the time interval
that an endpoint can remain logged onto the system before it must contact the server and request an extension.
The MinEndpointExpiration property represents the minimum amount of time that clients can be granted. For
example, if the minimum time is set to 600 seconds and a client requests a timeout interval of 200 seconds, the
client will be given the minimum allowed expiration period: 600 seconds.
The MinEndpointExpiration must be between 300 (5 minutes) and 900 (15 minutes). The default value is 300.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolState
Current state for the Registrar pool. Allowed values are:
Active
FailedOver
FailingOver
FailedBack
The default value is Active.

Type: PoolState
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserCertificateReplicationThreshold
PARAMVALUE: UInt64

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WinFabMaxLogsSizeMb
PARAMVALUE: Int32

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsRegistrarConfiguration cmdlet does not accept pipelined input.

Outputs
The New -CsRegistrarConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Registrar.RegistrarSettings object.

Related Links
Get-CsRegistrarConfiguration
Remove-CsRegistrarConfiguration
Set-CsRegistrarConfiguration
minutes to read • Edit Online

New-CsReportingConfiguration
In ths Article

Creates a new collection of reporting configuration settings at the service scope. Reporting configuration settings
are used to specify the URL used to access Skype for Business Server 2015 Monitoring Reports. This cmdlet was
introduced in Lync Server 2013.

Syntax
New-CsReportingConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-InMemory] [-ReportingUrl <String>]
[-WhatIf] [<CommonParameters>]

Description
Reporting configuration settings are used to specify the home page for the Skype for Business Server Monitoring
Reports; if you are not using Monitoring Reports then there is no reason for you to modify the reporting
configuration settings.
If you do not know the URL for the Monitoring Reports home page you can determine that URL by doing the
following:
Open the SQL Server Reporting Services Configuration Manager for the SQL Server instance that contains your
monitoring database.
In the Configuration Manager, click Report Manager URL and then click the URL for your Monitoring Reports. If
you see two URLs, click the one that uses the https protocol.
In SQL Server Reporting Services, click LyncServerReports.
On the LyncServerReports page, click Reports Home Page. That will take you to the home page for the Monitoring
Reports. You can then copy the URL and use that URL in conjunction with the CsReportingConfiguration cmdlets.
Skype for Business Server Control Panel: The functions carried out by the New -CsReportingConfiguration cmdlet
are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsReportingConfiguration -Identity "service:MonitoringDatabase:atl-sql-001.litwareinc.com" -ReportingUrl


"https://atl-sql-001.litwareinc.com/lync_reports"

The command shown in Example 1 creates a new collection of reporting configuration settings assigned to the
monitoring database with the identity service:MonitoringDatabase:atl-sql-001.litwareinc.com. In this example, the
value of the ReportingUrl property is set to "https://atl-sql-001.litwareinc.com/lync_reports".
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service Identity of the monitoring database to be associated with the new reporting configuration settings. For
example:
-Identity "Service:MonitoringDatabase:atl-sql-001.litwareinc.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReportingUrl
URL for the Skype for Business Server Monitoring Reports.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsReportingConfiguration cmdlet does not accept pipelined data.

Outputs
The New -CsReportingConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Reporting.ReportingConfiguration object.

Related Links
Get-CsReportingConfiguration
Remove-CsReportingConfiguration
Set-CsReportingConfiguration
minutes to read • Edit Online

New-CsRgsAgentGroup
In ths Article

Creates a new Response Group agent group. An agent group is a collection of agents assigned to a Response
Group queue. Agents are the users assigned to answer calls directed to a particular queue. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsRgsAgentGroup [-Parent] <RgsIdentity> -Name <String> [-AgentAlertTime <Int16>]
[-AgentsByUri <System.Collections.ObjectModel.Collection`1[System.Uri]>] [-Description <String>]
[-DistributionGroupAddress <String>] [-ParticipationPolicy <ParticipationPolicy>]
[-RoutingMethod <RoutingMethod>] [-Force] [-InMemory] [-Confirm] [-WhatIf] [<CommonParameters>]

Description
When someone calls a phone number associated with the Response Group application, the application first
determines which workflow corresponds to the number called. Based on the configuration of that workflow, the call
might be routed to a set of interactive voice response (IVR ) questions (in which the caller is asked one or more
questions along the lines of "Is this question about hardware support or software support?"). Alternatively, the call
might be placed in a Response Group queue; there the caller will be put on hold until a designated person is
available to answer the call. The people designated to answer calls are known as agents, and a collected group of
agents are referred to as a Response Group agent group. Agent groups are associated with queues, and are further
associated with similar job responsibilities: help desk personnel might be grouped in the Help Desk agent group
while customer support agents might be grouped in the Customer Support agent group.
If multiple groups are assigned to a queue, the Response Group application will start by ringing all the available
agents in the first group assigned to that queue. If none of those agents answer, the application will then start
ringing all the available agents in the next group assigned to the queue.
New agent groups are created by using the New -CsRgsAgentGroup cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsRgsAgentGroup -Parent service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk Group"

The command shown in Example 1 creates a new Response Group agent group named Help Desk Group; this new
group is located on the service ApplicationServer:atl-cs-001.litwareinc.com. To create the group, the command calls
New -CsRgsAgentGroup along with the Parent and Name parameters. In this example, no other group parameters
are specified, meaning the group will use all the default property values. Because no agents have been assigned to
this group any calls routed to the new agent group will automatically be disconnected.
-------------------------- EXAMPLE 2 --------------------------
New-CsRgsAgentGroup -Parent service: ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk Group" -
AgentsByUri "sip:kenmyer@litwareinc.com","sip:pilarackerman@litwareinc.com"

In Example 2, a new Response Group agent group is created and, at the same time, a pair of agents is assigned to
that group. To do this, the command calls New -CsRgsAgentGroup along with the parameters Parent and Name. In
addition, this example also includes the parameter AgentsByUri, accompanied by the parameter value
"sip:kenmyer@litwareinc.com","sip:pilarackerman@litwareinc.com". This value is a comma-separated list of the SIP
addresses to be added to the agent group.

Parameters
-AgentAlertTime
Represents the amount of time (in seconds) that a call can remain unanswered before it is automatically routed to
the next agent. The AgentAlertTime can be set to any integer value between 10 and 600 seconds (10 minutes),
inclusive. The default value is 20 seconds. Note: The Agent alert time setting cannot exceed 180 seconds. If it
exceeds 180 seconds, the client application will reject the call due to the SIP transaction timer reaching its
maximum wait time. To avoid this, set the Alert Time value to less than 180 seconds.

Type: Int16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AgentsByUri
Below Content Applies To: Lync Server 2010
Enables you to individually add agents to an agent group. New agents are identified using their SIP addresses.
Below Content Applies To: Lync Server 2013, Skype for Business Server 2015
Enables you to individually add agents to an agent group. New agents are identified using their SIP addresses.
Note that you can only select users who have been enabled for Enterprise Voice.

Type: System.Collections.ObjectModel.Collection`1[System.Uri]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Description
Enables administrators to provide additional, explanatory information about the agent group. For example, the
Description might contain information about who to contact if the group does not receive the expected phone calls.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DistributionGroupAddress
Enables you to add all the members of a distribution group to an agent group.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name to be assigned to the agent group. The combination of the Parent property and the Name property
enables you to uniquely identify agent groups without having to refer to the group's globally unique identifier
(GUID ).
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Service where the new agent group will be hosted. For example:
-Parent "service:ApplicationServer:atl-cs-001.litwareinc.com".

Type: RgsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ParticipationPolicy
Indicates whether or not agents are required to formally sign on to the system in order to receive phone calls
intended for the group. If ParticipationPolicy is set to Informal (the default value) sign-in is not required. If
ParticipationPolicy is set to Formal then sign-in is required.

Type: ParticipationPolicy
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RoutingMethod
Specifies the method used to route new calls to agents. The RoutingMethod must be set to one of the following
values:
LongestIdle - Calls are routed to the agent who has been idle (that is, not involved in a Skype for Business activity)
for the longest period of time.
RoundRobin - Calls are routed to the next agent on the list.
Serial - Calls are always routed to the first agent on the list, and are only routed to other agents if this person is not
available or does not answer within the allotted time.
Parallel - Calls are routed to all agents at the same time, except for agents whose presence status indicates that they
are in a call or otherwise unavailable.
Attendant - Calls are routed to all agents at the same time, even if the agent's presence status indicates that he or
she is in a call or otherwise unavailable. The only exception occurs when an agent has set his or her presence to Do
Not Disturb.
The default routing method is Parallel.
Type: RoutingMethod
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsAgentGroup does not accept pipelined input.

Outputs
New -CsRgsAgentGroup creates new instances of the
Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroup object.

Related Links
Get-CsRgsAgentGroup
Remove-CsRgsAgentGroup
Set-CsRgsAgentGroup
minutes to read • Edit Online

New-CsRgsAnswer
In ths Article

Creates a new Response Group answer. Response Group answers are used to associate a caller response with the
appropriate action. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsRgsAnswer -Action <CallAction> [-DtmfResponse <String>] [-Name <String>]
[-VoiceResponseList <PSListModifier>] [<CommonParameters>]

Description
In order to process calls, the Response Group application often makes a statement or poses a question, then takes
action based on the customer response. For example, the service might ask a caller to press 1 for English or press 2
for Spanish. After a question l has been posed, the system must wait for the caller to respond, and then take the
appropriate action. In this case, that means transferring the call to an English language queue if the caller presses 1
on the telephone keypad, or transferring the call to a Spanish language queue if the caller presses 2 on the keypad.
Response Group answers are used to analyze caller responses and then take the appropriate action. For example, if
callers are given the option of pressing 1 or 2, then two Response Group answers are required in order to address
the situation: one answer to specify the action to be taken if the caller presses 1, and a second answer to specify the
action to be taken if the caller presses 2. These two answers are created by using the New -CsRgsAnswer cmdlet
and must then be added to the appropriate Response Group question (the question that asked the callers to press 1
or 2). Response Group answers must include a set of allowed voice responses (for example, the word "English") or
the appropriate telephone keypad response (for example, pressing 1). Alternatively, you can give customers the
option of using either a voice response or a keypad response: either say the word "English" or press 1 on the
keypad. (The speech recognition used in these situations is the language used in the parent workflow.)
Response Group answers cannot be saved and reused with other questions. For example, suppose you have an
answer that transfers a call to voice mail any time a caller presses 9. You associate that answer with a Response
Group question. Later, you create a new question that also gives callers the option to transfer a call to voice mail by
pressing 9. In that case, you will need to create a new instance of the Response Group answer; there is no way to
save answers and then use that saved answer over and over.

Examples
-------------------------- EXAMPLE 1 --------------------------

$w = New-CsRgsPrompt -TextToSpeechPrompt "Please hold while we transfer your call."

$x = Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"

$y = New-CsRgsCallAction -Prompt $w -Action TransferToQueue -QueueID $x.Identity

$a = New-CsRgsAnswer -Action $y -DtmfResponse 1 -VoiceResponseList Yes -Name "New Service Request"


The commands shown in Example 1 show how you can create a new Response Group answer that is associated
with both a Response Group queue and a Response Group call action. The first command in the example uses the
New -CsRgsPrompt cmdlet to create a TextToSpeechPrompt for the new answer. After that, the Get-CsRgsQueue
cmdlet is called to return an object reference ($x) to the Response Group queue Help Desk. That object reference is
then used in the next command, one that employs New -CsRgsCallAction to create a call action that transfers the
caller to the Help Desk queue. This call action is stored in a variable named $y.
The final command in the example creates a Response Group answer (stored in the variable $a). This answer
accepts either the DTMF response 1 (pressing 1 on the telephone keypad) or the voice response "Yes".
After this answer has been created, it can then be associated with a Response Group question. For details, see the
New -CsRgsQuestion help topic.

Parameters
-Action
Indicates the action to be taken any time a caller provides this answer. The Action parameter must be specified
using an object reference created by using the New -CsRgsCallAction cmdlet. For details, see the Examples section
in this topic.

Type: CallAction
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DtmfResponse
Indicates the key on the telephone keypad to be pressed in order to match the answer. For example, if callers are
told to press 1 for hardware, then DtmfResponse would be configured like this: -DtmfResponse 1.

A single answer can include both a voice response and a dual-tone multifrequency (DTMF ) response. Each answer
must have at least one of these two response types.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name given to the Response Group answer. Names do not have to be unique.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VoiceResponseList
Array of keywords callers can say that will match the answer. For example, if one option available to callers is
"Hardware" then the VoiceResponseList property might be set to this: -VoiceResponseList "Hardware". Multiple
keywords can be specified by using comma-separated values. For example, this parameter value causes either
Hardware or Devices to match the answer: -VoiceResponseList Hardware, Devices. Voice responses should not
contain double quote marks, because that character is not recognized by the speech engine.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsAnswer does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.Answer object.

Related Links
New -CsRgsQuestion
minutes to read • Edit Online

New-CsRgsCallAction
In ths Article

Creates a new Response Group call action. The Response Group application uses call actions to determine what the
system does when a call is received. For example, a call action might specify that a call be transferred to another
queue; that a specific Response Group question be asked; or that the call be ended. This cmdlet was introduced in
Lync Server 2010.

Syntax
New-CsRgsCallAction -Action <Action> [-Prompt <Prompt>] [-Question <Question>] [-QueueID <RgsIdentity>]
[-Uri <String>] [<CommonParameters>]

Description
When someone calls a phone number associated with the Response Group application, the application looks up the
workflow that corresponds to the telephone number called. After the workflow is found, the service checks to see if
the call was received outside business hours or on a holiday. If so, the service takes the action specified for calls
received outside business hours or on a holiday. (For example, the call might be directly transferred to voice mail.) If
the call was received during business hours, then the Response Group application takes the action preconfigured
for calls received during business hours. All these actions are determined in advance, and all these actions are
created by using the New -CsRgsCallAction cmdlet. New -CsRgsCallAction enables you to have calls placed in a
Response Group queue; transferred to voice mail, a SIP address, or a public switched telephone network (PSTN )
phone number; transferred to an interactive voice response (IVR ) question; or closed.
When you use New -CsRgsCallAction you do not directly modify the properties of a workflow, queue, or other
Response Group application element. Instead, the new call action you create initially exists only in memory, and
must be stored in an object reference variable (such as $x). When it comes time to modify something (such as the
DefaultAction property of a workflow ) you then assign the object reference to the appropriate property. For
example:
-DefaultAction $x

It should be noted that the only two call actions that can be assigned to the DefaultAction property are
TransferToQueue and TransferToQuestion. All the other call actions except for TransferToQueue and
TransferToQuestion are valid for actions that take place on holidays or outside business hours. In addition, all the
call actions except for TransferToQuestion can be used for queue timeouts and overflows.

Examples
-------------------------- EXAMPLE 1 --------------------------
$x = Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk Overflow"

$z = Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"

$w = New-CsRgsPrompt -TextToSpeechPrompt "Please hold while we transfer your call."

$y = New-CsRgsCallAction -Prompt $w -Action TransferToQueue -QueueID $x.Identity

$z.OverflowAction = $y

Set-CsRgsQueue $z

The commands shown in Example 1 demonstrate how you can create a new Response Group call action, and then
assign that action to an existing Response Group queue; in this case, the call action determines what will happen if
the queue overflow is reached. To perform this task, the first step is to use Get-CsRgsQueue to retrieve the
Response Group application queue Help Desk Overflow queue from ApplicationServer:atl-cs-001.litwareinc.com;
information from this queue is stored in a variable named $x. A similar command is then used to retrieve the Help
Desk queue, with that information stored in a variable named $z.
After the queues have been retrieved, the New -CsRgsPrompt cmdlet is used to create a text-to-speech prompt to
accompany the new call action. That new call action is created by running the New -CsRgsCallAction cmdlet. The
call action is assigned three parameters: Prompt (the prompt to be used by the call action); Action (which indicates
what happens if the new call action is triggered; the parameter value TransferToQueue means that the call will be
transferred to a different Response Group queue); and QueueID, the alternate queue the call will be transferred to
($x.Identity, which represents the Identity of the queue Help Desk Overflow queue). The new call action is created in
memory and then stored in a variable named $y.
After the call action has been created you can then assign the new call action to the Help Desk queue; this is done
by setting the value of the OverflowAction property to $y, the variable that contains the newly created call action. If
the Help Desk queue "overflows" (that is, if it reaches the maximum number of allowed callers) any subsequent
calls will automatically be transferred to the Help Desk Overflow queue.
Finally, the last command in the example calls Set-CsRgsQueue to write the changes to the actual instance of Help
Desk Overflow queue on ApplicationServer:atl-cs-001.litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------

$w = New-CsRgsPrompt -TextToSpeechPrompt "Please hold while we transfer your call."

$y = New-CsRgsCallAction -Prompt $w -Action TransferToPSTN -Uri "sip:+14255551298@litwareinc.com"

$z = Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk Queue"

$z.OverflowAction = $y

Set-CsRgsQueue $z

The commands shown in Example 2 are similar to the commands shown in Example 1. In Example 2, however, the
new call action transfers the call to a PSTN phone number. To do this, the new call action's Action property is set to
TransferToPSTN and the Uri property is set to "sip:+14255551298@litwareinc.com".

Parameters
-Action
Represents the call action to be taken. The Action must be set to one of the following values:
Terminate - The call is terminated.
TransferToQueue - The call is transferred to a Response Group queue.
TransferToQuestion - The call is transferred to a Response Group question.
TransferToUri - The call is transferred to the specified SIP Uniform Resource Identifier (URI).
TransferToVoiceMailUri - The call is transferred to voice mail.
TransferToPSTN - The call is transferred to a public switched telephone network (PSTN ) telephone.
The Action must be specified each time you create a new call action; there is no default value.

Type: Action
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Prompt
Prompt to be played before the call action takes place. (For example, "Please hold while your call is transferred.")
Prompts must be created by using the New -CsRgsPrompt cmdlet.

Type: Prompt
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Question
Question to be asked if the Action has been set to TransferToQuestion. The question must be created by using the
New -CsRgsQuestion cmdlet.
This parameter is required if the Action has been set to TransferToQuestion.

Type: Question
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-QueueID
Identity of the Response Group queue the call should be transferred to (assuming that the Action has been set to
TransferToQueue). The QueueID is best specified by using Get-CsRgsQueue to retrieve the Identity of the relevant
queue.
This parameter is required if the Action is set to TransferToQueue.
Type: RgsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Uri
SIP address, voice mail URI, or PSTN telephone number that the call should be transferred to.
This parameter is required if the Action has been set to TransferToUri; TransferToVoiceMailUri; or TransferToPSTN.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsCallAction does not accept pipelined input.

Outputs
New -CsRgsCallAction creates new instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.CallAction
object.

Related Links
New -CsRgsQueue
Set-CsRgsQueue
minutes to read • Edit Online

New-CsRgsHoliday
In ths Article

Creates a new Response Group holiday. In the Response Group application, a holiday represents a day when the
agents assigned to a queue, who would typically be working that day, will not be working and will not be available
to answer calls. For example, if United States (U.S.)-based workers are given Thanksgiving Day off, then a holiday
would be configured for November 22, 2013. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsRgsHoliday [-Name <String>] -EndDate <DateTime> -StartDate <DateTime> [<CommonParameters>]

Description
The Response Group application uses business hour collections to indicate the days of the week, and the times of
day, when agents are typically available to answer phone calls. For example, suppose your help desk is usually
staffed from 7:00 A.M. to 7:00 P.M. every Monday. In that case, you would create a business hours collection for the
help desk, and configure an opening time of 7:00 A.M. and a closing time of 7:00 P.M. for the typical Monday.
However, there might be exceptions to the rule that the help desk is staffed every Monday from 7:00 A.M. to 7:00
P.M.. For example, in the U.S. July 4th is a holiday; consequently, your help desk personnel might not be available
on July 4th. In order to account for the fact that the help desk will not be working on Thursday, July 4, 2013, you
need to create a holiday for that date and add it to the help desk holiday set.
To create a holiday you need to use the New -CsRgsHoliday cmdlet. (Note that a "holiday" doesn't have to involve
some sort of celebration or festivities; instead, a holiday is simply a day when agents will not be available to answer
the phone.) New -CsRgsHoliday does not directly add a holiday to a holiday set. Instead, the cmdlet creates a new
holiday that exists in memory only. Because of that, you must create an object reference (such $x) that points to this
in-memory instance. After the holiday has been created in memory, you then use the Get-CsRgsHolidaySet cmdlet
to retrieve the appropriate holiday set and the Set-CsRgsHolidaySet cmdlet to add the new holiday to that set.
Although a holiday set can (and typically does) hold multiple holidays, these holidays must be added to the set one
holiday at a time.

Examples
-------------------------- EXAMPLE 1 --------------------------

$christmasDay = New-CsRgsHoliday -StartDate "12/25/2013 12:00 AM" -EndDate "12/26/2013 12:00 AM" -Name
"Christmas Day"

$y = Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "2013 Holidays"

$y.HolidayList.Add($christmasDay)

Set-CsRgsHolidaySet -Instance $y
The commands shown in Example 1 show how you can create a new holiday (Christmas Day) and then assign that
holiday to an existing holiday set. To do this, the first command in the example uses the cmdlet New -CsRgsHoliday
to create a new holiday, a "virtual" holiday that exists only in memory, and is stored in the variable $christmasDay.
New -CsRgsHoliday uses three parameters: StartDate, which represents the starting date for the holiday
(12/25/2013 12:00 AM ); EndDate, which represents the end date for the holiday (12/26/2013 12:00 AM ); and
Name, which represents the unique name to be given to the holiday.
After creating the new holiday, the second command uses Get-CsRgsHolidaySet to retrieve the holiday set "2013
Holidays" from the service ApplicationServer:atl-cs-001.litwareinc.com. This holiday set is stored in the variable $y.
Command 3 uses the Add method to add the new holiday ($christmasDay) to the virtual copy of the holiday set
($y). The final command then calls Set-CsRgsHolidaySet to write the changes (that is, to add the new holiday) to
the service ApplicationServer:atl-cs-001.litwareinc.com.

Parameters
-EndDate
Ending date for the holiday. The format for the ending date depends on your Regional and Language Options. For
example, in the U.S. an ending date of July 4, 2013 would be formatted like this: -EndDate "7/5/2013 12:00 AM" ,
meaning that the holiday ends at 12:00 A.M. on July 5, 2013.

Type: DateTime
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name used to differentiate the holiday from other holidays.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartDate
Starting date for the holiday. The format for the starting date depends on your Regional and Language Options. For
example, in the U.S. a starting date of July 4, 2013 would be formatted like this: -StartDate "7/4/2013 12:00 AM" ,
indicating that the holiday begins at 12:00 A.M. on July 4, 2013.

Type: DateTime
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsHoliday does not accept pipelined input.
Outputs
New -CsRgsHoliday creates new instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.Holiday object.

Related Links
New -CsRgsHolidaySet
Set-CsRgsHolidaySet
minutes to read • Edit Online

New-CsRgsHolidaySet
In ths Article

Creates a new Response Group holiday set. A Response Group holiday set is a collection of holidays. For example,
you might have one holiday set for a United States (U.S.)-based queue (a set which might include a holiday for the
Fourth of July) and a different set for a queue based in France. The latter queue might define a holiday for Bastille
Day but not for the Fourth of July. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsRgsHolidaySet [-Parent] <RgsIdentity>
-HolidayList
<System.Collections.ObjectModel.Collection`1[Microsoft.Rtc.Rgs.Management.WritableSettings.Holiday]>
-Name <String> [-InMemory] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Description
In order to provide callers with the best possible experience, the Response Group application makes it possible for
you to clearly define when Response Group agents are available to answer calls and when they are not available to
answer calls. With the Response Group application, you can define business hours; these business hours indicate
the days of the week and hours of the day that agents are available to answer calls. For example, if your
organization is typically open from 9:00 A.M. to 5:00 P.M. Monday through Friday then you would configure
business hours that show that agents are available from 9:00 A.M. to 5:00 P.M. Monday through Friday (and, by
extension, that agents are not available at, say, 8:00 P.M. on a Thursday or 2:30 P.M. on a Sunday).
However, in many organizations there are exceptions to the typical work week; for example, in the U.S. an
organization might be closed on Christmas Day or Thanksgiving Day. In order to accommodate for atypical
closures, the Response Group application enables you to designate certain days as holidays: days when the
organization would usually be open but, for whatever reason, is not. Individual holidays (created using the New -
CsRgsHoliday cmdlet) are collected in holiday sets; for example, holidays for the U.S. might be collected in a holiday
set named US_Holidays, while holidays for Japan might be collected in a holiday set named Japanese_Holidays.
After they are collected, holidays and their corresponding holiday sets can then be assigned to Response Group
workflows.
The New -CsRgsHolidaySet cmdlet provides a way for you to configure new holiday sets for use in your
organization. Note that, when you create a new holiday set, you must include at least one holiday; these individual
holidays must be created by using the New -CsRgsHoliday cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------
-HolidayList($x, $y, $z)

$x = New-CsRgsHoliday -StartDate "1/1/2013 12:00 AM" -EndDate "1/2/2013 12:00 AM" -Name "New Year's Day"

New-CsRgsHolidaySet -Parent "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "2013 Holidays" -


HolidayList($x)

The commands shown in Example 1 create a new holiday set named 2013 Holidays and then assign this holiday set
a new holiday (New Year's Day). In order to do this, the first command uses New -CsRgsHoliday to create a holiday
for New Year's Day. New -CsRgsHoliday takes three parameters: StartDate, which indicates the starting date for the
holiday (1/1/2013 12:00 A.M.); EndDate, which represents the end date for the holiday (1/2/2013 12:00 A.M.); and
Name, used to store the name assigned to the holiday. The resulting holiday object is stored in the variable $x.
After the new holiday has been created in memory, New -CsRgsHolidaySet is employed to create a new holiday set
on the service ApplicationServer:atl-cs-001.litwareinc.com. This holiday set is given the name 2013 Holidays (
-Name "2013 Holidays" ) and is assigned the holiday stored in the variable $x: -HolidayList ($x). If you want to
assign multiple holidays to the holiday set simply create the new holidays, assigning each to a unique variable. You
can then include all those variable names as the parameter value passed to HolidayList:

Parameters
-Confirm
Below Content Applies To: Lync Server 2010
Prompts you for confirmation before running the cmdlet.
Below Content Applies To: Lync Server 2013, Skype for Business Server
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HolidayList
One or more holidays to be added to the holiday set. Holidays must be created by using the New -CsRgsHoliday
cmdlet and then stored in an object reference. These object references are then passed to the Holidays parameter in
order to add the holidays to the holiday set. For example, this command creates a holiday named New Year's Day
and then stores the resulting value in an object reference named $x:
$x = New-CsRgsHoliday -StartDate "1/1/2013 12:00 AM" -EndDate "1/2/2013 12:00 AM" -Name "New Year's Day"
Note that the format used for specifying dates and times will depend on your Regional and Language options. The
examples shown in this topic use U.S. English.

Type: System.Collections.ObjectModel.Collection`1[Microsoft.Rtc.Rgs.Management.WritableSettings.Holiday]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name to be assigned to the holiday set. The combination of the Parent property and the Name property
enables you to uniquely identify holiday sets without having to refer to the set's globally unique identifier (GUID ).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Service where the new holiday set will be hosted. For example:
-Parent "service:ApplicationServer:atl-cs-001.litwareinc.com".

Type: RgsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsHolidaySet does not accept pipelined input.

Outputs
New -CsRgsHolidaySet creates new instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.HolidaySet
object.

Related Links
Get-CsRgsHolidaySet
New -CsRgsHoliday
Remove-CsRgsHolidaySet
Set-CsRgsHolidaySet
minutes to read • Edit Online

New-CsRgsHoursOfBusiness
In ths Article

Creates a new set of Response Group application business hours. Business hour sets are used to indicate the days
of the week and the times of day when Response Group agents are typically available to answer phone calls. This
cmdlet was introduced in Lync Server 2010.

Syntax
New-CsRgsHoursOfBusiness [-Parent] <RgsIdentity> -Name <String> [-Custom <Boolean>] [-MondayHours1 <TimeRange>]
[-MondayHours2 <TimeRange>] [-TuesdayHours1 <TimeRange>] [-TuesdayHours2 <TimeRange>]
[-WednesdayHours1 <TimeRange>] [-WednesdayHours2 <TimeRange>] [-ThursdayHours1 <TimeRange>]
[-ThursdayHours2 <TimeRange>] [-FridayHours1 <TimeRange>] [-FridayHours2 <TimeRange>]
[-SaturdayHours1 <TimeRange>] [-SaturdayHours2 <TimeRange>] [-SundayHours1 <TimeRange>]
[-SundayHours2 <TimeRange>] [-InMemory] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Description
In order to provide callers with the best possible experience, the Response Group application makes it possible for
you to clearly define when Response Group agents are available to answer calls and when they are not available to
answer calls. With the Response Group application, you can define business hours; these hours indicate the days of
the week and hours of the day that agents are available to answer calls. For example, if your organization is typically
open from 9:00 A.M. to 5:00 P.M. Monday through Friday then you would configure business hours that show that
agents are available from 9:00 A.M. to 5:00 P.M. Monday through Friday (and, by extension, that agents are not
available at, say, 8:00 P.M. on a Thursday or 2:30 P.M. on a Sunday).
New business hour sets are created by using the New -CsRgsHoursOfBusiness cmdlet. When configuring business
hours within a business hour set, keep in mind that each day of the week has both an Hours1 and an Hours2
property. If your help desk is open from 8:00 A.M to 5:00 P.M., you only need to assign values to the appropriate
Hours1 property. However, suppose the help desk is open from 8:00 A.M. to 2:00 P.M., then open again from 5:00
P.M. until 11:00 P.M.. In that case you need to assign the time range 8:00 A.M. to 2:00 P.M. to Hours1 and 5:00 P.M.
to 11:00 P.M. to Hours2.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsRgsHoursOfBusiness -Parent "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "Help Desk


Business Hours"

The command shown in Example 1 creates a new business hours set named Help Desk Business Hours on
ApplicationServer:atl-cs-001.litwareinc.com. In this example, no business hours are configured for the set.
-------------------------- EXAMPLE 2 --------------------------
$weekday = New-CsRgsTimeRange -Name "Weekday Hours" -OpenTime "8:00" -CloseTime "18:00"

New-CsRgsHoursOfBusiness -Parent "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "Help Desk


Business Hours" -MondayHours1 $weekday -TuesdayHours1 $weekday -WednesdayHours1 $weekday -ThursdayHours1
$weekday -FridayHours1 $weekday

In Example 2, a new business hours set named Help Desk Business Hours is created on ApplicationServer:atl-cs-
001.litwareinc.com. In this example, business hours are configured for each day of the week, Monday through
Friday. To do this, the first command in the example uses the New -CsRgsTimeRange command to create a time
range with an OpenTime of 8:00 AM (8:00) and a CloseTime of 6:00 PM (18:00). This time range is stored in a
variable named $weekday.
The second command in the example then creates the new business hours set. In addition to specifying the set's
Parent and Name, additional parameters (such as MondayHours1) are used to configure business hours for the
weekdays Monday through Friday. In each case, those business hours are set to 8:00 A.M. to 6:00 P.M., and by
using the time range variable $weekday.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Custom
If set to True, the business hours can only be used by the specified workflow. If set to False (the default value) the
business hours can be shared among multiple workflows.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FridayHours1
First set of opening and closing times for Friday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M. every
Friday then you will only need to configure a single time range. However, if your organization is open from 8:00
A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to create two
time ranges for Friday.
If your organization is closed on Fridays, then do not configure a value for either FridayHours1 or FridayHours2.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FridayHours2
Second set of opening and closing times for Friday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Friday then you will only need to configure a single time range. However, if your organization is open from
8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to create
two time ranges for Friday.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MondayHours1
First set of opening and closing times for Monday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Monday then you will only need to configure a single time range. However, if your organization is open from
8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to create
two time ranges for Monday.
If your organization is closed on Mondays, then do not configure a value for either MondayHours1 or
MondayHours2.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-MondayHours2
Second set of opening and closing times for Monday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Monday then you will only need to configure a single time range. However, if your organization is open from
8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M. you will need to create
two time ranges for Monday.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name to be assigned to the business hours set. The combination of the Parent property and the Name
property enables you to uniquely identify business hour sets without having to refer to the collection's globally
unique identifier (GUID ).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Service where the new business hours set will be hosted. For example:
-Parent "service:ApplicationServer:atl-cs-001.litwareinc.com".

Type: RgsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SaturdayHours1
First set of opening and closing times for Saturday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Saturday then you will only need to configure a single time range. However, if your organization is open
from 8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to
create two time ranges for Saturday.
If your organization is closed on Saturdays, then do not configure a value for either SaturdayHours1 or
SaturdayHours2.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SaturdayHours2
Second set of opening and closing times for Saturday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Saturday then you will only need to configure a single time range. However, if your organization is open
from 8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to
create two time ranges for Saturday.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SundayHours1
First set of opening and closing times for Sunday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Sunday then you will only need to configure a single time range. However, if your organization is open from
8:00 AM to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to create
two time ranges for Sunday.
If your organization is closed on Sundays, then do not configure a value for either SundayHours1 or
SundayHours2.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SundayHours2
Second set of opening and closing times for Sunday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Sunday then you will only need to configure a single time range. However, if your organization is open from
8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M. you will need to create
two time ranges for Sunday.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ThursdayHours1
First set of opening and closing times for Thursday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Thursday then you will only need to configure a single time range. However, if your organization is open
from 8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to
create two time ranges for Thursday.
If your organization is closed on Thursdays, then do not configure a value for either ThursdayHours1 or
ThursdayHours2.
Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ThursdayHours2
Second set of opening and closing times for Thursday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Thursday then you will only need to configure a single time range. However, if your organization is open
from 8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to
create two time ranges for Thursday.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TuesdayHours1
First set of opening and closing times for Tuesday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Tuesday then you will only need to configure a single time range. However, if your organization is open from
8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to create
two time ranges for Tuesday.
If your organization is closed on Tuesdays, then do not configure a value for either TuesdayHours1 or
TuesdayHours2.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TuesdayHours2
Second set of opening and closing times for Tuesday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Tuesday then you will only need to configure a single time range. However, if your organization is open from
8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to create
two time ranges for Tuesday.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WednesdayHours1
First set of opening and closing times for Wednesday. If your organization is open from, say, 9:00 A.M. to 5:00 P.M.
every Wednesday then you will only need to configure a single time range. However, if your organization is open
from 8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will need to
create two time ranges for Wednesday.
If your organization is closed on Wednesday, then do not configure a value for either WednesdayHours1 or
WednesdayHours2.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WednesdayHours2
Second set of opening and closing times for Wednesday. If your organization is open from, say, 9:00 A.M. to 5:00
P.M. every Wednesday then you will only need to configure a single time range. However, if your organization is
open from 8:00 A.M. to noon, closes for an hour lunch, then is open again from 1:00 P.M. to 5:00 P.M., you will
need to create two time ranges for Wednesday.

Type: TimeRange
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsHoursOfBusiness does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.BusinessHours object.

Related Links
Get-CsRgsHoursOfBusiness
New -CsRgsTimeRange
Remove-CsRgsHoursOfBusiness
Set-CsRgsHoursOfBusiness
minutes to read • Edit Online

New-CsRgsPrompt
In ths Article

Creates a new workflow prompt for the Response Group application. A workflow prompt is either an audio file that
is played or text that is read aloud in order to supply callers with additional information. This cmdlet was introduced
in Lync Server 2010.

Syntax
New-CsRgsPrompt [-TextToSpeechPrompt <String>] [-AudioFilePrompt <AudioFile>] [<CommonParameters>]

Description
Keeping callers well informed about what's going on, and why, is an important part of a Response Group workflow.
For example, you might have the workflow configured to answer the phone and then immediately place the call on
hold until an agent is available. This is fine, but it also requires you to inform the caller that: 1) the phone has been
answered; and, 2) the call will be put on hold until an agent is available. Providing information such as this is the job
of the workflow prompt.
The Response Group application supports two different kinds of workflow prompts. First, you can pre-record and
then play back an audio file. To do this, you must record the prompt ("Please hold. Your call is important to us.") in
either the .WAV or .WMA format; import the file by using the Import-CsRgsAudioFile cmdlet; and then assign the
file to a workflow prompt. Alternatively, you can simply provide the text to be read and, when the prompt is needed,
the Response Group application will use its text-to-speech capabilities to "read" the text aloud. Text-to-speech
prompts are easier to configure: there are no audio files to record and import. However, audio file prompts are
typically of higher quality and fidelity.
Note that the language used in a text-to-speech prompt is the same as the language used in the parent workflow.
The New -CsRgsPrompt cmdlet provides a way for you to create workflow prompts. Each time you need to use a
prompt it must be created from scratch; there is no way to save and reuse prompts. (This means you will also have
to re-import audio files.) When you create a new workflow prompt you must provide a text-to-speech prompt; if
you want, you can provide an audio file prompt as well. If you provide both a text-to-speech and an audio file
prompt, the Response Group application will use the audio file by default, and will rely on the text-to-speech
prompt only if the audio file is unavailable. After new prompts are created in memory, the corresponding object
reference is then typically added to a Response Group call action.

Examples
-------------------------- EXAMPLE 1 --------------------------
$queue = Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"

$prompt = New-CsRgsPrompt -TextToSpeechPrompt "Welcome to the help desk.


Please hold."

$z = New-CsRgsCallAction -Prompt $prompt -Action TransferToQueue -QueueID $queue.Identity

The commands shown in Example 1 demonstrate how a workflow prompt (and a Response Group queue) can be
included in a new call action. In the first command, the Get-CsRgsQueue cmdlet is used to return an object
reference ($queue) to the Response Group queue Help Desk. In the second command, the New -CsRgsPrompt
cmdlet is then used to create a new text-to-speech prompt, "Welcome to the help desk. Please hold." This new
prompt is stored in a variable named $prompt.
The final command in the example uses New -CsRgsCallAction to create a new Response Group call action ($z).
When creating the call action, the object reference $prompt (which contains the newly-created workflow prompt) is
used as the value for the Prompt parameter; the object reference $queue is likewise used in conjunction with the
QueueID parameter. After running this command, the new call action and its new workflow prompt are ready to be
added to a Response Group workflow.
-------------------------- EXAMPLE 2 --------------------------

$queue = Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk Queue"

$audioFile = Import-CsRgsAudioFile -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -FileName


"welcome.wav" -Content (Get-Content C:\Media\Welcome.wav -Encoding byte -ReadCount 0)

$prompt = New-CsRgsPrompt -AudioFilePrompt $audioFile -TextToSpeechPrompt "Welcome to the help desk.


Please hold."

$z = New-CsRgsCallAction -Prompt $prompt -Action TransferToQueue -QueueID $queue.Identity

The commands shown in Example 2 are a variation of the commands shown in Example 1. In this case, however, the
new workflow prompt includes an audio file prompt in addition to a text-to-speech prompt. To include an audio file
in a workflow prompt, the second command in the example uses the Import-CsRgsAudioFile cmdlet to import the
audio file C:\Media\Welcome.wav. The imported file is then stored in a variable named $audioFile.
After the audio file has been imported, both it and a text-to-speech prompt are added to a new workflow prompt
($prompt). To do this, the AudioFilePrompt parameter is set to $audioFile, and the TextToSpeechPrompt parameter
is set to the text value "Welcome to the help desk. Please hold."

Parameters
-AudioFilePrompt
Audio file to be played when the workflow is activated. The audio file must be imported by using the Import-
CsRgsAudioFile cmdlet.

Type: AudioFile
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TextToSpeechPrompt
Text-to-speech (TTS ) prompt to be read when the workflow is activated. The TTS prompt, which is used only if an
audio file is not specified, can contain a maximum of 4096 characters.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsPrompt does not accept pipelined input.

Outputs
New -CsRgsPrompt creates instances of the Microsoft.Rtc.Management.WritableSettings.Prompt object.

Related Links
Import-CsRgsAudioFile
New -CsRgsCallAction
minutes to read • Edit Online

New-CsRgsQuestion
In ths Article

Creates a new Response Group question. The Response Group application uses questions to provide callers with
choices, and then takes action based on those choices. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsRgsQuestion -Prompt <Prompt> [-AnswerList <PSListModifier>] [-InvalidAnswerPrompt <Prompt>]
[-Name <String>] [-NoAnswerPrompt <Prompt>] [<CommonParameters>]

Description
In order to process calls, the Response Group application often makes a statement or poses a question, then takes
action based on the caller's response. For example, the service might ask a caller to press 1 for English or to press 2
for Spanish. After a question like this has been posed, the system must wait for the caller to respond and then take
the appropriate action. In this case, that means transferring the call to an English language queue if the caller
presses 1 on the telephone keypad, or transferring the call to a Spanish language queue if the caller presses 2 on
the keypad.
In order to create a question you must use the New -CsRgsQuestion cmdlet. When creating a Response Group
question you need to, at a minimum, supply a prompt (that is, the actual question itself) and also a set of supported
answers. For example, if you are giving callers the option of pressing 1 or 2 you will need to have two answers: one
to specify the action to be taken if the caller presses 1, the other to specify the action to be taken if the caller presses
2. If you give callers the option of pressing 1, 2, 3, or 4 then you will need four answers, and so on.
In addition, New -CsRgsQuestion gives you the ability to specify a prompt to be used if a caller either provides an
invalid answer or does not answer at all. For example, if the caller in the original scenario presses 3, the prompt
might state "I'm sorry; I that is not a valid response." At that point, the original prompt will then be replayed.

Examples
-------------------------- EXAMPLE 1 --------------------------
$new = Get-CsRgsQueue -Identity service:ApplicationServer:pool0.litwareinc.com -Name "New Service Request"

$existing = Get-CsRgsQueue -Identity service:ApplicationServer:pool0.litwareinc.com -Name "Existing Service


Request"

$w = New-CsRgsPrompt -TextToSpeechPrompt "Please hold while we transfer your call."

$y = New-CsRgsCallAction -Prompt $w -Action TransferToQueue -QueueID $new.Identity

$z = New-CsRgsCallAction -Prompt $w -Action TransferToQueue -QueueID $existing.Identity

$newRequest = New-CsRgsAnswer -Action $y -DtmfResponse 1 -VoiceResponseList "New" -Name "New Request"

$existingRequest = New-CsRgsAnswer -Action $z -DtmfResponse 2 -VoiceResponseList "Existing" -Name "Existing


Request"

$u = New-CsRgsPrompt -TextToSpeechPrompt "Press 1 or say New for a new service request.


Press 2 or say Existing for an existing service request."

$question = New-CsRgsQuestion -Prompt $u -AnswerList $newRequest $newRequest, $existingRequest

The commands shown in Example 1 create a pair of Response Group answers, and then associate those answers
with a new Response Group question. In order to create the two answers, you must first specify the call actions that
will be taken depending on the answer supplied by the caller. Consequently, the first two commands in the example
create object references to a pair of Response Group queues: New Service Request and Existing Service Request.
After these object references have been created, the next command uses New -CsRgsPrompt to create a text-to-
speech prompt that is stored in a variable named $w.
When that operation is complete, the next two commands create a pair of corresponding call actions: one to
transfer callers to the New Service Request queue, and the other to transfer callers to the Existing Service Request
queue. After the call actions have been created, the New -CsRgsAnswer cmdlet is used to create two Response
Group answers, one stored in the variable $newRequest and the other stored in the variable $existingRequest.
With the two answers stored, New -CsRgsPrompt can then be used to create a prompt for the new question. In this
example, the prompt is a text-to-speech prompt that asks the caller to press 1 (or say "New") for a new service
request, or to press 2 (or say "Existing") for an existing service request. The prompt itself is stored in a variable
named $u.
After the prompt has been created, New -CsRgsQuestion can be called in order to create the new question. In
addition to the Prompt parameter, the AnswerList parameter is used to indicate the two answers associated with
the question: the variables $newRequest and $existingRequest.

Parameters
-AnswerList
Array of valid answers to the question. For example, a help desk question might have answers such as Hardware
Support, Software Installation, and Network Connections. Answers must be created by using the New -
CsRgsAnswer cmdlet.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InvalidAnswerPrompt
Response to be issued in case the caller selects an invalid answer. The InvalidAnswerPrompt must be created by
using the New -CsRgsPrompt cmdlet. Note that after the playing the InvalidAnswerPrompt the application will then
repeat the original prompt.

Type: Prompt
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Identifier for the question. Question names, which do not have to be unique, are limited to a maximum of 128
characters.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NoAnswerPrompt
Response to be issued in case the caller does not respond to the initial prompt. The NoAnswerPrompt must be
created by using the New -CsRgsPrompt cmdlet.

Type: Prompt
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Prompt
Question to be asked of the caller. Prompts must be created by using the New -CsRgsPrompt cmdlet.

Type: Prompt
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsQuestion does not accept pipelined input.

Outputs
New -CsRgsQuestion creates instances of the Microsoft.Rtc.Management.WriteableSettings.Question object.

Related Links
New -CsRgsAnswer
minutes to read • Edit Online

New-CsRgsQueue
In ths Article

Creates a new Response Group queue. With the Response Group application, phone calls are put in a queue and
callers are placed on hold until a Response Group agent is available to answer that call. This cmdlet was introduced
in Lync Server 2010.

Syntax
New-CsRgsQueue [-Parent] <RgsIdentity> -Name <String> [-Description <String>] [-OverflowAction <CallAction>]
[-OverflowCandidate <OverflowCandidate>] [-OverflowThreshold <Int16>] [-TimeoutAction <CallAction>]
[-TimeoutThreshold <Int32>] [-Force] [-InMemory]
[-AgentGroupIDList <System.Collections.ObjectModel.Collection`1[Microsoft.Rtc.Rgs.Management.RgsIdentity]>]
[-Confirm] [-WhatIf] [<CommonParameters>]

Description
When someone calls a phone number associated with the Response Group application, one of two things typically
happens: either the call is transferred to a question that the caller must answer in order to continue (for example,
"Press 1 for hardware support; press 2 for software support") or the call is placed in a queue until an agent is
available to answer the call.
Instead of having a single queue for all phone calls, the Response Group application enables you to create multiple
queues that can be associated with different workflows and different Response Group agent groups. In turn, this
means queues can respond differently to events such as a designated number of calls being simultaneously held in
the queue, or to callers that have been on hold for a specified amount of time.
The New -CsRgsQueue cmdlet provides an easy way for administrators to create new Response Group queues.

Examples
-------------------------- EXAMPLE 1 --------------------------

$x = New-CsRgsCallAction -Action TransferToVoicemailUri -Uri "sip:+14255551298@litwareinc.com"

New-CsRgsQueue -Parent service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk" -OverflowCandidate


"OldestCall" -OverflowAction $x -OverflowThreshold 25

Example 1 creates a new Response Group queue for the service ApplicationServer:atl-cs-001.litwareinc.com. The
first command in the example uses the New -CsRgsCallAction cmdlet to create a call action for the queue; in this
example, any time the overflow threshold is exceeded calls will automatically be transferred to voice mail. This is
configured by setting the Action parameter to TransferToVoicemailUri and the URI property to the voice mail SIP
URI "sip:+14255551298@litwareinc.com".
After the call action has been configured (and stored in the variable $x), New -CsRgsQueue is then used to create a
new queue named Help Desk. In addition to specifying the OverflowAction, this command also configures values
for the OverflowCandidate and OverflowThreshold properties.
Parameters
-AgentGroupIDList
Identity of the Response Group agent groups to be added to the queue. The agent group Identities can be retrieved
using the Get-CsRgsAgentGroup cmdlet. For details, see the Examples section in this topic.
If a call is routed to a queue that has no agent groups assigned to it (or has only been assigned agent groups that
do not have any agents) then that call will automatically be disconnected.

Type: System.Collections.ObjectModel.Collection`1[Microsoft.Rtc.Rgs.Management.RgsIdentity]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional information about the Response Group queue.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name to be assigned to the queue. The combination of the Parent property and the Name property enables
you to uniquely identify Response Group queues without having to refer to the queue's globally unique identifier
(GUID ).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OverflowAction
Action to be taken if the overflow threshold is reached. The OverflowAction must be created using the New -
CsRgsCallAction cmdlet.

Type: CallAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OverflowCandidate
Indicates which call will be acted upon should the overflow threshold be reached. The OverflowCandidate property
must be set to one of the following two values:
NewestCall
OldestCall
The default value is NewestCall.

Type: OverflowCandidate
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OverflowThreshold
Number of simultaneous calls that can be in the queue at any one time before the overflow action is triggered. The
OverflowThreshold can be any integer value between 0 and 1000, inclusive. The default value is Null, meaning that
an unlimited number of calls can be in the queue at any given time.
Type: Int16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Service where the new queue will be hosted. For example:
-Parent "service:ApplicationServer:atl-cs-001.litwareinc.com".

Type: RgsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TimeoutAction
Action to be taken if the timeout threshold is reached. The TimeoutAction must be created using the New -
CsRgsCallAction cmdlet.

Type: CallAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TimeoutThreshold
Amount of time (in seconds) that a call can be in the queue before that call times out. At that point, the system will
take the action specified by the TimeoutAction parameter.
The timeout threshold can be any integer value between 10 and 65535 seconds (approximately 18 hours), inclusive;
the default value is null, meaning that the queue never times out.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None. New -CsRgsQueue does not accept pipelined input.

Outputs
New -CsRgsQueue creates new instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.Queue object.

Related Links
Get-CsRgsQueue
Remove-CsRgsQueue
Set-CsRgsQueue
minutes to read • Edit Online

New-CsRgsTimeRange
In ths Article

Creates a new Response Group time range. Time ranges are used by the Response Group application to specify
opening and closing times for a business day. For example, if your help desk agents are available only from 12:00
P.M. to 5:00 P.M. on Sundays, then you would create a time range for Sunday that had an opening time of 12:00
P.M. and a closing time of 5:00 P.M. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsRgsTimeRange -CloseTime <TimeSpan> -OpenTime <TimeSpan> [-Name <String>] [<CommonParameters>]

Description
The Response Group application uses business hour collections to keep track of the days of the week and the times
of day that agents are typically available to answer phones. For example, suppose your help desk is open every
Monday from 7:00 A.M. to 7:00 P.M. In that case, you need to do two things: you need to use the New -
CsRgsHoursOfBusiness cmdlet to create a collection of business hours for the help desk, and you need to modify
the MondayTimeRange1 property in order to indicate that the help desk opens at 7:00 A.M. and closes at 7:00 P.M.
Modifying an existing business hours collection requires you to use the Set-CsRgsHoursOfBusiness cmdlet.
However, you cannot use that cmdlet to directly modify a time range property; for example, Set-
CsRgsHoursOfBusiness has no parameter that corresponds to the MondayTimeRange1 property. Instead,
modifying a business hours collection requires you to retrieve that collection by using Get-CsRgsHoursOfBusiness,
make changes to the collection in memory only, and then use Set-CsRgsHoursOfBusiness to write those changes
to the actual collection of business hours.
More often than not, changes you make to a business hours collection will involve changing the opening and/or
closing times for a given day (or days). To modify opening and closing times, you must specify those times by using
the New -CsRgsTimeRange cmdlet. When you call this cmdlet, the resulting value must be stored in an object
reference variable. This variable will then be used to set opening and closing times within the business hours of
collection.
You must also use New -CsRgsTimeRange to specify opening and closing hours any time you create a new
collection of business hours.

Examples
-------------------------- EXAMPLE 1 --------------------------
$sundayHours = New-CsRgsTimeRange -Name "Sunday hours" -OpenTime "08:30" -CloseTime "13:30"

$y = Get-CsRgsHoursOfBusiness -Identity Service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk


Hours"

$y.SundayHours1 = $sundayHours

Set-CsRgsHoursOfBusiness -Instance $y

Example 1 shows how you can use the New -CsRgsTimeRange cmdlet to modify the properties of an existing set of
business hours. In this example, New -CsRgsTimeRange is first called in order to create a new time range named
"Sunday hours." This time range sets the opening time for 8:30 A.M. (08:30), and sets the closing time for 1:30 P.M.
(13:30). The in-memory-only time range created by this command is stored in a variable named $sundayHours.

After the time range has been configured, the second command in the example uses the Get-
CsRgsHoursOfBusiness cmdlet to return the business hours collection named Help Desk Hours (found on the
service ApplicationServer:atl-cs-001.litwareinc.com). The returned collection is stored in a variable named $y.
After the collection has been retrieved, command 3 sets the value of the SundayHours1 property to $sundayHours,
the object reference containing the newly created time range. When that command completes, Set-
CsRgsHoursOfBusiness is then used to write those changes to the Help Desk Hours business hours collection.
Note that if you fail to call Set-CsRgsHoursOfBusiness, the newly created time range will exist in memory only, and
will disappear the moment you close Windows PowerShell or delete the variable $sundayHours. If that happens,
then the Help Desk Hours business hours collection will not be updated.
-------------------------- EXAMPLE 2 --------------------------

$sundayHours = New-CsRgsTimeRange -Name "Sunday hours" -OpenTime "08:30" -CloseTime "13:30"

New-CsRgsHoursOfBusiness -Parent Service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk Hours" -


SundayHours1 $sundayHours

Example 2 shows how you can create a new Response Group time range, and then use that time range in a new set
of business hours. The first command in the example uses the New -CsRgsTimeRange cmdlet to create a new time
range named Sunday Hours. The OpenTime for the range is set for 8:30 A.M. ("08:30") and the CloseTime is set for
1:30 P.M. ("13:30" equals 13 hours and 30 minutes when using the 24-hour time format). The resulting time range
object is stored in a variable named $sundayHours.
In the second command, the New -CsRgsBusinessHours cmdlet is used to create a new collection of business hours
named Help Desk Hours. In this command, the variable $sundayHours specifies the time range for the property
SundayHours1.

Parameters
-CloseTime
Time of day when business hours end. CloseTime should be formatted using a 24-hour clock; for example, to
indicate that business hours end at 9:00 P.M. use this format: -CloseTime "21:00".

Type: TimeSpan
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Name
Unique identifier for the time range being created. The Name is limited to a maximum of 128 characters.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OpenTime
Time of day when business hours begin. OpenTime should be formatted using a 24-hour clock; for example, to
indicate that business hours begin at 1:30 P.M. use this format: -OpenTime "13:30".

Type: TimeSpan
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. New -CsRgsTimeRange does not accept pipelined input.

Outputs
New -CsRgsTimeRange creates new instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.TimeRange
object.

Related Links
New -CsRgsHoursOfBusiness
Set-CsRgsHoursOfBusiness
minutes to read • Edit Online

New-CsRgsWorkflow
In ths Article

Creates a new Response Group workflow. Workflows determine the actions that are taken when the Response
Group application receives a phone call. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsRgsWorkflow [-Parent] <RgsIdentity> -Name <String> -PrimaryUri <Uri> [-Active <Boolean>]
[-Anonymous <Boolean>] [-BusinessHoursID <RgsIdentity>] [-CustomMusicOnHoldFile <AudioFile>]
[-DefaultAction <CallAction>] [-Description <String>] [-DisplayNumber <String>]
[-EnabledForFederation <Boolean>] [-HolidayAction <CallAction>] [-Language <String>] [-LineUri <Uri>]
[-NonBusinessHoursAction <CallAction>] [-TimeZone <String>] [-Force] [-InMemory] [-Confirm]
[-HolidaySetIDList <System.Collections.ObjectModel.Collection`1[Microsoft.Rtc.Rgs.Management.RgsIdentity]>]
[-WhatIf] [-Managed <Boolean>] [-ManagersByUri <System.Collections.ObjectModel.Collection`1[System.Uri]>]
[<CommonParameters>]

Description
Workflows are a key element in the Response Group application. Each workflow is uniquely associated with a
phone number; when someone calls that number, the workflow determines how the call will be handled. For
example, the call might be routed to a series of interactive voice response (IVR ) questions that prompt the caller to
enter additional information ("Press 1 for hardware support. Press 2 for software support.") Alternatively, the call
might be placed in a queue and the caller placed on hold until an agent is available to answer the call. The
availability of agents to answer calls is also dictated by the workflow: workflows are used to configure business
hours (the days of the week and the times of day when agents are available to answer calls) and also holidays (days
when no agents are available to answer calls).
New workflows are created by using the New -CsRgsWorkflow cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsRgsWorkflow -Parent service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk" -PrimaryUri


"sip:helpdesk@litwareinc.com"

Example 1 creates a new workflow on the service ApplicationServer:atl-cs-001.litwareinc.com. This workflow is


given the Name Help Desk and is assigned a primary URI of sip:helpdesk@litwareinc.com.
-------------------------- EXAMPLE 2 --------------------------
$prompt = New-CsRgsPrompt -TextToSpeechPrompt "Welcome to the help desk."

$queue = (Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help


Desk").Identity

$callAction = New-CsRgsCallAction -Prompt $prompt -Action TransferToQueue -QueueId $queue

New-CsRgsWorkflow -Parent service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk" -PrimaryUri


"sip:helpdesk@litwareinc.com" -DefaultAction $callAction

The command shown in Example 2 create a new workflow prompt and call action, then assigns those items to a
new Response Group workflow. In the first command, the New -CsRgsPrompt cmdlet is used to create a text-to-
speech prompt "Welcome to the help desk." This new prompt is stored in a variable named $prompt.
The second command uses the Get-CsRgsQueue cmdlet to retrieve the Identity of an existing Response Group
queue named Help Desk; the returned Identity is stored in a variable named $queue.
Command 3 then creates a new call action (stored in a variable named $callAction) that references both the new
prompt ($prompt) and the retrieved queue ($queue). Finally, the last command in the example creates a new
workflow named Help Desk. This command sets the PrimaryUri to sip:helpdesk@litwareinc.com and sets the value
of the DefaultAction property to the call action created in the previous step.

Parameters
-Active
If set to True, this means that the workflow is active and available to take phone calls. If set to False (the default
value), the workflow is not available to take phone calls.
When the Active property is set to True then the workflow will be validated before it is created. For example, the
workflow will not be created if a DefaultAction has not been specified. If Active is set to False (or not configured)
then no validation will take place, and the workflow will be created even if a DefaultAction has not been specified.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Anonymous
If set to True, the identities of individual Response Group agents will be masked any time these agents answer a
call. If set to False (the default value), agent identities will be available to callers.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BusinessHoursID
Days of the week and times of the day that workflow agents are available to answer calls. The business hour
Identities can be retrieved by using the Get-CsRgsHoursOfBusiness cmdlet.
Type: RgsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomMusicOnHoldFile
Represents custom music to be played when callers are placed on hold. (If not defined, callers will hear the default
music when placed on hold.) Custom music must be imported by using the Import-CsRgsAudioFile cmdlet.

Type: AudioFile
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultAction
Indicates the action to be taken when a workflow is opened during business hours. DefaultAction must be defined
by using the New -CsRgsCallAction cmdlet, and must either direct the call to a queue or to a question. The
DefaultAction parameter is mandatory if the workflow is active, but can be omitted if the workflow is inactive.

Type: CallAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to add additional information about a Response Group workflow. For example, the
Description might include contact information for the owner of the workflow. This description appears in the Skype
for Business contact card for the workflow.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
Phone number for the workflow as displayed in Skype for Business. The DisplayNumber can be formatted any way
you want; for example:
-DisplayNumber "555-1219"

-DisplayNumber "1-(425)-555-1219"

-DisplayNumber "1.425.555.1219"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnabledForFederation
Indicates whether the workflow is available to users from a federated domain. If set to False, only users within your
organization will have access to the workflow.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HolidayAction
Action to be taken if a call is received on a holiday. The HolidayAction must be defined by using the New -
CsRgsCallAction cmdlet.

Type: CallAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HolidaySetIDList
Represents days when workflow agents are not available to answer calls. The holiday set Identities can be retrieved
by using the Get-CsRgsHolidaySet cmdlet.
Type: System.Collections.ObjectModel.Collection`1[Microsoft.Rtc.Rgs.Management.RgsIdentity]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Language
Language that is used to read workflow text-to-speech prompts. The language parameter is optional as long as the
operating system is using one of the supported languages shown in the list below. (Note that supported speech
languages represent a subset of the languages that can be used on the operating system.)
If the operating system is not using a supported language, then the Language parameter becomes mandatory, and
the parameter must specify the language code for a supported language. If your operating system is using a non-
supported language on the operating system, and you run the New -CsRgsWorkflow cmdlet without including the
Language parameter, your command will fail.
For example, suppose your operating system is running under the Faroese language. This language is supported by
the Windows operating system, but not by the Response Group application. Therefore, you must include the
Language parameter and a supported language when creating a new workflow.
This is required because, if no language is specified, the workflow uses the operating system language. However,
that language can be used in a workflow only if it is a language supported by the Response Group application.
The language must be specified using one of the following language codes:
ca-ES - Catalan (Spain)
da-DK - Danish (Denmark)
de-DE - German (Germany)
en-AU - English (Australia)
en-CA - English (Canada)
en-GB - English (United Kingdom)
en-IN - English (India)
en-US - English (United States)
es-ES - Spanish (Spain)
es-MX - Spanish (Mexico)
fi-FI - Finnish (Finland)
fr-CA - French (Canada)
fr-FR - French (France)
it-IT - Italian (Italy)
ja-JP - Japanese (Japan)
ko-KR - Korean (Korea)
nb-NO - Norwegian, Bokmal (Norway)
nl-NL - Dutch (Netherlands)
pl-PL - Polish (Poland)
pt-BR - Portuguese (Brazil)
pt-PT - Portuguese (Portugal)
ru-RU - Russian (Russia)
sv-SE - Swedish (Sweden)
zh-CN - Chinese (People's Republic of China)
zh-HK - Chinese (Hong Kong SAR )
zh-TW - Chinese (Taiwan)
For example: -Language "nl-NL".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineUri
Phone number for the workflow. The line Uniform Resource Identifier (URI) must be specified by using the
following format: the TEL: prefix followed by a plus sign, followed by the country/region calling code, area code,
and phone number (using only digits: no blank spaces, periods, or hyphens). For example:
-LineUri "TEL:+14255551219"

Type: Uri
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Managed
When set to True indicates that the workflow will be managed by one or more users. Those users can be specified
by using the ManagedByUri parameter.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ManagersByUri
SIP addresses of the user (or users) who will manage the workflow. For example:
-ManagedByUri "sip:kenmyer@litwareinc.com"

To specify multiple managers separate the manager SIP addresses by using commas:
-ManagedByUri "sip:kenmyer@litwareinc.com", "sip:pilar@litwareinc.com"

Type: System.Collections.ObjectModel.Collection`1[System.Uri]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Unique name to be assigned to the workflow. The combination of the Parent property and the Name property
enables you to uniquely identify workflows without having to refer to the workflow's globally unique identifier
(GUID ).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NonBusinessHoursAction
Action to be taken if a call is received outside the workflow's business hours. The NonBusinessHoursAction must
be defined by using the New -CsRgsCallAction cmdlet.

Type: CallAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Service where the new workflow will be hosted. For example:
-Parent "service:ApplicationServer:atl-cs-001.litwareinc.com".
Type: RgsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
SIP address for the workflow. For example: -PrimaryUri "sip:helpdesk@litwareinc.com". The PrimaryUri must
begin with the "sip:" prefix.

Type: Uri
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TimeZone
Time zone information used when determining holidays and business hours. For example:
-TimeZone "Pacific Standard Time"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsRgsWorkflow cmdlet does not accept pipelined input.

Outputs
The New -CsRgsWorkflow cmdlet creates new instances of the
Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow object.

Related Links
Get-CsRgsWorkflow
Remove-CsRgsWorkflow
Set-CsRgsWorkflow
minutes to read • Edit Online

New-CsRoutingConfiguration
In ths Article

This cmdlet returns an object containing the default settings for a routing configuration object. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsRoutingConfiguration [-Identity] <XdsIdentity> [-Route <PSListModifier>] [-Force] [-InMemory] [-WhatIf]
[-Confirm] [-CallViaWorkCallerId <String>] [-EnableLocationBasedRouting <Boolean>] [<CommonParameters>]

Description
A routing configuration is a container for all voice routes defined within a Skype for Business Server deployment.
To create a new voice route, use the New -CsVoiceRoute cmdlet.
A routing configuration can be defined only at the global level. In addition, you cannot have individually named
routing configurations; there is only one voice route list for the entire Skype for Business Server deployment. In the
Skype for Business Server implementation of Windows PowerShell, if you try to create an object that already exists
by calling a cmdlet beginning with the New verb, you'll receive an error message. Every implementation of Skype
for Business Server includes a default routing configuration object with a Global Identity. What this means is that
the only voice route list that could be created already exists. So a call to the New -CsRoutingConfiguration cmdlet
will always return an error message and will not create a new routing configuration.
The only exception to this is if you specify the InMemory parameter in the call to this cmdlet. This command will
create an object only in memory that contains a default list of voice routes.

Examples
-------------------------- EXAMPLE 1 --------------------------

$x = New-CsRoutingConfiguration -Identity global -InMemory

This command creates an object containing the default routing configuration values and assigns that object to the
variable $x. Any other use of this cmdlet will return an error.

Parameters
-CallViaWorkCallerId
The number the system will display for the callback portion of an external call. External calls first connect the user
making the call by calling a specified number (typically the user's desk phone), once connected to the user, the
system dials the outside number. The CallViaWorkCallerId parameter specifies the number that will be displayed
during the first leg, or callback segment, of the call via work external call. For more information, see New -
CsCallViaWorkPolicy.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableLocationBasedRouting
When set to True, voice routing will be managed by taking into account the location of both the user placing the call
and the user receiving the call. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The scope of the routing configuration. This value must be Global.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Route
A list of all voice routes (Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route objects) defined for the
Skype for Business Server deployment.
You can create voice route objects by using the New -CsVoiceRoute cmdlet. That is the recommended way of
adding voice routes to this list.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Can create an in-memory object of type
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.PstnRoutingSettings.

Related Links
Remove-CsRoutingConfiguration
Set-CsRoutingConfiguration
Get-CsRoutingConfiguration
New -CsVoiceRoute
Get-CsVoiceRoute
minutes to read • Edit Online

New-CsServerApplication
In ths Article

Creates a new server application. Server applications are applications that are hosted by Skype for Business Server.
This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsServerApplication [-Identity] <XdsIdentity> -Uri <String> [-Enabled <Boolean>] [-Critical <Boolean>]
[-ScriptName <String>] [-Priority <Int32>] [-InMemory] [-Force] [-WhatIf] [-Confirm] [-Script <String>]
[<CommonParameters>]

New-CsServerApplication -Parent <String> -Name <String> -Uri <String> [-Enabled <Boolean>]


[-Critical <Boolean>] [-ScriptName <String>] [-Priority <Int32>] [-InMemory] [-Force] [-WhatIf] [-Confirm]
[-Script <String>] [<CommonParameters>]

Description
Server applications refer to the individual programs that run under Skype for Business Server. The New -
CsServerApplication cmdlet provides a way for administrators to configure new server applications.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsServerApplication -Identity "EdgeServer:atl-edge-001.litwareinc.com/EdgeMonitor" -Uri


http://www.litwareinc.com/edgemonitor -Critical $False

Example 1 creates a new server application with the Identity EdgeServer:atl-edge-001.litwareinc.com/EdgeMonitor.


In addition to specifying the Identity, the parameters Uri and Critical are included; these parameters are used to
specify the application URI and to indicate the application is not considered critical.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsServerApplication -Identity "EdgeServer:atl-edge-001.litwareinc.com/EdgeMonitor" -InMemory

$x.Uri = "http://www.litwareinc.com/edgemonitor"

$x.Critical = $False

Set-CsServerApplication -Instance $x

The commands shown in Example 2 demonstrate how you can create a new server application that initially exists
only in memory. To do this, the first command calls the New -CsServerApplication cmdlet along with two
parameters: Identity (which specifies the Identity for the application) and InMemory, which indicates that the new
application should be created in memory only. The resulting server application object is then stored in the variable
$x.
After this virtual server application has been created, commands 2 and 3 are used to modify the values of the Uri
and Critical properties, respectively. Finally, command 4 is used to transform the virtual server application into an
actual server application. Note that this final command is mandatory. If you do not call the Set-CsServerApplication
cmdlet, no application will be configured for EdgeServer:atl-edge-001.litwareinc.com/EdgeMonitor, and the virtual
application will disappear as soon as you end your Windows PowerShell session or delete the variable $x.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Critical
If set to True, then Skype for Business Server will not start unless the application in question can be started. If False,
then Skype for Business Server will start regardless of whether or not the application can be started. If this
parameter is not specified the Critical property will be set to True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Set this value to True to enable the application. Set the value to False to disable the application. If this parameter is
not specified the Enabled property will be set to False and the new application will be disabled.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier for the server application to be created. Server application Identities are composed of the service
where the application is hosted plus the application name. For example, the server application named QoEAgent
might have an Identity similar to this: service:Registrar:atl-cs-001.litwareinc.com/QoEAgent.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Friendly name for the service. If you use the Identity parameter you do not need to include the Name parameter
when creating a new service; instead, the Name property will be populated using the name portion of the
application Identity. For example, if you create a new application with the Identity service:Registrar:atl-cs-
001.litwareinc.com/TestService the application will automatically be named TestService. The Name parameter is
required only if you use the Parent parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Specifies the service that will host the new server application. If you use the Identity parameter, then you do not
need to use either the Parent or the Name parameters; that's because the application Identity combines the values
of the Parent and Name properties. However, you can omit the Identity parameter by using the Parent and Name
parameters instead. In that case, the Parent parameter would need to look something like this:
-Parent "Registrar:atl-cs-001.litwareinc.com"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Priority
Indicates the order of execution for server applications. The application with priority 0 is started first; the
application with priority 1 is started second; and so on. Note that each service that hosts a server application has its
own unique set of priorities. For example, the Registrar service might host three applications with corresponding
priorities 0, 1, and 2. Similarly, the Edge Server service might have four applications; these applications will have
the priorities 0, 1, 2, and 3.
If you do not specify a priority then the application will automatically be added to the bottom of the priority list. If
you add or remove an application the priorities of the other applications will be adjusted accordingly. For example,
if you delete an application that has a priority of 0 then the application that previously had the priority 1 will
automatically have its priority set to 0.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Script
Enables you to associate the server application with a script. To add a script to a server application, use syntax
similar to this:
-Script "Update.ps1"

To remove a script, simply set the Script property to a null value:


-Script $Null

Each server application can only be associated with one script.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ScriptName
Path to the Microsoft SIP Processing Language (MSPL ) script used by the application (if applicable). MSPL is a
scripting language used for filtering and routing SIP messages.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Uri
Unique Uniform Resource Identifier (URI) for the application. For example, the QoEAgent application has the URI
http://www.microsoft.com/LCS/QoEAgent.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsServerApplication cmdlet does not accept pipelined input.

Outputs
The New -CsServerApplication cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application object.

Related Links
Get-CsServerApplication
Remove-CsServerApplication
Set-CsServerApplication
minutes to read • Edit Online

New-CsSimpleUrl
In ths Article

Creates a new simple URL, which can then be added to a simple URL configuration collection. Simple URLs make it easier for users to join meetings
and conferences, and also make it easier for administrators to log on to the Skype for Business Server Control Panel. This cmdlet was introduced in
Lync Server 2010.

Syntax
New-CsSimpleUrl -Component <String> -Domain <String> [-SimpleUrlEntry <PSListModifier>] [-ActiveUrl <String>]
[<CommonParameters>]

Description
In Microsoft Office Communications Server 2007 R2, meetings had URLs similar to this:
https://imdf.litwareinc.com/Join?
uri=sip%3Akenmyer%40litwareinc.com%3Bgruu%3Bopaque%3Dapp%3Aconf%3Afocus%3Aid%3A125f95a0b0184dcea706f1a0191202a8&key=EcznhLh5K5t
However, such URLs are not especially intuitive, and not easy to convey to someone else. The simple URLs introduced in Lync Server 2010 help
overcome those problems by providing users with URLs that look more like this:
https://meet.litwareinc.com/kenmyer/071200
Simple URLs are an improvement over the URLs used in Office Communications Server. However, simple URLs are not automatically created for
you; instead, you must configure the URLs yourself. In addition, you must also do such things as create Domain Name System (DNS ) records for
each URL; configure reverse proxy rules for external access; add the simple URLs to the your Front End Server certificates; and so on.
Skype for Business Server enables you to create three different simple URLs:
Meet - Used for meetings. You must have at least one Meet URL for each of your SIP domains.
Admin - Used to point administrators toward the Skype for Business Server Control Panel.
Dialin - Used for the dial-in conferencing webpage.
Simple URLs are stored in simple URL configuration collections. When you install Skype for Business Server, a global collection is created for you;
you can also create custom collections at the site scope. This gives you the ability to use different simple URLs at each of your sites.
To add an actual URL to a simple URL collection, you must first create the URL by using the New-CsSimpleUrl cmdlet and the New-
CsSimpleUrlEntry cmdlet. The New-CsSimpleUrlEntry cmdlet creates a URL entry: a URL (such as https://meet.litwareinc.com) that can be used as
a simple URL (for meeting, administration, or dial-in conferencing purposes). The object created by the New-CsSimpleUrlEntry cmdlet is added to
the SimpleUrlEntry property of a new simple URL. You must use a separate cmdlet to create the object because the SimpleUrlEntry property can
hold multiple URLs. (However, only one such URL can be designated as the active URL. The active URL represents the actual URL used for
meetings, administration, or dial-in conferencing.)
After creating a simple URL entry, you then use the New-CsSimpleUrl cmdlet to create an in-memory-only instance of a simple URL, defining such
things as the component (the type of simple URL ), the domain, the active URL, and all of the simple URL entries. After you have created an object
representing the simple URL, that object can then be added to a new (or existing) simple URL collection. After updating a simple URL collection, you
must then run the Enable-CsComputer cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

$urlEntry = New-CsSimpleUrlEntry -Url "https://meet.fabrikam.com"

$simpleUrl = New-CsSimpleUrl -Component "meet" -Domain "fabrikam.com" -SimpleUrlEntry $urlEntry -ActiveUrl "https://meet.fabrikam.com"

Set-CsSimpleUrlConfiguration -Identity "site:Redmond" -SimpleUrl @{Add=$simpleUrl}

Example 1 shows how a new URL can be added to an existing collection of simple URLs. To begin with, the first command in the example uses the
New-CsSimpleUrlEntry cmdlet to create a URL entry that points to https://meet.fabrikam.com; this URL entry is stored in a variable named
$urlEntry.
In the second command, the New-CsSimpleUrl cmdlet is used to create an in-memory-only instance of a simple URL. In this example, the URL
Component is set to Meet; the domain is set to fabrikam.com; the ActiveUrl is set to https://meet.fabrikam.com; and the SimpleUrl property is set to
$urlEntry, with $urlEntry being the URL entry created in the first command.
After the URL has been created (and stored in the object reference $simpleUrl) the final command in the example adds the new URL to the simple
URL collection for the Redmond site. This is done by using the Set-CsSimpleUrlConfiguration cmdlet, the SimpleUrl parameter, and the parameter
value @{Add=$simpleUrl}. This syntax causes the URL stored in the object reference $simpleUrl to be added to the SimpleUrl property.

Parameters
-ActiveUrl
Indicates the URL that is actually to be accessed by users. The SimpleUrlEntry property can contain multiple URLs, but only one of those URLs can
be active at a given time. An error will occur if you try to set the ActiveUrl to a value not found in the SimpleUrlEntry property.
To assign an active URL, simply use the URL itself as the parameter value. For example:
-ActiveUrl https://meet.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Component
Indicates the type of simple URL being created. Valid values are:
Meet - URL used for managing meetings.
Admin - URL that points to the Skype for Business Server Control Panel.
Dialin - URL used for dial-in conferencing.
For example:
-Component "Meet"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
SIP domain for the simple URL. For example:
-Domain "litwareinc.com"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SimpleUrlEntry
Collection of URLs for the specified component. For example, both https://meet.litwareinc.com and https://litwareinc.com/meet might be configured
as URL entries for the Meet component. However, only one of those URLs can be (and must be) configured as the active URL.
Simple URL entries must be created by using the New-CsSimpleUrlEntry cmdlet.
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsSimpleUrl cmdlet does not accept pipelined data.

Outputs
The New-CsSimpleUrl cmdlet creates new instances of the Microsoft.Rtc.Management.WritableConfig.SimpleUtl.SimpleUrl object.

Related Links
New-CsSimpleUrlConfiguration
New-CsSimpleUrlEntry
minutes to read • Edit Online

New-CsSimpleUrlConfiguration
In ths Article

Creates a new simple URL configuration collection. Simple URLs make it easier for users to join meetings and conferences. They also make it easier
for Administrators to sign in to the Skype for Business Server Control Panel. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsSimpleUrlConfiguration [-Identity] <XdsIdentity> [-SimpleUrl <PSListModifier>] [-InMemory] [-Force]
[-Tenant <Guid>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
In Microsoft Office Communications Server 2007 R2, meetings had URLs similar to this:
https://imdf.litwareinc.com/Join?
uri=sip%3Akenmyer%40litwareinc.com%3Bgruu%3Bopaque%3Dapp%3Aconf%3Afocus%3Aid%3A125f95a0b0184dcea706f1a0191202a8&key=EcznhLh5K5t
However, such URLs are not especially intuitive, and not easy to convey to someone else. The simple URLs introduced in Lync Server 2010 help
overcome those problems by providing users with URLs that look more like this:
https://meet.litwareinc.com/kenmyer/071200
Simple URLs are an improvement over the URLs used in Office Communications Server. However, simple URLs are not automatically created for
you; instead, you must configure the URLs yourself. In addition, you must also do such things as create Domain Name System (DNS ) records for
each URL; configure reverse proxy rules for external access; add the simple URLs to the your Front End Server certificates; and so on.
Skype for Business Server enables you to create three different simple URLs:
Meet - Used for meetings. You must have at least one Meet URL for each of your SIP domains.
Admin - Used to point administrators toward the Skype for Business Server Control Panel.
Dialin - Used for the dial-in conferencing webpage.
Simple URLs are stored in simple URL configuration collections. When you install Skype for Business Server, a global collection is created for you;
you can also create custom collections at the site scope. This gives you the ability to use different simple URLs at each of your sites.
Simple URL configuration collections are created by using the New-CsSimpleUrlConfiguration cmdlet; you can then use additional cmdlets (such as
the New-CsSimpleUrl cmdlet and the Set-CsSimpleUrlConfiguration cmdlet) to populate these collections with simple URLs. After updating a
simple URL collection you must then run the Enable-CsComputer cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsSimpleUrlConfiguration -Identity "site:Redmond"

The command shown in Example 1 creates a new simple URL collection for the Redmond site. Because no parameters other than Identity are
included with this command, the new collection will not contain any simple URLs. This command will fail if the Redmond site already hosts a simple
URL collection.
-------------------------- EXAMPLE 2 --------------------------

$urlEntry = New-CsSimpleUrlEntry -Url "https://dialin.fabrikam.com"

$simpleUrl = New-CsSimpleUrl -Component "dialin" -Domain "*" -SimpleUrlEntry $urlEntry -ActiveUrl "https://dialin.fabrikam.com"

$urlEntry2 = New-CsSimpleUrlEntry -Url "https://meet.fabrikam.com"

$simpleUrl2 = New-CsSimpleUrl -Component "meet" -Domain "fabrikam.com" -SimpleUrlEntry $urlEntry2

New-CsSimpleUrlConfiguration -Identity "site:Redmond" -SimpleUrl @{Add=$simpleUrl,$simpleUrl2}


Example 2 shows how you can create a new collection of simple URLs that includes two simple URLs (one for meeting management and one for
dial-in conferencing). To do this, the first command in the example uses the New-CsSimpleUrlEntry cmdlet to create a URL entry that points to
https://dialin.litwareinc.com; this URL entry is stored in a variable named $urlEntry. The second command then creates another URL entry, this one
pointing to https://meet.fabrikam.com.
Next, the New-CsSimpleUrl cmdlet is used to create an in-memory-only instance of a simple URL. In this example, the URL Component is set to
dialin; the domain is set to an asterisk (*); the ActiveUrl is set to https://dialin.fabrikam.com; and the SimpleUrl property is set to $urlEntry. (The
variable $urlEntry represents the URL entry created in the first command.) A similar command is then used to create a simple URL for
meet.fabrikam.com.
After the URLs have been created (and stored in the object references $simpleUrl and $simpleUrl2) the final command in the example creates a new
simple URL collection for the Redmond site, adding the two new in-memory-only URLs to that collection. The new URLs are added to the collection
by using the New-CsSimpleUrlConfiguration cmdlet, the SimpleUrl parameter, and the parameter value @{Add=$simpleUrl, $simpleUrl2}. That
syntax causes the URLs stored in the object references $simpleUrl and $simpleUrl2 to be added to the SimpleUrl property.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new simple URL configuration collection. Because new collections can only be created at the site scope, the Identity must be
the prefix "site:" followed by the name of the site. For example, this syntax creates a new collection for the Redmond site:
-Identity "site:Redmond"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this
parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's
matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SimpleUrl
Simple URLs that have been configured for this collection. These URLs must be created by using the New-SimpleUrl cmdlet and the New-
SimpleUrlEntry cmdlet.
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new Simple URL configuration settings are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The New-CsSimpleUrlConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlConfiguration object.

Related Links
Get-CsSimpleUrlConfiguration
New-CsSimpleUrl
New-CsSimpleUrlEntry
Remove-CsSimpleUrlConfiguration
Set-CsSimpleUrlConfiguration
minutes to read • Edit Online

New-CsSimpleUrlEntry
In ths Article

Creates a new simple URL entry, an element needed when creating a simple URL. Simple URLs make it easier for users to join meetings and
conferences, and also make it easier for Administrators to log on to the Skype for Business Server Control Panel. This cmdlet was introduced in Lync
Server 2010.

Syntax
New-CsSimpleUrlEntry -Url <String> [<CommonParameters>]

Description
In Microsoft Office Communications Server 2007 R2, meetings had URLs similar to this:
https://imdf.litwareinc.com/Join?
uri=sip%3Akenmyer%40litwareinc.com%3Bgruu%3Bopaque%3Dapp%3Aconf%3Afocus%3Aid%3A125f95a0b0184dcea706f1a0191202a8&key=EcznhLh5K5t
However, such URLs are not especially intuitive, and not easy to convey to someone else. The simple URLs introduced in Lync Server 2010 help
overcome those problems by providing users with URLs that look more like this:
https://meet.litwareinc.com/kenmyer/071200
Simple URLs are obviously an improvement over the URLs used in Office Communications Server. However, simple URLs are not automatically
created for you; instead, you must configure the URLs yourself. In addition, you must also do such things as create Domain Name System (DNS )
records for each URL; configure reverse proxy rules for external access; add the simple URLs to the your Front End Server certificates; and so on.
Skype for Business Server enables you to create three different simple URLs:
Meet - Used for meetings. You must have at least one Meet URL for each of your SIP domains.
Admin - Used to point administrators toward the Skype for Business Server Control Panel.
Dialin - Used for the dial-in conferencing webpage.
Simple URLs are stored in simple URL configuration collections. When you install Skype for Business Server, a global collection is created for you;
you can also create custom collections at the site scope. This gives you the ability to use different simple URLs at each of your sites.
To add an actual URL to a simple URL collection, you must first create the URL by using the New-CsSimpleUrl cmdlet and the New-
CsSimpleUrlEntry cmdlet. The New-CsSimpleUrlEntry cmdlet creates a URL entry; this is nothing more than a URL (such as
https://meet.litwareinc.com) that can be used as a simple URL (for meeting, administration, or dial-in conferencing purposes). The object created by
the New-CsSimpleUrlEntry cmdlet is then added to the SimpleUrlEntry property of a new simple URL. You must use a separate cmdlet to create the
object; that's because the SimpleUrlEntry property can hold multiple URLs. (However, only one such URL can be designated as the active URL. The
active URL represents the actual URL used for meetings, administration, or dial-in conferencing.)
After creating a simple URL entry, you then use the New-CsSimpleUrl cmdlet to create an in-memory-only instance of a simple URL, defining such
things as the component (the type of simple URL ); the domain; the active URL; and all of the simple URL entries. After you have created an object
representing the simple URL, that object can then be added to a new or existing simple URL collection. After updating a simple URL collection, you
must then run the Enable-CsComputer cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

$urlEntry = New-CsSimpleUrlEntry -Url "https://meet.fabrikam.com"

$simpleUrl = New-CsSimpleUrl -Component "meet" -Domain "fabrikam.com" -SimpleUrlEntry $urlEntry -ActiveUrl "https://meet.fabrikam.com"

Set-CsSimpleUrlConfiguration -Identity "site:Redmond" -SimpleUrl @{Add=$simpleUrl}

Example 1 shows how a new URL can be added to an existing collection of simple URLs. To begin with, the first command in the example uses the
New-CsSimpleUrlEntry cmdlet to create a URL entry that points to https://meet.fabrikam.com; this URL entry is stored in a variable named
$urlEntry.
In the second command, the New-CsSimpleUrl cmdlet is used to create an in-memory-only instance of a simple URL. In this example, the URL
Component is set to Meet; the domain is set to fabrikam.com; the ActiveUrl is set to https://meet.fabrikam.com; and the SimpleUrl property is set to
$urlEntry, with $urlEntry being the URL entry created in the first command.
After the URL has been created (and stored in the object reference $simpleUrl) the final command in the example adds the new URL to the simple
URL collection for the Redmond site. This is done by using the Set-CsSimpleUrlConfiguration cmdlet, the SimpleUrl parameter and the parameter
value @{Add=$simpleUrl}. This syntax causes the URL stored in the object reference $simpleUrl to be added to the SimpleUrl property.
-------------------------- EXAMPLE 2 --------------------------

$urlEntry = New-CsSimpleUrlEntry -Url "https://meet.fabrikam.com"

$urlEntry2 = New-CsSimpleUrlEntry -Url "https://dialin.fabrikam.com"

$simpleUrl = New-CsSimpleUrl -Component "meet" -Domain "fabrikam.com" -SimpleUrlEntry $urlEntry -ActiveUrl "https://meet.fabrikam.com"

$simpleUrl2 = New-CsSimpleUrl -Component "dialin" -Domain "*" -SimpleUrlEntry $urlEntry -ActiveUrl "https://dialin.fabrikam.com"

Set-CsSimpleUrlConfiguration -Identity "site:Redmond" -SimpleUrl @{Add=$simpleUrl, $simpleUrl2}

In Example 2, a pair of URL entries is added to an existing collection of simple URLs. To do this, the first command in the example uses the New-
CsSimpleUrlEntry cmdlet to create a URL entry that points to https://meet.fabrikam.com; this URL entry is stored in a variable named $urlEntry. The
second command then creates a second URL entry, this one stored in the variable $urlEntry2 and pointing to the URL https:// dialin.fabrikam.com.
After the two URL entries have been created, the New-CsSimpleUrl cmdlet is used to create two in-memory-only instances of a simple URL. In the
first instance, the URL Component is set to Meet; the domain is set to fabrikam.com; and the ActiveUrl is set to https://meet.fabrikam.com. In the
second instance, the component is set to Dialin; the domain to an asterisk (*); and the ActiveURL property is set to https://dialin.fabrikam.com.
After the URLs have been created (and stored in the object references $simpleUrl and $simpleUrl2), the final command in the example adds the new
URL to the simple URL collection for the Redmond site. This is done by using the Set-CsSimpleUrlConfiguration cmdlet, the SimpleUrl parameter,
and the parameter value @{Add=$simpleUrl, $simpleUrl2}. This syntax causes the URLs stored in the object references $simpleUrl and $simpleUrl2
to be added to the SimpleUrl property.

Parameters
-Url
URL to be added to the SimpleUrlEntry property of a simple URL. For example:
-Url "https://meet.litwareinc.com"

URLs must start with the "https:" prefix.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The New-CsSimpleUrlEntry cmdlet creates new instances of the Microsoft.Rtc.Management.WritableConfig.SimpleUtl.SimpleUrlEntry object.

Related Links
New-CsSimpleUrl
New-CsSimpleUrlConfiguration
minutes to read • Edit Online

New-CsSipDomain
In ths Article

Creates a new SIP domain for use in your organization. SIP domains are domains authorized to send and receive
SIP traffic, and are used when assigning SIP addresses to users. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsSipDomain [-Identity] <XdsGlobalRelativeIdentity> [-IsDefault <Boolean>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
In order to configure SIP addresses for your users (and thus enable them to use SIP -related software such as
Skype for Business), you need two pieces of information: a user ID (for example, Ken.Myer) and a SIP domain (for
example, litwareinc.com). The SIP domain used to construct a SIP address must be a domain, located within your
Active Directory forest, that is authorized to send and receive SIP traffic. For example, suppose you have domains
named litwareinc.com, fabrikam.com, and contoso.com, but only litwareinc.com has been identified as being a SIP
domain. In that case, you cannot use a SIP address like sip:Ken.Myer@fabrikam.com or sip:Ken.Myer@contoso.com,
at least not until fabrikam.com and contoso.com have been configured as valid SIP domains. That is something you
can do by running the New -CsSipDomain cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsSipDomain -Identity fabrikam.com

The command shown in Example 1 creates a new SIP domain, one that has the Identity fabrikam.com.
-------------------------- EXAMPLE 2 --------------------------

New-CsSipDomain -Identity fabrikam.com -IsDefault $True

Example 2 creates a new SIP domain named fabrikam.com and makes this new domain the default SIP domain. By
making fabrikam.com the default domain, this command also "demotes" the domain that previously served as the
default SIP domain. That's because you can have only one default SIP domain.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) for the new SIP domain. For example:
-Identity fabrikam.com

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsDefault
Indicates whether the domain is the default SIP domain, the domain used by Skype for Business Server any time a
domain name is not explicitly stated. If set to True, the new domain will also become the new default domain
The default value for IsDefault is False. If you do not want to make the new domain the default domain you can
simply leave out the parameter.
If you change the default SIP domain you will need to restart the RTCCAA and RTCCAS services.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsSipDomain cmdlet does not accept pipelined data.

Outputs
The New -CsSipDomain cmdlet creates new instances of the Microsoft.Rtc.Management.Xds.SipDomain object.

Related Links
Get-CsSipDomain
Remove-CsSipDomain
Set-CsSipDomain
minutes to read • Edit Online

New-CsSipProxyCustom
In ths Article

Used to assign a custom realm (SIP Communications Service) to a collection of proxy configuration settings.
Realms (also known as protection domains) are used to authenticate user credentials during logon. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsSipProxyCustom -CustomValue <String> [<CommonParameters>]

Description
Each proxy server must be associated with a realm; realms (also known as protection domains) indicate where a
user's logon credentials should be processed. By default, Skype for Business Server uses SIP Communications
Service as its default realm; however, it is possible to change the realm used by a proxy server. This is done by
creating a SipProxy.Custom object and then assigning that object to the Realm property of the appropriate proxy
server (or servers). You can create a custom realm by using the New -CsSipProxyCustom cmdlet.

Examples
-------------------------- EXAMPLE 1 --------------------------

$x = New-CsSipProxyCustom -CustomValue "Litwareinc Communications Service"

The command shown in Example 1 assigns a custom realm (Litwareinc Communications Service) to a variable
named $x.

Parameters
-CustomValue
Name of the realm to be used for authentication purposes.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsSipProxyCustom cmdlet does not accept pipelined input.
Outputs
The New -CsSipProxyCustom cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Custom object.

Related Links
New -CsSipProxyRealm
New -CsSipProxyUseDefault
minutes to read • Edit Online

New-CsSipProxyRealm
In ths Article

Used to assign the default realm (SIP Communications Service) to a collection of proxy configuration settings.
Realms (also known as protection domains) are used to authenticate user credentials during logon. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsSipProxyRealm -RealmChoice <IRealmChoice> [<CommonParameters>]

Description
Proxy servers provide a way for users outside your internal network to access resources on your internal network.
Each proxy server must be associated with a realm; realms (also known as protection domains) indicate where a
user's logon credentials should be processed. By default, Skype for Business Server uses SIP Communications
Service as its default realm; however, it is possible to change the realm used by a proxy server. The New -
CsSipProxyUseDefault cmdlet and the New -CsSipProxyCustom cmdlet provide a way for you to change the realm
used by a proxy server. These changes can also be made by using the New -CsSipProxyRealm cmdlet. However,
because this cmdlet requires an additional step you might want to use the other two cmdlets any time you need to
change the realm used by a proxy server.

Examples
-------------------------- EXAMPLE 1 --------------------------

$x = New-CsSipProxyUseDefault

$y = New-CsSipProxyRealm -RealmChoice $x

The commands shown in Example 1 assign the default realm (SIP Communications Service) to a variable named
$y. To do this, the first command calls the New -CsSipProxyUseDefault cmdlet in order to create a
SipProxy.UseDefault object; this object is stored in a variable named $x.
In the second command, $x is used as the parameter value for the New -CsSipProxyRealm cmdlet and the
RealmChoice parameter. In turn, this creates a new proxy realm object that is stored in a variable named $y.
-------------------------- EXAMPLE 2 --------------------------

$x = New-CsSipProxyCustom -CustomValue "Litwareinc Communications Service"

$y = New-CsSipProxyRealm -RealmChoice $x

The commands shown in Example 2 assign a custom realm (Litwareinc Communications Service) to a variable
named $y. To do this, the first command calls the New -CsSipProxyCustom cmdlet in order to create a
SipProxy.Custom object; this object (which uses the CustomValue Litwareinc Communications Service) is stored in
a variable named $x.
In the second command, $x is used, along with the New -CsSipProxyRealm cmdlet and the RealmChoice parameter,
to create a new custom realm object.

Parameters
-RealmChoice
Object representing the realm to be used by a proxy server. The RealmChoice must be created by using either the
New -CsSipProxyUseDefault or the New -CsSipProxyCustom cmdlet.

Type: IRealmChoice
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsSipProxyRealm cmdlet does not accept pipelined input.

Outputs
The New -CsSipProxyRealm cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Realm object.

Related Links
New -CsSipProxyCustom
New -CsSipProxyUseDefault
minutes to read • Edit Online

New-CsSipProxyTCP
In ths Article

Creates a new SipProxy.TCP object, which can then be used to configure a static route to use Transmission Control
Protocol (TCP ) as its transport protocol. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsSipProxyTCP -IPAddress <String> [<CommonParameters>]

Description
When you send a SIP message to someone, that message might need to traverse multiple subnets and networks
before it is delivered; the path traveled by the message is often referred to as a route. In networking, there are two
types of routes: dynamic and static. With dynamic routing, servers use algorithms to determine the next location
(the next hop) where a message should be forwarded. With static routing, message paths are predetermined by
system administrators. When a message is received by a server, the server checks the message address and then
forwards the message to the next hop server that has been preconfigured by an administrator. If configured
correctly, static routes help ensure timely, and accurate, delivery of messages, and with minimal overhead placed on
servers. The downside to static routes is the messages are not dynamically rerouted in the event of a network
failure.
Skype for Business Server enables you to set up static routes for proxy servers. These routes are composed of two
primary pieces: proxy configuration settings (created using the New -CsProxyConfiguration cmdlet), and SIP proxy
routes. In turn, SIP proxy routes have a number of properties; for example, each route must have a Transport, a
property that defines the network protocol used for transmitting messages along the route.
Skype for Business Server allows you to specify either Transmission Control Protocol (TCP ) or Transport Layer
Security (TLS ) as your transport protocol. If you decide to use TCP as your protocol, you must first create a TCP
object by using the New -CsSipProxyTCP cmdlet. You can then use that object to specify the protocol for the
Transport object created by the New -CsSipProxyTransport cmdlet.
You do not need to use the New -CsSipProxyTCP cmdlet if you use the New -CsStaticRoute cmdlet to create your
static route.

Examples
-------------------------- EXAMPLE 1 --------------------------

After the SipProxy.TCP object has been created, the New-CsSipProxyTransport cmdlet creates a TCP transport
object.

$tcp = New-CsSipProxyTCP -IPAddress 192.168.1.100

$transport = New-CsSipProxyTransport -TransportChoice $tcp -Port 7500


The commands shown in Example 1 create a new SIP proxy transport object that uses TCP as its transport. To do
this, the first command in the example uses the New -CsSipProxyTCP cmdlet to create a new SipProxy.TCP object
that points to the next hop server with the IP address 192.168.1.100; this TCP object is stored in a variable named
$tcp.

Parameters
-IPAddress
IP address of the next hop router. For example: -IPAddress 192.168.0.240.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsSipProxyTCP cmdlet does not accept pipelined input.

Outputs
The New -CsSipProxyTCP cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.TCP object.

Related Links
New -CsSipProxyTLS
New -CsSipProxyTransport
minutes to read • Edit Online

New-CsSipProxyTLS
In ths Article

Creates a new SipProxy.TLS object, which can then be used to configure a static route to use Transport Layer
Security (TLS ) as its transport protocol. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsSipProxyTLS -Certificate <ITLSTLSChoice> -Fqdn <String> [<CommonParameters>]

Description
When you send a SIP message to someone, that message might need to traverse multiple subnets and networks
before it is delivered; the path traveled by the message is often referred to as a route. In networking, there are two
types of routes: dynamic and static. With dynamic routing, servers use algorithms to determine the next location
(the next hop) where a message should be forwarded. With static routing, message paths are predetermined by
system administrators. When a message is received by a server, the server checks the message address and then
forwards the message to the next hop server that has been preconfigured by an administrator. If configured
correctly, static routes help ensure timely, and accurate, delivery of messages, and with minimal overheard placed
on servers. The downside to static routes is that messages are not dynamically rerouted in the event of a network
failure.
Skype for Business Server enables you to set up static routes for proxy servers. These routes are composed of two
primary pieces: proxy configuration settings and SIP proxy routes. In turn, SIP proxy routes have a number of
properties; for example, each route must have a Transport, a property that defines the network protocol used for
transmitting messages along the route.
Skype for Business Server allows you to specify either Transmission Control Protocol (TCP ) or Transport Layer
Security (TLS ) as your transport protocol. If you decide to use TLS as your protocol, you must first create a TLS
object by using the New -CsSipProxyTLS cmdlet. You can then use that object to specify the protocol for the
Transport object created by the New -CsSipProxyTransport cmdlet.
Note that you must also specify a certificate (to be used for authentication purposes) if you choose to use TLS as
your transport protocol.
The New -CsSipProxyTLS cmdlet is not required if you use the New -CsStaticRoute cmdlet to create your static
route.

Examples
-------------------------- EXAMPLE 1 --------------------------
$cert = New-CsSipProxyUseDefaultCert

$tls = New-CsSipProxyTLS -Certificate $cert -Fqdn atl-proxy-001.litwareinc.com

$transport = New-CsSipProxyTransport -TransportChoice $tls -Port 7500

The commands shown in Example 1 create a new SIP proxy transport object that uses TLS as its transport. Because
TLS requires a certificate to be used for authentication purposes, the first command in the example uses the New -
CsSipProxyUseDefaultCert cmdlet to configure a new SipProxy.UseDefaultCert. This object, stored in a variable
named $cert, instructs Skype for Business Server to use the default certificate for the TLS transport. After the
UseDefaultCert object has been created, the New -CsSipProxyTLS cmdlet can be called to create a new
SipProxy.TLS object, one that uses the default certificate and points to atl-proxy-001.litwareinc.com as the FQDN
of the next hop server.
As soon as the TLS object exists, that object (and the TLS protocol) can be added to a Transport object, an object
created by calling the New -CsSipProxyTransport cmdlet.

Parameters
-Certificate
Certificate to be used for TLS authentication.

Type: ITLSTLSChoice
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Fqdn
Fully qualified domain name (FQDN ) of the next hop server. For example:
-Fqdn atl-proxy-001.litwareinc.com

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New -CsSipProxyTLS cmdlet does not accept pipelined input.

Outputs
The New -CsSipProxyTLS cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.TLS object.

Related Links
New -CsSipProxyTCP
New -CsSipProxyTransport
New -CsSipProxyUseDefaultCert
minutes to read • Edit Online

New-CsSipProxyTransport
In ths Article

Specifies the transmission protocol to be used in a static route. Skype for Business Server enables you to choose
either Transmission Control Protocol (TCP ) or Transport Layer Security (TLS ) as the transmission protocol for a
route. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsSipProxyTransport -Port <UInt16> -TransportChoice <ITransportChoice> [<CommonParameters>]

Description
When you send a SIP message to someone, that message might need to traverse multiple subnets and networks
before it is delivered; the path traveled by the message is often referred to as a route. In networking, there are two
types of routes: dynamic and static. With dynamic routing, servers use algorithms to determine the next location
(the next hop) where a message should be forwarded. With static routing, message paths are predetermined by
system administrators. When a message is received by a server, the server checks the message address and then
forwards the message to the next hop server that has been preconfigured by an administrator. If configured
correctly, static routes help ensure timely and accurate, delivery of messages and with minimal overheard placed on
servers. The downside to static routes is that messages are not dynamically rerouted in the event of a network
failure.
Skype for Business Server enables you to set up static routes for proxy servers. These routes are composed of two
primary pieces: proxy configuration settings and SIP proxy routes. In turn, SIP proxy routes have a number of
properties; for example, each route must have a Transport, a property that defines the network protocol used for
transmitting messages along the route. The Transport property can be specified using the New-CsSipProxyTransport
cmdlet.
The New-CsSipProxyTransport cmdlet has two required parameters: TransportChoice and Port. The TransportChoice
parameter is configured using another cmdlet, either the New-CsSipProxyTCP cmdlet (to assign the Transmission
Control Protocol as the route transport) or the New-CsSipProxyTLS cmdlet (to assign the TLS as the route transport).
Any transport object created by using the New-CsSipProxyTransport cmdlet must be saved to a variable. That
variable will then be used to configure the Transport property of a SIP proxy route.
You do not need to use the New-CsSipProxyTransport cmdlet if you are using the New-CsStaticRoute cmdlet to
create your static route.

Examples
-------------------------- Example 1 ------------------------
$cert = New-CsSipProxyUseDefaultCert

$tls = New-CsSipProxyTLS -Certificate $cert -Fqdn atl-proxy-001.litwareinc.com

$transport = New-CsSipProxyTransport -TransportChoice $tls -Port 7500

The commands shown in Example 1 create a new SIP proxy transport object that uses TLS as its transport. Because
TLS requires a certificate (to be used for authentication purposes), the first command in the example uses the
New-CsSipProxyUseDefaultCert cmdlet to configure a new SipProxy.UseDefaultCert object. This object, stored in a
variable named $cert, instructs Skype for Business Server to use the default certificate for the TLS transport. After
the UseDefaultCert object has been created, the New-CsSipProxyTLS cmdlet can be called to create a new
SipProxy.TLS object, one that uses the default certificate and points to atl-proxy-001.litwareinc.com as the fully
qualified domain name (FQDN ) of the next hop server.
-------------------------- Example 2 ------------------------

$tcp = New-CsSipProxyTCP -IPAddress 192.168.1.100

$transport = New-CsSipProxyTransport -TransportChoice $tcp -Port 7500

The commands shown in Example 2 create a new SIP proxy transport object that uses TCP as its transport. To do
this, the first command in the example uses the New-CsSipProxyTCP cmdlet to create a new SipProxy.TCP object that
points to the next hop server with the IP address 192.168.1.100; this TCP object is stored in a variable named $tcp.
After the SipProxy.TCP object has been created, the New-CsSipProxyTransport cmdlet can then be called to create a
TCP transport object.

Parameters
-Port
Port number used for SIP routing. For example: -Port 7742 .

Type: UInt16
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TransportChoice
Indicates the transmission protocol (TCP or TLS ) to be used on the static route. To use the TCP protocol, create a
transport object by using the New-CsSipProxyTCP cmdlet. To use the TLS protocol, create a transport object by using
the New-CsSipProxyTLS cmdlet.

Type: ITransportChoice
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsSipProxyTransport cmdlet does not accept pipelined input.

Outputs
The New-CsSipProxyTransport cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Transport object.

Related Links
New -CsSipProxyTCP
New -CsSipProxyTLS
minutes to read • Edit Online

New-CsSipProxyUseDefault
In ths Article

Used to assign the default realm (SIP Communications Service) to a collection of proxy configuration settings.
Realms (also known as protection domains) are used to authenticate user credentials during logon. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsSipProxyUseDefault [-Verbose] [<CommonParameters>]

Description
Proxy servers provide a way for users outside your internal network to access resources on your internal network.
Each proxy server must be associated with a realm; realms (also known as protection domains) indicate where a
user's logon credentials should be processed. By default, Skype for Business Server uses SIP Communications
Service as its default realm; however, it is possible to change the realm employed by a proxy server. If you change
the realm and then want to revert back to using the default realm, you can do so by creating a SipProxy.UseDefault
object and then assigning that object to the Realm property of the appropriate proxy server (or servers).

Examples
-------------------------- Example 1 ------------------------

$x = New-CsSipProxyUseDefault

The command shown in Example 1 assigns the default realm (SIP Communications Service) to a variable named
$x.

Parameters
-Verbose
Reports detailed activity to the screen as the cmdlet runs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsSipProxyUseDefault cmdlet does not accept pipelined input.
Outputs
The New-CsSipProxyUseDefault cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefault object.

Related Links
New -CsSipProxyCustom
New -CsSipProxyRealm
minutes to read • Edit Online

New-CsSipProxyUseDefaultCert
In ths Article

Creates an object reference to the default certificate used by Skype for Business Server. This object reference can
then be used to configure a static route to use Transport Layer Security (TLS ) as its transport protocol. This cmdlet
was introduced in Lync Server 2010.

Syntax
New-CsSipProxyUseDefaultCert [-Verbose] [<CommonParameters>]

Description
When you send a SIP message to someone, that message might need to traverse multiple subnets and networks
before it is delivered; the path traveled by the message is often referred to as a route. In networking, there are two
types of routes: dynamic and static. With dynamic routing, servers use algorithms to determine the next location
(the next hop) where a message should be forwarded. With static routing, message paths are predetermined by
system administrators. When a message is received by a server, the server checks the message address and then
forwards the message to the next hop server that has been preconfigured by an administrator. If configured
correctly, static routes help ensure timely and accurate, delivery of messages and with minimal overheard placed on
servers. The downside to static routes is that messages are not dynamically rerouted in the event of a network
failure.
Skype for Business Server enables you to set up static routes for proxy servers. If you elect to use TLS (the
recommended transport) you must also specify the certificate to be used for authentication purposes. You can
either obtain a certificate specifically for use on your static route, or you can configure TLS to use your default
Skype for Business Server certificate. If you decide to use the default certificate, you can create an object reference
to that certificate by running the New-CsSipProxyUseDefaultCert cmdlet. In turn, that certificate object reference can
be used by the New-CsSipProxyTLS cmdlet to configure TLS as the transport protocol.
Note that the New -CsSipProxyUseDefaultCert cmdlet is not required if you use the New-CsStaticRoute cmdlet to
create your static route.

Examples
-------------------------- Example 1 --------------------------

$cert = New-CsSipProxyUseDefaultCert

$tls = New-CsSipProxyTLS -Certificate $cert -Fqdn atl-proxy-001.litwareinc.com

$transport = New-CsSipProxyTransport -TransportChoice $tls -Port 7500

The commands shown in Example 1 create a new SIP proxy transport object that uses TLS as its transport. Because
TLS requires a certificate (to be used for authentication purposes), the first command in the example uses the
New-CsSipProxyUseDefaultCert cmdlet to configure a new SipProxy.UseDefaultCert object. This object, stored in a
variable named $cert, instructs Skype for Business Server to use the default certificate for the TLS transport. After
the UseDefaultCert object has been created, the New-CsSipProxyTLS cmdlet can be called to create a new
SipProxy.TLS object, one that uses the default certificate and points to atl-proxy-001.litwareinc.com as the fully
qualified domain name (FQDN ) of the next hop server.
As soon as the TLS object exists, that object (and the TLS protocol) can be added to a Transport object, an object
created by calling the New-CsSipProxyTransport cmdlet.

Parameters
-Verbose
Reports detailed activity to the screen as the cmdlet runs.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsSipProxyUseDefaultCert cmdlet does not accept pipelined input.

Outputs
The New-CsSipProxyUseDefaultCert cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert object.

Related Links
New -CsSipProxyTLS
minutes to read • Edit Online

New-CsSipResponseCodeTranslationRule
In ths Article

Creates a new SIP response code translation rule. These rules enable administrators to map SIP response codes
with values between 400 and 699 to the values used by Skype for Business Server. This cmdlet was introduced in
Lync Server 2010.

Syntax
New-CsSipResponseCodeTranslationRule [-Identity] <XdsIdentity> -TranslatedResponseCode <Int32>
[-Priority <Int32>] [-ReceivedResponseCode <Int32>] [-InMemory] [-Force] [-WhatIf] [-Confirm]
[-ReceivedISUPCauseValue <Int32>] [<CommonParameters>]

New-CsSipResponseCodeTranslationRule -TranslatedResponseCode <Int32> -Name <String> -Parent <String>


[-Priority <Int32>] [-ReceivedResponseCode <Int32>] [-InMemory] [-Force] [-WhatIf] [-Confirm]
[-ReceivedISUPCauseValue <Int32>] [<CommonParameters>]

Description
SIP trunking provides a way to connect a Voice over Internet Protocol (VoIP ) network (such as Enterprise Voice)
with the public switched telephone network (PSTN ). In Skype for Business Server, the Mediation Server uses
trunking peers to interact with the PSTN network. When an outgoing call fails on the PSTN network, an ISDN
User Part (ISUP ) cause code is automatically generated. For example, a PSTN gateway might send cause code 34
to indicate that no circuit or channel was available for completing the call. When a Mediation Server trunking peer
receives that ISUP cause code, it converts that code to a SIP response code, which is then sent to the Mediation
Server itself. In turn, Skype for Business Server uses these response codes to make its outbound routing decisions.
For example, a malfunctioning gateway might automatically be assigned a "less-preferred" status; this minimizes
the use of the malfunctioning gateway and thus maximizes the chance of a call being successfully completed.
However, not all gateways use the recommended ISUP cause code to SIP response code mapping used by Skype
for Business Server. For these gateways, administrators can use the CsSipResponseCodeTranslationRule cmdlets to
map the gateway SIP response code (in combination with the ISUP cause code, if that cause code is available) to a
SIP response code used by Skype for Business Server. For example, a gateway might map ISUP cause code 34
("No circuit/channel is available") to SIP response code 486 ("Busy here"). Based on a response code of 486, the
outbound routing logic of Skype for Business Server will not attempt to find a new gateway in order to complete
the call.
For Skype for Business Server, however, that SIP response code of 486 should instead be mapped to SIP response
code 503. A response code of 503 triggers the retry mechanism in the outbound routing logic of Skype for
Business Server; that means that the system will try to find another gateway in order to complete the call. To handle
this situation, you can create a translation rule that maps the combination of ISUP cause code 34 and SIP response
code 486 to a SIP response code of 503. These new translation rules are created by using the
New-CsSipResponseCodeTranslationRule cmdlet. Translation rules can be assigned to the global scope, the site scope,
or to the service scope (for the PSTN Gateway service only).
Examples
-------------------------- Example 1 ------------------------

New-CsSipResponseCodeTranslationRule -Identity "PstnGateway:192.168.0.240/Rule404" -ReceivedResponseCode 434 -


TranslatedResponseCode 404

The command shown in Example 1 creates a new SIP response code translation rule with the Identity
PstnGateway:192.168.0.240/Rule404. This rule translates a received response code of 434 to the standard SIP
response code 404 (Not Found).
-------------------------- Example 2 ------------------------

New-CsSipResponseCodeTranslationRule -Parent "PstnGateway:192.168.0.240" -Name "Rule404" -ReceivedResponseCode


434 -TranslatedResponseCode 404

The command shown in Example 2 performs the same task as the command shown in Example 1. In Example 2,
however, the Parent and Name parameters are used instead of the Identity parameter. This simply shows an
alternate way of creating a new SIP response code translation rule that has the Identity
PstnGateway:192.168.0.240/Rule404.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the translation rule to be created. The identity for a translation rule consists of two parts: the
scope where the rule is to be assigned and the name to be given to the rule. For example, a translation rule named
Rule404 to be created at the global scope would have an Identity that looks like this: global/Rule404.
Instead of using the Identity parameter, you can use the Parent and Name parameters when creating a new
translation rule.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name used to differentiate one translation rule from another. Names must be unique within a given scope; for
example, the Redmond site can only have one translation rule named Rule404. However, you can have a translation
rule named Rule404 at the Redmond site and another rule named Rule404 at the Dublin site.
The Name parameter must always be used in conjunction with the Parent parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Scope where the new translation rule is to be assigned. To assign a rule to the global scope, use this syntax:
-Parent global

To assign a rule to the site scope, use syntax like this:


-Parent site:Redmond

To assign a rule to the service scope, use syntax similar to this:


-Parent PstnGateway:192.168.0.242

The Parent parameter must always be used in conjunction with the Name parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Priority
Relative priority of the translation rule. Rules are processed in order of their assigned priority; the first rule to be
processed has a priority of 0; the second rule to be processed has a priority of 1 and so on. If not specified the new
rule will be given the lowest priority in its scope.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReceivedISUPCauseValue
Value of the ISDN User Part (ISUP ) code that must be present in the SIP response message used by a gateway
when responding to an INVITE message. A value of -1 indicates that only the SIP response code will be used when
executing the translation rule; the ISUP cause code will be ignored.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReceivedResponseCode
Value of the SIP response code used by a gateway when responding to an INVITE message. A response code can
be any integer value between 400 and 699, inclusive. Although the cmdlet will accept integer values less than 400,
these are not recognized as final responses. As a result, the translation rule will never be used. A value of 0 means
that only the ISUP cause code will be used when executing the translation rule; the SIP response code will be
ignored.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TranslatedResponseCode
Value of the Skype for Business Server SIP response code that the ReceivedResponseCode and/or the
ReceivedISUPCauseCode should be translated to. Translated response codes can be any integer value between 400
and 699, inclusive.

Type: Int32
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsSipResponseCodeTranslationRule cmdlet does not accept pipelined input.

Outputs
The New-CsSipResponseCodeTranslationRule cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTRanslationRule#Decorated
object.

Related Links
Get-CsSipResponseCodeTranslationRule
Remove-CsSipResponseCodeTranslationRule
Set-CsSipResponseCodeTranslationRule
minutes to read • Edit Online

New-CsStaticRoute
In ths Article

Creates a new static phone route. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsStaticRoute -Destination <String> -MatchUri <String> [-Enabled <Boolean>] [-MatchOnlyPhoneUri <Boolean>]
-Port <UInt16> [-ReplaceHostInRequestUri <Boolean>] [-TCPRoute] [<CommonParameters>]

New-CsStaticRoute -Destination <String> -MatchUri <String> [-Enabled <Boolean>] [-MatchOnlyPhoneUri <Boolean>]


-Port <UInt16> [-ReplaceHostInRequestUri <Boolean>] [-TLSCertIssuer <String>] [-TLSCertSerialNumber <Byte[]>]
[-TLSRoute] [-UseDefaultCertificate <Boolean>] [<CommonParameters>]

Description
When you send a SIP message to someone that message might need to traverse multiple subnets and networks
before it is delivered; the path traveled by the message is often referred to as a route. In networking, there are two
types of routes: dynamic and static. With dynamic routing, servers use algorithms to determine the next location
(the next hop) where the message should be forwarded. With static routing, message paths are predetermined by
system administrators. When a message is received by a server, the server checks the message address and then
forwards the message to the next hop server that has been preconfigured by an administrator. If configured
correctly, static routes help ensure timely and accurate, delivery of messages and with minimal overheard placed on
servers. The downside to static routes is that messages are not dynamically rerouted in the event of a network
failure.
New static routes are created by using the New-CsStaticRoute cmdlet. After a route has been created by using the
New-CsStaticRoute cmdlet, you must then add the route to a collection of routing configuration settings by using
the Set-CsStaticRoutingConfiguration cmdlet.

Examples
-------------------------- Example 1 ------------------------

$x = New-CsStaticRoute -TCPRoute -Destination "192.168.0.100" -Port 8025 -MatchUri "litwareinc.com"

Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x}

The commands shown in Example 1 create a new static route and then add that route to the global static routing
configuration collection. To carry out this task, the first command uses the New-CsStaticRoute cmdlet to create an
in-memory-only route that uses TCP as its transport protocol. The route points to the next hop IP address
192.168.0.100, uses port 8025, and matches any URI from the domain litwareinc.com. The resulting route object is
stored in a variable named $x.
The second command in the example then adds the new route to the global static routing configuration collection.
This is done by calling the Set-CsStaticRoutingConfiguration cmdlet along with the Route parameter. The
parameter value @{Add=$x} adds the route object stored in $x to the existing set of routes already in the global
collection.
-------------------------- Example 2 ------------------------

$x = New-CsStaticRoute -TLSRoute -Destination "atl-proxy-001.litwareinc.com" -Port 8025 -MatchUri


"*.litwareinc.com" -UseDefaultCertificate $True

Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x}

Example 2 shows how you can create a new static route that uses TLS as its transport protocol, and then add that
route to the global static routing configuration collection. To do this, the first command in the example uses the
New-CsStaticRoute cmdlet to create an in-memory-only route that uses TLS as its transport protocol. The route
points to the "atl-proxy-001.litwareinc.com" as its destination, uses port 8025 and matches any URI that uses the
domain suffix "litwareinc.com". In addition, the new route object, which is stored in a variable named $x, uses the
default certificate for authentication purposes ( -UseDefaultCertificate $True ).

After the route object has been created, the second command in the example then adds the new route to the global
static routing configuration collection.
-------------------------- Example 3 --------------------------

$x = New-CsStaticRoute -TLSRoute -Destination "atl-proxy.litwareinc.com" -Port 5061 -MatchUri "litwareinc.com"


-UseDefaultCertificate $False -TLSCertIssuer "CN=CertificateAuthority, DC=litwareinc, DC=com" -
TLSCertSerialNumber 0x8f,0x33,0x70,0x93,0x70,0x05,0x33,0x00,0x02,0x33

Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x}

Example 3 creates a new static route using TLS and a specific certificate; this is indicated by included the required
TLS parameters.
After the route object has been created, the second command in the example then adds the new route to the global
static routing configuration collection.

Parameters
-Destination
If the route uses Transport Layer Security (TLS ) as the transport protocol, then the Destination is the fully qualified
domain name (FQDN ) of the next hop server. For example: -Destination "atl-proxy-001.litwareinc.com"

If the route uses Transmission Control Protocol (TCP ) as the transport protocol, then the Destination is the IP
address of the next hop router. For example: -Destination "192.168.0.240" .

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
If set to True, then the route is enabled and any messages matching the MatchURI pattern will be routed to the next
hop server. If set to False, the route is disabled and will not be used in routing messages. The default value is True.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MatchOnlyPhoneUri
If set to True, only messages addressed to phone Uniform Resource identifiers (URIs) (for example,
sip:kenmmyer@litwareinc.com;user=phone) will be matched and potentially, routed. If set to False (the default
value) then all messages will be matched.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MatchUri
FQDN or domain suffix used to determine if the message is being sent to a user handled by this route. For
example, you might use the FQDN "litwareinc.com". This pattern matches any user who has a SIP address that
ends with the domain name "litwareinc.com".
To match child domains of a domain, you can use a wildcard value like "*.litwareinc.com". That value matches any
domain that ends with the suffix "litwareinc.com". For example: northamerica.litwareinc.com; asia.litwareinc.com
and europe.litwareinc.com.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Port
Port number used for SIP routing. For example: -Port 7742

Type: UInt16
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReplaceHostInRequestUri
If set to True ($True) then the host portion of a Request-URI will be replaced by the address of the next hop server.
If set the False then the Request-URI will be used as-is. The Request-URI represents the URI of the user or service
that the request (message) is addressed to. The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TCPRoute
Configures TCP as the transport protocol for the new route.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TLSCertIssuer
Name of the certification authority (CA) that issued the certificate to be used in the static route. This parameter is
not used if you have configured TCP as the transport protocol.
If you include the TLSCertIssuer parameter then you must also use the TLSCertSerialNumber parameter.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TLSCertSerialNumber
Serial number of the TLS certificate to be used in the static route. Serial numbers must be passed as a byte array;
this means you must pass the serial number as an array of two-character values. For example:
-TLSCertSerialNumber 0x01, 0xA4, 0xD5, 0x67, 0x89

This parameter is not used if you have configured TCP as the transport protocol.
If you include the TLSCertSerialNumber parameter then you must also use the TLSCertIssuer parameter.

Type: Byte[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TLSRoute
Configures TLS as the transport protocol for the new route.
Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseDefaultCertificate
Configures the route to use your default Skype for Business Server certificate as its authentication certificate. If you
do not want to use the default certificate then you must specify a different certificate by using the TLSCertIssuer
and TLSCertSerialNumber parameters.
To view the default certificate, use the following command:
Get-CsCertificate | Where-Object {$_.Use -eq "urn:certref:Default"}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsStaticRoute cmdlet does not accept pipelined input.

Outputs
The New-CsStaticRoute cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Route object.

Related Links
New -CsStaticRoutingConfiguration
Set-CsStaticRoutingConfiguration
minutes to read • Edit Online

New-CsStaticRoutingConfiguration
In ths Article

Creates a new collection of static routing configuration settings. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsStaticRoutingConfiguration [-Identity] <XdsIdentity> [-Route <PSListModifier>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
When you send a SIP message to someone that message might need to traverse multiple subnets and networks
before it is delivered; the path traveled by the message is often referred to as a route. In networking, there are two
types of routes: dynamic and static. With dynamic routing, servers use algorithms to determine the next location
(the next hop) where a message should be forwarded. With static routing, message paths are predetermined by
system administrators. When a message is received by a server, the server checks the message address and then
forwards the message to the next hop server that has been preconfigured by an administrator. If configured
correctly, static routes help ensure timely and accurate, delivery of messages and with minimal overheard placed on
servers. The downside to static routes is that messages are not dynamically rerouted in the event of a network
failure.
When you install Skype for Business Server, a global collection of static routes is automatically created for you. In
addition to that, you can use the New-CsStaticRoutingConfiguration cmdlet to create additional collections and the
site scope or the service scope (for the Registrar service only).

Examples
-------------------------- Example 1 ------------------------

New-CsStaticRoutingConfiguration -Identity "service:Registrar:atl-cs-001.litwareinc.com"

Example 1 creates a new static routing configuration collection with the Identity service:Registrar:atl-cs-
001.litwareinc.com. Because the Route parameter is not included in the command, the new collection will not have
any static routes assigned to it.
-------------------------- Example 2 ------------------------

$x = New-CsStaticRoute -TCPRoute -Destination "192.168.0.100" -Port 8025 -MatchUri "*.litwareinc.com"

New-CsStaticRoutingConfiguration -Identity "service:Registrar:atl-cs-001.litwareinc.com" -Route $x

The commands shown in Example 2 create a new SIP proxy route that uses TCP as its transport; this new route is
then added to a new static routing configuration collection. To do this, the first command in the example uses the
New-CsStaticRoute cmdlet to create a new route that points to the next hop server with the IP address
192.168.1.100. This new route (stored in a variable named $x) also uses port 8025 and the MatchUri
"*.litwareinc.com".
After that, the New-CsStaticRoutingConfiguration cmdlet is called to create a new collection (with the Identity
service:Registrar:atl-cs-001.litwareinc.com), assigning the route stored in the variable $x to the Route property of
the new collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new static routing collection to be created. New collections can only be created at the
service scope and can only be assigned to the Registrar service. Because of that, the Identity for a new collection
must look similar to this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Route
Individual static routes maintained within the collection. Routes to be added to a collection must either by copied
from another collection or created using the New-CsStaticRoute cmdlet. For details, see the Examples section in this
topic.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsStaticRoutingConfiguration cmdlet does not accept pipelined input.

Outputs
The New-CsStaticRoutingConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.RoutingSettings object.

Related Links
Get-CsStaticRoutingConfiguration
New -CsStaticRoute
Remove-CsStaticRoutingConfiguration
Set-CsStaticRoutingConfiguration
minutes to read • Edit Online

New-CsStorageServiceConfiguration
In ths Article

Creates new instances of the Skype for Business Server Storage Service. The storage service provides a common
infrastructure that enables Skype for Business Server components to use Exchange as a backend data store.

Syntax
New-CsStorageServiceConfiguration [-Identity] <XdsIdentity> [-Confirm] [-EnableAsyncAdaptorTaskAbort <Boolean>]
[-EnableAutoImportFlushedData <Boolean>] [-EnableFabricReplicationSetReduction <Boolean>]
[-FabricInvalidStateTimeoutDuration <UInt64>] [-Force] [-InMemory] [-WhatIf] [<CommonParameters>]

Description
The Skype for Business Server Storage Service enables Skype for Business Server 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 archiving. The Storage
Service also enables Skype for Business Server 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.
Separate instances of the Skype for Business Server Storage Service can be configured at the global, site and
service scope (for the Registrar service only). By default, Skype for Business Server provides you with a single,
global collection of Storage Service configuration settings. However, administrators have the option of creating
custom settings by using the New-CsStorageServiceConfiguration cmdlet. Those custom settings can later be deleted
by using the Remove-CsStorageServiceConfiguration cmdlet.
Skype for Business Server Control Panel: The functions carried out by the New-CsStorageServiceConfiguration
cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsStorageServiceConfiguration -Identity "site:Redmond"

The command shown in Example 1 creates a new collection of storage service configuration settings applied to the
Redmond site.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAsyncAdaptorTaskAbort
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAutoImportFlushedData
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFabricReplicationSetReduction
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FabricInvalidStateTimeoutDuration
PARAMVALUE: UInt64

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any nonfatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new collection of storage service configuration settings to be created. Storage service
settings can be created at the site scope or the service scope (but only for the Registrar service). To create a new
collections of settings at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To create settings at the service scope, use syntax similar to this:


-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Note that your command will fail if the specified site or service already hosts a collection of storage service
configuration settings.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsStorageServiceConfiguration cmdlet does not accept pipelined input.
Outputs
The New-CsStorageServiceConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.StorageServiceSettings object.

Related Links
Get-CsStorageServiceConfiguration
Remove-CsStorageServiceConfiguration
Set-CsStorageServiceConfiguration
minutes to read • Edit Online

New-CsTeamsCallParkPolicy
In ths Article

The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft
Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on
that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The
New -CsTeamsCallParkPolicy cmdlet lets you create a new custom policy that can then be assigned to one or more
specific users. NOTE: the call park feature currently only available in desktop and web clients. Call Park functionality
is currently completely disabled in mobile clients. Supported with TeamsOnly mode

Syntax
New-CsTeamsCallParkPolicy [-Tenant <System.Guid>] [-AllowCallPark <Boolean>] [[-Identity] <XdsIdentity>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft
Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on
that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The New -
CsTeamsCallParkPolicy cmdlet lets you create a new custom policy that can then be assigned to one or more
specific users.

Examples
Example 1

PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -AllowCallPark $false

Create a new custom policy that has call park enabled. This policy can then be assigned to individual users.

Parameters
-AllowCallPark
If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the
call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a
different phone.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppress all non-fatal errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the policy - this will be used to retrieve the policy later on to assign it to specific users.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

New-CsTeamsMeetingBroadcastPolicy
In ths Article

New -CsTeamsMeetingBroadcastPolicy [-Identity] <XdsIdentity> [-Tenant <guid>] [-Description <string>] [-


AllowBroadcastScheduling <bool>] [-AllowBroadcastTranscription <bool>] [-BroadcastAttendeeVisibilityMode
<string>] [-BroadcastRecordingMode <string>] [-InMemory] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Syntax
New-CsTeamsMeetingBroadcastPolicy [-Tenant <Guid>] [-Description <String>]
[-AllowBroadcastScheduling <Boolean>] [-AllowBroadcastTranscription <Boolean>]
[-BroadcastAttendeeVisibilityMode <String>] [-BroadcastRecordingMode <String>] [-Identity] <XdsIdentity>
[-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use
this cmdlet to create a new policy.

Examples
Example 1

PS C:\> New-CsTeamsMeetingBroadcastPolicy -Identity Students -AllowBroadcastScheduling $false

Creates a new MeetingBroadcastPolicy with broadcast scheduling disabled, which can then be assigned to
individual users using the corresponding grant- command.

Parameters
-AllowBroadcastScheduling
Specifies whether this user can create broadcast events in Teams. This settng impacts broadcasts that use both self-
service and external encoder production methods.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowBroadcastTranscription
Specifies whether real-time transcription and translation can be enabled in the broadcast event. Note: this setting is
applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder
is used as production method.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BroadcastAttendeeVisibilityMode
Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can
watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated
users in my company can watch the event. Note: this setting is applicable to broadcast events that use Teams
Meeting production only and does not apply when external encoder is used as production method.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BroadcastRecordingMode
Specifies whether broadcast events created by this user are always recorded, never recorded or user can choose
whether to record or not. Note: this setting is applicable to broadcast events that use Teams Meeting production
only and does not apply when external encoder is used as production method.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Specifies why this policy is being created.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the name of the policy being created

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Not applicable, you can only specify policies for your own logged-in tenant.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

New-CsTeamsMeetingPolicy
In ths Article

The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or
the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or
external users

Syntax
New-CsTeamsMeetingPolicy [-Tenant <Guid>] [-Description <String>]
[-AllowChannelMeetingScheduling <Boolean>] [-AllowMeetNow <Boolean>] [-AllowIPVideo <Boolean>]
[-AllowAnonymousUsersToDialOut <Boolean>] [-AllowAnonymousUsersToStartMeeting <Boolean>]
[-AllowPrivateMeetingScheduling <Boolean>] [-AutoAdmittedUsers <String>] [-AllowCloudRecording <Boolean>]
[-AllowOutlookAddIn <Boolean>] [-AllowPowerPointSharing <Boolean>]
[-AllowParticipantGiveRequestControl <Boolean>] [-AllowExternalParticipantGiveRequestControl <Boolean>]
[-AllowSharedNotes <Boolean>] [-AllowWhiteboard <Boolean>] [-AllowTranscription <Boolean>]
[-MediaBitRateKb <UInt32>] [-ScreenSharingMode <String>] [-Identity] <XdsIdentity> [-InMemory] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or
the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or
external users
The New -CsTeamsMeetingPolicy cmdlet allows administrators to define new meeting policies that can be assigned
to particular users to control Teams features related to meetings.

Examples
-------------------------- EXAMPLE 1 --------------------------

New-CsTeamsMeetingPolicy -Identity SalesMeetingPolicy -AllowTranscription $false

The command shown in Example 1 uses the New -CsTeamsMeetingPolicy cmdlet to create a new meeting policy
with the Identity SalesMeetingPolicy. This policy will use all the default values for a meeting policy except one:
AllowTranscription; in this example, meetings for users with this policy can include real time or post meeting
captions and transcriptions.
-------------------------- EXAMPLE 2 --------------------------

New-CsTeamsMeetingPolicy -Identity HrMeetingPolicy -AutoAdmittedUsers "Everyone" -AllowMeetNow $False

In Example 2, the New -CsTeamsMeetingPolicy cmdlet is used to create a meeting policy with the Identity
HrMeetingPolicy. In this example two different property values are configured: AutoAdmittedUsers is set to
Everyone and AllowMeetNow is set to False. All other policy properties will use the default values.
Parameters
-AllowAnonymousUsersToDialOut
Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow
anonymous users to dial out. Set this to FALSE to prohibit anonymous users from dialing out

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowAnonymousUsersToStartMeeting
Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate
a meeting. Set this to FALSE to prohibit them from initiating a meeting

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowChannelMeetingScheduling
Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel
meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. Note this only restricts from
scheduling and not from joining a meeting scheduled by another user.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowCloudRecording
Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able
to record meetings. Set this to FALSE to prohibit the user from recording meetings

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExternalParticipantGiveRequestControl
Determines whether external participants can request or give control of screen sharing during meetings scheduled
by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit an
external user from giving or requesting control in a meeting
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowIPVideo
Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their
video. Set this to FALSE to prohibit the user from sharing their video

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowMeetNow
Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc meetings.
Set this to FALSE to prohibit the user from starting ad-hoc meetings.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowOutlookAddIn
Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the
user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling
Teams meeting in Outlook client

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowParticipantGiveRequestControl
Determines whether participants can request or give control of screen sharing during meetings scheduled by this
user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user
from giving, requesting control in a meeting

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AllowPowerPointSharing
Determines whether Powerpoint sharing is allowed in a user’s meetings. Set this to TRUE to allow. Set this to
FALSE to prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowPrivateMeetingScheduling
Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private
meetings. Set this to FALSE to prohibit the user from scheduling private meetings. Note this only restricts from
scheduling and not from joining a meeting scheduled by another user

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowSharedNotes
Determines whether users are allowed to take shared notes. Set this to TRUE to allow. Set this to FALSE to prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowTranscription
Determines whether real-time and/or post-meeting captions and transcriptions are allowed in a user's meetings.
Set this to TRUE to allow. Set this to FALSE to prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowWhiteboard
Determines whether whiteboard is allowed in a user’s meetings. Set this to TRUE to allow. Set this to FALSE to
prohibit
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AutoAdmittedUsers
Determines what types of participants will automatically be added to meetings organized by this user. Set this to
EveryoneInCompany if you would like meetings to place every external user in the lobby but allow all users in the
company to join the meeting immediately. Set this to Everyone if you'd like to admit anonymous users by default.
Set this to EveryoneInSameAndFederatedCompany if you would like meetings to allow federated users to join like
your company's users, but place all other external users in a lobby.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text about the meeting policy. For example, the Description might
indicate the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specify the name of the policy being created.
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediaBitRateKb
Determines the media bit rate for audio/video/app sharing transmissions in meetings

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ScreenSharingMode
Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow
the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything
on their screens. Set this to Disabled to prohibit the user from sharing their screens.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

New-CsTeamsMessagingPolicy
In ths Article

The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages.
These also help determine the type of messages users can create and modify.

Syntax
New-CsTeamsMessagingPolicy [-Tenant <Guid>] [-Description <String>] [-AllowUrlPreviews <Boolean>]
[-AllowOwnerDeleteMessage <Boolean>] [-AllowUserEditMessage <Boolean>] [-AllowUserDeleteMessage <Boolean>]
[-AllowUserChat <Boolean>] [-AllowGiphy <Boolean>] [-GiphyRatingType <String>] [-AllowMemes <Boolean>]
[-AllowStickers <Boolean>] [-AllowUserTranslation <Boolean>] [-ReadReceiptsEnabledType <String>]
[-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages.
These also help determine the type of messages users can create and modify. This cmdlet creates a new Teams
messaging policy. Custom policies can then be assigned to users using the Grant-CsTeamsMessagingPolicy cmdlet.

Examples
Example 1

powershell
PS C:\> New-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy -AllowGiphy $false -AllowMemes $false

In this example two different property values are configured: AllowGiphy is set to false and AllowMemes is set to
False. All other policy properties will use the default values.

Parameters
-AllowGiphy
Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to
prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowMemes
Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to
prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowOwnerDeleteMessage
Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this
to FALSE to prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowStickers
Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to
prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowUserChat
Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group
chat and in meetings. Set this to FALSE to prohibit all chat

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowUserDeleteMessage
Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to
prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AllowUserEditMessage
Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to
prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowUserTranslation
Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set
this to FALSE to prohibit

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Provide a description of your policy to identify purpose of creating it.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GiphyRatingType
Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or
NORESTRICTION.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the teams messaging policy to be created.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

New-CsTeamsUpgradePolicy
In ths Article

In on-premises deployments of Skype for Business Server, TeamsUpgradePolicy enables adminstrators to control
whether user see a notification in their Skype for Business client of a pending upgrade to Teams. In addition, when
this policy is assigned to a user, administrators can optionally have Win32 versions of Skype for Business clients
silently download Teams based on the value of CsTeamsUpgradeConfiguration.

Syntax
New-CsTeamsUpgradePolicy [-Identity] <XdsIdentity> [-NotifySfbUsers <Boolean>] [-Description <String>]

Description
In on-premises deployments of Skype for Business Server, TeamsUpgradePolicy enables adminstrators to control
whether users see a notification of a pending upgrade to Teams in their Skype for Business client. The new -
CsTeamsUpgradePolicy lets the adminstrator create a policy that can be assigned to users homed in Skype for
Business on-premises to notify of them of a pending upgrade to Teams. Notifications are enabled by the boolean
parameter NotifySfBUsers.
For users with Win32 versions of Skype for Business, if DownloadTeams=true in CsTeamsUpgradeConfiguration,
users who are assigned an instance of TeamsUpgradePolicy with NotifySfBUsers=true will have Teams
automatically downloaded in the background.
Notes:
Instances of TeamsUpgradePolicy created in on-premises will not apply to any users that are already homed online.
Skype for Business Online already provides built-in instances of TeamsUpgradePolicy, so there is no New -
CsTeamsUpgradePolicy cmdlet for the online environment by design.

Examples
Example 1: Create a site -level policy

PS C:\> new-CsTeamsUpgradePolicy -identity site:Redmond1 -NotifySfBUsers $true

This creates a policy for users in the site Redmond1.


Example 2: Create a policy not specific to a site.

PS C:\> new-CsTeamsUpgradePolicy -identity EnableNotifications -NotifySfBUsers $true

This creates a policy for users that can be granted as desired to individual users

Parameters
-Description
Free form text that can be used as needed by adminsitrators.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The identity of the policy. To specify the global policy for the organization, use "global". To specify a specific site, use
"site:" where is the name of the site. To specfy a policy that can be assigned as needed to any users, simply specify a
name of your choosing.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NotifySfbUsers
Determines whether users who are assigned this policy will see a notification in their Skype for Business client
about a pending upgrade to Teams. In addition, if NotifySfBUsers=true and TeamsUpgradeConfiguration has
DownloadTeams=true, Win32 versions of Skype for Business will silently download the Teams client.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object

Related Links
Migration and interoperability guidance for organizations using Teams together with Skype for Business
Grant-CsTeamsUpgradePolicy
Get-CsTeamsUpgradePolicy
New -CsTeamsUpgradePolicy
Remove-CsTeamsUpgradePolicy
Set-CsTeamsUpgradePolicy
Get-CsTeamsUpgradeConfiguration
Set-CsTeamsUpgradeConfiguration
minutes to read • Edit Online

New-CsTelemetryConfiguration
In ths Article

Use the `New -CsTelemetryConfiguration` cmdlet to create new configurations for telemetry.
UNRESOLVED_TOKEN_VAL (PS_TelemetryDataStatement)

Syntax
New-CsTelemetryConfiguration [-Identity] <XdsIdentity> [-Confirm] [-EnableClientTelemetry <Boolean>] [-Force]
[-InMemory] [-WhatIf] [<CommonParameters>]

Description
For privacy information, see the Skype for Business Privacy Statement (http://go.microsoft.com/fwlink/?
LinkID=517480&clcid=0x409).

Examples
-------------------------- Example 1 --------------------------

New-CsTelemetryConfiguration -Identity Site:Redmond -EnableClientTelemetry $True

This example creates a new telemetry configuration with telemetry enabled and scoped for the Redmond site.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableClientTelemetry
When set to true, client telemetry will be enabled. The default is false.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier that includes the scope of the telemetry configuration. Telemetry configurations can be scoped
at the Global, Site, or Service level. For example, "site:Redmond" (for site). The format of the service scope is
"Service:<Identity>", where identity is derived from the topology. You can use the following commands to identify
the relevant services.
Get-CsService -WebServer | fl Identity

Get-CsService -PoolFqdn \<pool\> | fl Identity

The first command will give you all of the WebServices in the topology, regardless of the pool. The second will give
you all of the services on the pool, regardless of their role. You can combine the two commands to zero in on a
single role in a single pool.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
None.
minutes to read • Edit Online

New-CsTenantDialPlan
In ths Article

Use the `New -CsTenantDialPlan` cmdlet to create a new tenant dial plan.

Syntax
New-CsTenantDialPlan [-Tenant <Guid>] [-Description <String>] [-NormalizationRules <List>]
[-ExternalAccessPrefix <String>] [-SimpleName <String>] [-OptimizeDeviceDialing <Boolean>]
[-Identity] <XdsIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
You can use this cmdlet to create a new tenant dial plan. Tenant dial plans provide required information to let
Enterprise Voice users make telephone calls. The Conferencing Attendant application also uses tenant dial plans for
dial-in conferencing. A tenant dial plan determines such things as which normalization rules are applied and
whether a prefix must be dialed for external calls.
You can add new normalization rules to a tenant dial plan by calling the New-CsVoiceNormalizationRule
(https://technet.microsoft.com/en-us/library/gg398240.aspx ) cmdlet.

Examples
-------------------------- Example 1 --------------------------

New-CsTenantDialPlan -Identity vt1tenantDialPlan9

This example creates a tenant dial plan that has an Identity of vt1tenantDialPlan9.
-------------------------- Example 2 --------------------------

$nr2 = New-CsVoiceNormalizationRule -Identity Global/NR2 -Description "TestNR1" -Pattern '^(d{11})$' -


Translation '+1' -InMemory

New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr2}

This example creates a new normalization rule and then applies that rule to a new tenant dial plan.

Parameters
-Confirm
The Confirm switch causes the command to pause processing and requires confirmation to proceed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to and any other
information that helps to identify the purpose of the tenant dial plan. Maximum characters: 512.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalAccessPrefix
The ExternalAccessPrefix parameter is a number (or set of numbers) that designates the call as external to the
organization. (For example, to tenant-dial an outside line, first press 9.) This prefix is ignored by the normalization
rules, although these rules are applied to the remainder of the number.
The OptimizeDeviceDialing parameter must be set to True for this value to take effect. This parameter must match
the regular expression [0-9]{1,4}: that is, it must be a value 0 through 9 and one to four digits in length. The default
value is 9.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter is a unique identifier that designates the name of the tenant dial plan. Identity is an
alphanumeric string that cannot exceed 49 characters. Valid characters are alphabetic or numeric characters,
hyphen (-) and dot (.). The value should not begin with a (.)
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
The InMemory parameter creates an object reference without actually committing the object as a permanent
change.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NormalizationRules
The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list
and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules
by the New-CsVoiceNormalizationRule (https://technet.microsoft.com/en-us/library/gg398240.aspx ) cmdlet, which
creates the rule and assigns it to the specified tenant dial plan.
Each time a new tenant dial plan is created, a new voice normalization rule with default settings is also created for
that site, service, or per-user tenant dial plan. By default, the Identity of the new voice normalization rule is the
tenant dial plan Identity followed by a slash and then followed by the name Prefix All. (For example,
TAG:Redmond/Prefix All.) The number of normalization rules cannot exceed 25 per TenantDialPlan.
You can create a new normalization rule by calling the New-CsVoiceNormalizationRule
(https://technet.microsoft.com/en-us/library/gg398240.aspx ) cmdlet.

Type: List
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OptimizeDeviceDialing
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SimpleName
The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant
dial plans within the Skype for Business Server deployment.
This string can be up to 256 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot
(.) and parentheses (()).

This parameter must contain a value. However, if you don't provide a value, a default value will be supplied. The
default value for a Global tenant dial plan is Prefix All. The default value for a site-level tenant dial plan is the name
of the site. The default value for a service is the name of the service (Registrar or PSTN gateway) followed by an
underscore, followed by the service fully qualified domain name (FQDN ). For example:
Registrar_pool0.litwareinc.com. The default value for a per-user tenant dial plan is the Identity of the tenant dial
plan.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" . You can find your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

New-CsTenantUpdateTimeWindow
In ths Article

Use the `New -CsTenantUpdateTimeWindow` cmdlet to create a new tenant update time window.

Syntax
New-CsTenantUpdateTimeWindow [-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>]
[-StartTime <TimeSpan>] [-Duration <TimeSpan>] [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsTenantUpdateTimeWindow [-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>] [-Daily]


[-StartTime <TimeSpan>] [-Duration <TimeSpan>] [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsTenantUpdateTimeWindow [-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>] [-Weekly]


[-StartTime <TimeSpan>] [-Duration <TimeSpan>] -DaysOfWeek <TenantUpdateTimeWindowDayOfWeek> [-InMemory]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsTenantUpdateTimeWindow [-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>] [-Monthly]


[-StartTime <TimeSpan>] [-Duration <TimeSpan>] -DayOfMonth <Int32> [-InMemory] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

New-CsTenantUpdateTimeWindow [-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>] [-Monthly]


[-StartTime <TimeSpan>] [-Duration <TimeSpan>] -WeeksOfMonth <TenantUpdateTimeWindowWeekOfMonth>
-DaysOfWeek <TenantUpdateTimeWindowDayOfWeek> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Tenant update time windows are created, retrieved, modified and deleted by the CsTenantUpdateTimeWindow
cmdlet group (New, Get, Set and Remove). The tenant update time windows can be reviewed in your hybrid
configuration by using the Get-CsTenantHybridConfiguration cmdlet. However, you can't create or modify tenant
update time windows through the CsTenantHybridConfiguration cmdlets. You must use the
CsTenantUpdateTimeWindow cmdlets to manage tenant update time windows.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned, run the following
command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<CmdletName\>"}

Examples
-------------------------- Example 1 --------------------------
New-CsTenantUpdateTimeWindow -Identity FirstAndLastWeekend -Monthly -WeeksOfMonth First,Last -DaysOfWeek
Sunday,Saturday -StartTime 1:00 -Duration 5:00

This example creates a new tenant update time window in the tenant in Monthly type.
-------------------------- Example 2 --------------------------

New-CsTenantUpdateTimeWindow -Identity MidDay -Monthly -DayOfMonth 15 -StartTime 5:00 -Duration 6:00

This example creates a new tenant update time window in the tenant in Monthly type.
-------------------------- Example 3 --------------------------

New-CsTenantUpdateTimeWindow -Identity Weekday -Weekly -DaysOfWeek Monday,Tuesday,Wednesday,Thursday,Friday -


StartTime 3:00 -Duration 10:00

This example creates a new tenant update time window in the tenant in Weekly type.
-------------------------- Example 4 --------------------------

New-CsTenantUpdateTimeWindow -Identity Night -Daily

This example creates a new tenant update time window in the tenant in Daily type.

Parameters
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Daily
Type of Time window is daily.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DayOfMonth
Day of month. It must be defined when Type is Monthly.
Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DaysOfWeek
Days of week. It can be multiple days separated by a comma. It must be defined when Type is Weekly or Monthly.

Type: TenantUpdateTimeWindowDayOfWeek
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Duration
Duration of the update time window.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the tenant update time window.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Monthly
Type of Time window is monthly.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartTime
Time of day when the update time window starts.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Weekly
Type of Time window is weekly.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WeeksOfMonth
Weeks of month. It can be multiple weeks separated by a comma. It must be defined when Type is Monthly.
Type: TenantUpdateTimeWindowWeekOfMonth
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

New-CsTestDevice
In ths Article

Creates a new device update management test device. Test devices provide a way for administrators to test
firmware updates before those updates are distributed to all the devices in an organization. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsTestDevice [-Identity] <XdsIdentity> -Identifier <String> -IdentifierType <IdentifierType> [-Force]
[-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsTestDevice -Identifier <String> -IdentifierType <IdentifierType> -Name <String> -Parent <String> [-Force]
[-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
By identifying specific phones that are compatible with Skype for Business or other devices as test devices,
administrators can verify and approve firmware updates before those updates are rolled out to the relevant devices
in the organization. When device update rules are imported to Skype for Business Server, they are marked as
"pending," which means that the updates corresponding to these rules will not automatically be downloaded and
installed by the affected devices.
Instead, these pending rules will be downloaded and installed by any relevant test devices. That's the idea behind
test devices: new device update rules are automatically applied to test devices, giving administrators the
opportunity to verify that the firmware updates work as expected. If they do, those administrators can then mark
the rules as approved; approved rules are then downloaded and installed by all the relevant devices in the
organization.
Test devices are created by using the New-CsTestDevice cmdlet. These devices can be configured at either the global
scope or the site scope.

Examples
-------------------------- Example 1 ------------------------

New-CsTestDevice -Identity site:Redmond/UCPhone -IdentifierType SerialNumber -Identifier "07823-A345"

Example 1 creates a new test device (named UCPhone) for the Redmond site. Note the syntax used to specify the
device Identity: the device scope (site:Redmond) followed by the / character followed by the device Name
(UCPhone). This device uses the serial number as the IdentifierType and has a serial number of 07823-A345.
-------------------------- Example 2 ------------------------
New-CsTestDevice -Parent "site:Redmond" -Name UCPhone -IdentifierType SerialNumber -Identifier "07823-A345"

The command shown in Example 2 is a variation of the command shown in Example 1. In Example 2, however, the
Identity parameter is not used. Instead, the Parent parameter is used to specify the scope for the new test device
(site:Redmond) and the Name parameter is used to indicate the name for the new device (UCPhone). The
New-CsTestDevice cmdlet will take those two parameter values and construct the test device Identity
(site:Redmond/UCPhone) for you.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identifier
Based on the IdentifierType, indicates the Media Access Control (MAC ) address or serial number of the new test
device. Serial numbers can be specified using numbers, letters, hyphens and underscores; for example:
-Identifier "AB37_679e"

MAC addresses must be specified as six or more two-character pairs; depending on the MAC address, these pairs
can either be joined together in a single string or can be separated using hyphens or colons. (Note that MAC
addresses can include both letters and/or numbers.) Each of the following are valid MAC addresses:
010203040506
01-02-03-04-05-06
01:02:03:04:05:06
A MAC address such as 01-02-03-04-05 will not be accepted because it does not have at least six two-character
pairs.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IdentifierType
Indicates whether the test device will be uniquely identified by its MAC address or by its serial number. To identify a
device by its MAC address, set the IdentifierType to MACAddress. To identify a device by its serial number, set the
IdentifierType to SerialNumber. MACAddress and SerialNumber are the only allowed values.

Type: IdentifierType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity for the new test device. An Identity consists of both the scope where the test device is to be
assigned (for example, site:Redmond) and the name for the new device (for example, UCPhone). To assign a test
device named UCPhone to the Redmond site, your Identity parameter must look like this:
-Identity "site:Redmond/UCPhone"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name for the new test device (names must be unique within a given scope). The Name parameter should be used
only when using the Parent parameter.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
Name of the scope (for example, site:Redmond) where the new test device is to be assigned. If you use the Parent
parameter then you must also use the Name parameter; for example:
-Parent site:Redmond -Name UCPhone

If you use the Parent parameter then you should not use the Identity parameter and vice-versa.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsTestDevice cmdlet does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.TestDevice object.

Related Links
Get-CsTestDevice
Remove-CsTestDevice
Set-CsTestDevice
minutes to read • Edit Online

New-CsThirdPartyVideoSystem
In ths Article

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.

Syntax
New-CsThirdPartyVideoSystem -DN <ADObjectId> -RegistrarPool <Fqdn> -SipAddress <String> [-Confirm]
[-DisplayName <String>] [-LineUri <String>] [-PassThru] [-WhatIf] [<CommonParameters>]

New-CsThirdPartyVideoSystem -OU <OUIdParameter> -RegistrarPool <Fqdn> -SipAddress <String> [-Confirm]


[-DisplayName <String>] [-LineUri <String>] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably
audio and video). In Skype for Business Server, 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. VTC contact objects can be created by using the New-CsThirdPartyVideoSystem cmdlet.

Examples
-------------------------- Example 1 --------------------------

New-CsThirdPartyVideoSystem -RegistrarPool "redmond-cs-001.litwareinc.com" -OU


"ou=Telecommunications,dc=litwareinc,dc=com" -DisplayName "Redmond Video System" -SipAddress
"sip:redmondvideo@litwareinc.com"

In Example 1, a new third-party video system contact object is created in the Telecommunications OU. This new
contact object will be homed on the Registrar pool Redmond-cs-001.litwareinc.com; will have the display name
Redmond Video System and will use the SIP address sip:redmondvideo@litwareinc.com.
-------------------------- Example 2 --------------------------

New-CsThirdPartyVideoSystem -RegistrarPool "redmond-cs-001.litwareinc.com" -DN


"cn=RedmondVideoSystem,ou=Telecommunications,dc=litwareinc,dc=com" -SipAddress
"sip:redmondvideo@litwareinc.com"

The command shown in Example 2 creates a new third-party video system by associating that system with an
existing Active Directory contact object. To carry out that task you need to include three parameters: RegistrarPool,
which specifies the Registrar pool where the new video system account will be homed; DN, which specifies the
Active Directory distinguished name of the existing contact object; and SipAddress, which assigns a SIP address to
the new video system.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Configures the Active Directory display name of the video system.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DN
Enables you to associate an existing Active Directory contact object with a third-party video system. If you have a
contact object you want to associate with video system, use the DN parameter followed by the distinguished name
of that contact. For example:
-DN "cn=Building 14 Lobby,dc=litwareinc,dc=com"

Note that the command will fail if the specified contact does not exist. Note, too that you cannot use the OU and the
DN parameters in the same command.

Type: ADObjectId
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineUri
Phone number for the VTC device. The line URI should be specified by using the E.164 format and be prefixed by
the "TEL:" prefix. For example:
-LineURI "TEL:+14255551297"

Any extension number should be added to the end of the line URI; for example:
-LineURI "TEL:+14255551297;ext=51297"
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Distinguished name of the Active Directory organizational unit (OU ) where the contact object should be located.
For example:
-OU "ou=Redmond,dc=litwareinc,dc=com"

If you include the OU parameter, a new contact will be created in the specified OU and the contact will
automatically be assigned a GUID (globally unique identifier) as its common name. As a result, the contact object
will have a name similar to this: {ce84964a-c4da-4622-ad34-c54ff3ed361f}.

Type: OUIdParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a contact object through the pipeline that represents the third-party video system being
modified. By default, the New-CsThirdPartyVideoSystem cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegistrarPool
Fully qualified domain name (FQDN ) of the Registrar pool where the contact object should be homed. For example:
-RegistrarPool "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
Unique identifier that allows the video system to communicate with SIP devices such as Skype for Business. The
SIP address must be prefaced by the prefix "sip:". For example:
sip:contoso_video@litwareinc.com
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsThirdPartyVideoSystem cmdlet does not accept pipelined input.

Outputs
The New-CsThirdPartyVideoSystem cmdlet creates new instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADThirdPartyVideoSystemContact object.

Related Links
Get-CsThirdPartyVideoSystem
Move-CsThirdPartyVideoSystem
Remove-CsThirdPartyVideoSystem
Set-CsThirdPartyVideoSystem
minutes to read • Edit Online

New-CsThirdPartyVideoSystemPolicy
In ths Article

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.

Syntax
New-CsThirdPartyVideoSystemPolicy [-Identity] <XdsIdentity> [-Confirm] [-Force] [-InMemory]
[-SupportsSendingLowResolution <Boolean>] [-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

Description
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably
audio and video). In Skype for Business Server, 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.
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. The
New-CsThirdPartyVideoSystem cmdlet provides a way for administrators to create these third-party video system
policies.

Examples
-------------------------- Example 1 --------------------------

New-CsThirdPartyVideoSystemPolicy -Identity "site:Redmond" -SupportsSendingLowResolution $False

The command shown in Example 1 creates a new third-party video system policy assigned to the Redmond site.
With this policy, VTCs will not be allowed to send low resolution video; that's because the
SupportsSendingLowResolution parameter has been set to False ($False).

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique Identity to be assigned to the policy. Third party video system policies can be created at the
site or per-user scope. To create a policy at the site scope, use syntax similar to this: -Identity "site:Redmond" . To
create a policy at the per-user scope, use syntax similar to this: -Identity "RedmondVideoSystemPolicy" .

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SupportsSendingLowResolution
Indicates whether or not low -resolution video can be sent by a VTC device. The default value is True ($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the third-party video system
policy being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsThirdPartyVideoSystemPolicy cmdlet does not accept pipelined input.

Outputs
The New-CsThirdPartyVideoSystemPolicy cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ThirdPartyVideoSystem.ThirdPartyVideoSystemPolicy object.

Related Links
Get-CsThirdPartyVideoSystemPolicy
Grant-CsThirdPartyVideoSystemPolicy
Remove-CsThirdPartyVideoSystemPolicy
Set-CsThirdPartyVideoSystemPolicy
minutes to read • Edit Online

New-CsTrunkConfiguration
In ths Article

Creates a new trunk configuration that describes the settings for a trunking peer entity such as a public switched
telephone network (PSTN ) gateway, IP -public branch exchange (PBX), or Session Border Controller (SBC ) at the
service provider. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsTrunkConfiguration [-Identity] <XdsIdentity> [-ConcentratedTopology <Boolean>] [-Description <String>]
[-EnableBypass <Boolean>] [-EnableMobileTrunkSupport <Boolean>] [-EnablePIDFLOSupport <Boolean>]
[-EnableReferSupport <Boolean>] [-EnableSessionTimer <Boolean>] [-EnableSignalBoost <Boolean>]
[-MaxEarlyDialogs <UInt32>] [-OutboundTranslationRulesList <PSListModifier>] [-RemovePlusFromUri <Boolean>]
[-RTCPActiveCalls <Boolean>] [-RTCPCallsOnHold <Boolean>]
[-SipResponseCodeTranslationRulesList <PSListModifier>] [-SRTPMode <SRTPMode>] [-Force] [-InMemory] [-WhatIf]
[-Confirm] [-Enable3pccRefer <Boolean>] [-EnableFastFailoverTimer <Boolean>] [-EnableOnlineVoice <Boolean>]
[-EnableRTPLatching <Boolean>] [-ForwardCallHistory <Boolean>] [-ForwardPAI <Boolean>]
[-OutboundCallingNumberTranslationRulesList <PSListModifier>] [-PstnUsages <PSListModifier>]
[-EnableLocationRestriction <Boolean>] [-NetworkSiteID <String>] [<CommonParameters>]

Description
Use this cmdlet to create a new trunking configuration applicable to PSTN gateway entities. Each configuration
contains specific settings for a trunking peer entity such as a PSTN gateway, IP -PBX, or SBC at the service provider.
These settings configure such things as whether media bypass is enabled on this trunk, whether real-time transport
control protocol (RTCP ) packets are sent under certain conditions and whether to require secure real-time protocol
(SRTP ) encryption.

Examples
-------------------------- Example 1 ------------------------

New-CsTrunkConfiguration -Identity site:Redmond

This example creates a new trunk configuration with the Identity site:Redmond. The remaining properties for this
new configuration will be populated with default values.
-------------------------- Example 2 ------------------------

New-CsTrunkConfiguration -Identity site:Redmond -EnableBypass $True

This example creates a new trunk configuration with the Identity site:Redmond and enables media bypass. Media
bypass is enabled by assigning the value $True to the EnableBypass parameter. The remaining properties for this
new configuration will be populated with default values.
-------------------------- Example 3 ------------------------
New-CsTrunkConfiguration -Identity site:Redmond

New-CsOutboundTranslationRule -Identity site:Redmond/OTR1 -Pattern '^\+(\d{8})$' -Translation '9$1'

This example creates a new trunk configuration with the Identity site:Redmond and then assigns a new outbound
translation to that trunk. The first line of the example calls the New-CsTrunkConfiguration cmdlet to create the new
trunk configuration with default settings. The second line calls the New-CsOutboundTranslationRule cmdlet. Notice
the value assigned to the Identity: site:Redmond/OTR1. The first part of the Identity (site:Redmond) defines the
scope at which the rule is applied. This scope matches the Identity of the new trunk configuration, which means this
rule will automatically be applied to that configuration. The scope is followed by a slash (/) then a string, which is
simply a unique name for this rule (there can be more than one rule per scope). After that we pass values to the
Pattern and Translation parameters to define this rule.

Parameters
-ConcentratedTopology
The value of this parameter determines whether there is a well-known media termination point. (An example of a
well-known media termination point would be a PSTN gateway where the media termination has the same IP as
the signaling termination.) Set this value to False if the trunk does not have a well-known media termination point.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A string describing the purpose of the trunk configuration.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enable3pccRefer
Indicates whether the 3pcc protocol can be used to allow transferred calls to bypass the hosted site. 3pcc is also
known as "third party control," and occurs when a third-party is used to connect a pair of callers (for example, an
operator placing a call from person A to person B ). The REFER method is a standard SIP method which indicates
that the recipient should contact a third-party by using information supplied by the sender. The default value is
False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableBypass
The value of this parameter determines whether media bypass is enabled for this trunk. Set this value to True to
enable bypass. Note that in order for the media bypass to work successfully, certain capabilities must be supported
by PSTN gateways, SBCs and PBXs, including:
The ability to receive forked responses to an Invite.
Skype for Business Server clients and the media termination point must be able to communicate directly without
going through a Mediation Server.
The gateway subnet must be defined as being at the same site as the client's subnet or, if at a different site, the sites
must not be separated by WAN links with constrained bandwidth.
Media bypass can be enabled only under the following circumstances:
The ConcentratedTopology parameter is set to True
The EnableReferSupport parameter is set to False and RTCPActiveCalls and RTCPCallsOnHold are set to False, or
EnableReferSupport is set to True
Note that if EnableBypass is True and EnableReferSupport is False, bypass calls that are subsequently transferred
will become non-bypass.
For media bypass to work for a particular trunk, it needs to be enabled globally as well as for the trunk in question.
Use the New-CsNetworkMediaBypassConfiguration cmdlet to enable media bypass globally.

Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFastFailoverTimer
When set to True, outbound calls that are not answered by the gateway within 10 seconds will be routed to the next
available trunk; if there are no additional trunks then the call will automatically be dropped. In an organization with
slow networks and gateway responses, that could potentially result in calls being dropped unnecessarily.
The default value is True.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableLocationRestriction
When set to True, location-based voice routing will be enabled for calls passing through the SIP trunks managed by
the specified collection of SIP trunk configuration settings. With location-based voice routing, the locations of both
the user making the call and the user receiving the call are taken into account when calls are routed. If this property
is set to True (the default value is False) then you should also set the NetworkSiteId property.
This parameter was introduced in the February, 2013 version of Lync Server 2013.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMobileTrunkSupport
Defines whether the service provider is a mobile carrier.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOnlineVoice
Indicates whether the SIP trunks support online voice. With online voice, users have an on-premises Lync Server
account but have their voicemail hosted by Office 365. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePIDFLOSupport
Defines whether to route emergency calls with Presence Information Data Format Location Object (PIDF -LO )
through the defined gateway. Set this parameter to True if emergency calls are to be routed to a certified
emergency services provider. (The location will be transmitted with the call.)
Default: False
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableReferSupport
Defines whether this trunk supports receiving Refer requests from the Mediation Server.
Media bypass can be enabled only under the following circumstances:
The ConcentratedTopology parameter is set to True
The EnableReferSupport parameter is set to False and RTCPActiveCalls and RTCPCallsOnHold are set to False, or
EnableReferSupport is set to True
Note that if EnableBypass is True and EnableReferSupport is False, bypass calls that are subsequently transferred
will become non-bypass.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableRTPLatching
Indicates whether or not the SIP trunks support RTP latching. RTP latching is a technology that enables RTP/RTCP
connectivity through a NAT (network address translator) device or firewall. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSessionTimer
Specifies whether the session timer is enabled. Session timers are used to determine whether a particular session is
still active.
Note that even if this parameter is set to False, session timers can be applicable if the remote connection has
session timer enabled. In such a case, the Mediation Server will reply to session timer probes from the remote
entity.
Default: False
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSignalBoost
When this parameter is set to True the PSTN gateway, IP -PBX, or SBC at the service provider will boost the audio
volume in voice streams that are sent to the Mediation Server or Skype for Business Server clients. If this value is
set to False, audio will be boosted either at the Mediation Server (for non-bypass calls) or in Skype for Business
Server clients (for bypass calls).
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ForwardCallHistory
Indicates whether call history information will be forwarded through the trunk. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ForwardPAI
Indicates whether the P -Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header
provides a way to verify the identity of the caller. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
A unique identifier that includes the scope of the trunk configuration. Trunk configurations can be created at the
Site scope, or at the Service scope for a PSTN Gateway service. (A global configuration exists by default and cannot
be removed or re-created.) For example, site:Redmond (for site) or PstnGateway:Redmond.litwareinc.com (for
service).

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxEarlyDialogs
The maximum number of forked responses a PSTN gateway, IP -PBX, or SBC at the service provider can receive to
an Invite that it sent to the Mediation Server.
Default: 20

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkSiteID
Site ID of the network site associated with the new collection of trunk configuration settings. If the
EnableLocationRestriction property is set to True then location-based voice routing through this trunk will be
managed by using the settings configured for the specified site. Network site IDs can be retrieved by using this
command:
Get-CsNetworkSite | Select NetworkSiteID

This parameter was introduced in the February, 2013 release of Lync Server 2013.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutboundCallingNumberTranslationRulesList
Collection of outbound calling number translation rules assigned to the trunk. You can retrieve information about
the available rules by running this command:
Get-CsOutboundCallingNumberTranslationRule

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutboundTranslationRulesList
A collection of phone number translation rules that apply to calls handled by Outbound Routing (calls routed to
PBX or PSTN destinations).
While this list and these rules can be created directly with this cmdlet, it is recommended that you create the
outbound translation rules with the New-CsOutboundTranslationRule cmdlet, which will create the rule and assign it
to the trunk configuration with the matching scope.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PstnUsages
Collection of PSTN usages assigned to the trunk. You can retrieve information about the available usages by
running this command:
Get-CsPstnUsage

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RemovePlusFromUri
Setting this parameter to True will cause the Mediation Server to remove leading plus signs (+) from Uniform
Resource Identifiers (URIs) before sending them on to the service provider.
Default: False
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RTCPActiveCalls
This parameter determines whether RTCP packets are sent from the PSTN gateway, IP -PBX, or SBC at the service
provider for active calls. An active call in this context is a call where media is allowed to flow in at least one
direction. If RTCPActiveCalls is set to True, the Mediation Server or Skype for Business Server client can terminate a
call if it does not receive RTCP packets for a period exceeding 30 seconds.
Note that disabling the checks for received RTCP media for active calls in Skype for Business Server elements
removes an important safeguard for detecting a dropped peer and should be done only if necessary.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RTCPCallsOnHold
This parameter determines whether RTCP packets continue to be sent across the trunk for calls that have been
placed on hold and no media packets are expected to flow in either direction. If Music on Hold is enabled at either
the Skype for Business Server client or the trunk, the call will be considered to be active and this property will be
ignored. In these circumstances use the RTCPActiveCalls parameter.
Note that disabling the checks for received RTCP media for active calls in Skype for Business Server elements
removes an important safeguard for detecting a dropped peer and should be done only if necessary.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipResponseCodeTranslationRulesList
A list of SIP response code translation rules that apply to response codes received from a PSTN gateway, IP -PBX,
or SBC at the service provider. These rules allow the administrator to map SIP response codes with values between
400 and 699 received over a trunk to new values more consistent with Skype for Business Server.
You can create this list and corresponding rules directly with this cmdlet. However, it is recommended that you
create the SIP response code translation rules by calling the New-CsSipResponseCodeTranslationRule cmdlet. That
cmdlet will create the rule and assign it to the trunk configuration with the matching scope.
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SRTPMode
The value of this parameter determines the level of support for SRTP to protect media traffic between the
Mediation Server and the PSTN Gateway, IP -PBX, or SBC at the service provider. For media bypass cases, this
value must be compatible with the EncryptionLevel setting in the media configuration. Media configuration is set
by using the New-CsMediaConfiguration cmdlet and the Set-CsMediaConfiguration cmdlet.

Valid values:
Required: SRTP encryption must be used.
Optional: SRTP will be used if the gateway supports it.
NotSupported: SRTP encryption is not supported and therefore will not be used.
Note: SRTPMode is used only if the gateway is configured to use Transport Layer Security (TLS ). If the gateway is
configured with Transmission Control Protocol (TCP ) as the transport, SRTPMode is internally set to
NotSupported.
Default: Required

Type: SRTPMode
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TrunkConfiguration.

Related Links
Remove-CsTrunkConfiguration
Set-CsTrunkConfiguration
Get-CsTrunkConfiguration
Test-CsTrunkConfiguration
New -CsOutboundTranslationRule
minutes to read • Edit Online

New-CsTrustedApplication
In ths Article

Adds a trusted application to a pool. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsTrustedApplication [[-Identity] <ExternalApplicationIdentity>] -Port <Int32> [-EnableTcp]
[-LegacyApplicationName <String>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsTrustedApplication -ApplicationId <String> -Port <Int32> -TrustedApplicationPoolFqdn <String>


[-EnableTcp] [-LegacyApplicationName <String>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
A trusted application is an application developed by a third party that is given trusted status to run as part of Skype
for Business Server but that is not a built-in part of the product. This cmdlet adds a trusted application to a trusted
application pool and assigns a port to the external service that runs the application.
Trusted applications need to be associated with Globally Routable User Agent URIs (GRUUs), both service GRUUs
and computer GRUUs. This cmdlet automatically generates these values based on the computers and services
associated with the pool on which this application is homed.
When you use this cmdlet to create a trusted application, you must supply values either for the Identity parameter
or for the ApplicationID and TrustedApplicationPoolFqdn parameters. The Identity is the
TrustedApplicationPoolFqdn followed by a slash (/) followed by the ApplicationID. For example,
TrustPool.litwareinc.com/tapp2, where TrustPool.litwareinc.com is the TrustedApplicationPoolFqdn and tapp2 is the
ApplicationID.
Note that when you enter an application ID (either as part of the Identity parameter or in the ApplicationID
parameter) you need to enter only the name of the application. However, the full application ID will be
automatically prefixed with the string urn:application:. For example, if you enter the value tapp2 for the
ApplicationID, that ID will be stored as urn:application:tapp2. Similarly, if you enter an Identity of
TrustPool.litwareinc.com/tapp2, the Identity will be stored in the system as
TrustPool.litwareinc.com/urn:application:tapp2.
When you specify the Port value with this cmdlet, the cmdlet does not open the port. You must open the port in the
Windows firewall and any corporate firewalls in order for the trusted application to make contact with networks
outside the firewall.

Examples
-------------------------- Example 1 ------------------------
New-CsTrustedApplication -ApplicationId tapp1 -TrustedApplicationPoolFqdn TrustPool.litwareinc.com -Port 6000

This example creates a trusted application with the Application ID tapp1. We use the TrustedApplicationPoolFqdn
parameter to designate the trusted application pool this application will be on, in this case the pool with the FQDN
TrustPool.litwareinc.com. We also must specify a port for the application; in this example we used port 6000. Note
that running this cmdlet by specifying an ApplicationId and a TrustedApplicationPoolFqdn will automatically
generate an Identity that can later be used to retrieve, modify, or remove this application.
-------------------------- Example 2 ------------------------

New-CsTrustedApplication -Identity TrustPool.litwareinc.com/tapp2 -Port 6100

This example creates a trusted application with the Identity TrustPool.litwareinc.com/tapp2 on Port 6100. Notice the
format of the Identity. This value must be in the format <trusted pool FQDN>/<Application ID>.

Parameters
-ApplicationId
The name of the application. This must be a string that is unique within the pool that is specified in the
TrustedApplicationPoolFqdn parameter. The string cannot contain spaces. If you supply a value for ApplicationId,
you must also supply a value for the TrustedApplicationPoolFqdn parameter. You cannot specify an ApplicationId
and an Identity.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableTcp
Specifies that the trusted application will use Transmission Control Protocol (TCP ). Use this parameter only if the
trusted application is not a Microsoft Unified Communications Managed API (UCMA) application. This is because
UCMA applications support only the mutual Transport Layer Security (MTLS ) protocol. If you do not specify the
Force parameter with the EnableTcp parameter, you'll receive a confirmation prompt before the new trusted
application will be created.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the trusted application on the pool. Identity values must be entered in the format <pool
FQDN>/<application ID>, where pool FQDN is the fully qualified domain name (FQDN ) of the pool on which the
application resides and application ID is the name of the application. The application ID must be unique for a given
pool.
If you enter an Identity, you cannot specify values for the ApplicationId or TrustedApplicationPoolFqdn parameters.

Type: ExternalApplicationIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LegacyApplicationName
Use this parameter only if the application is being migrated from a Microsoft Office Communications Server 2007
R2 deployment. This value must be the same as the GRUU type of the Office Communications Server 2007 R2
version of the application in order for the two to work together.
Note that in most cases, setting the ApplicationId parameter equal to the GRUU type will be enough for the
applications to work together. However, if the GRUU type from the Office Communications Server 2007 R2
application contains characters that are not valid in an ApplicationId, that value must be provided in the
LegacyApplicationName parameter.
If you don't specify a value for this parameter, the value of the Application ID will automatically be inserted (without
the urn:application: prefix).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Port
The port number on which the application will run. The port must be unique within a given pool. In other words, no
other applications that use this same port can be defined on the specified pool.

Type: Int32
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TrustedApplicationPoolFqdn
The FQDN of the trusted application pool on which the application will reside. If you supply a value for
TrustedApplicationPoolFqdn you must also supply a value for ApplicationId, but you cannot supply a value for the
Identity parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.Xds.DisplayTrustedApplication.

Related Links
Remove-CsTrustedApplication
Set-CsTrustedApplication
Get-CsTrustedApplication
minutes to read • Edit Online

New-CsTrustedApplicationComputer
In ths Article

Adds a computer that hosts trusted applications to an existing pool. This cmdlet was introduced in Lync Server
2010.

Syntax
New-CsTrustedApplicationComputer [-Identity] <XdsGlobalRelativeIdentity> -Pool <String> [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
We recommend that the computers that are running trusted applications within a Skype for Business Server
deployment be added to a separate pool that is only for trusted applications. However, you can add trusted
application computers to an existing pool that is also used for other purposes. By default, when you create a pool, a
computer with the same fully qualified domain name (FQDN ) as the pool is also created. Use this cmdlet to create a
new computer and add it to a pool.
The trusted application pool must already exist in order for this cmdlet to succeed. In addition, you can't add an
additional trusted application computer to a pool that contains service roles other than the ExternalServer role. For
example, if the pool also supports Registrar or CentralMgmt roles, the pool can contain only one trusted application
computer. In addition, if you did not specify a computer FQDN for the default computer when you created the pool
(by calling the New-CsTrustedApplicationPool ) cmdlet, the computer will have the same FQDN as the pool and you
cannot add another computer.

Examples
-------------------------- Example 1 ------------------------

New-CsTrustedApplicationComputer -Identity Trust1.litwareinc.com -Pool TrustPool.litwareinc.com

This example adds a new computer with the FQDN Trust1.litwareinc.com to the pool TrustPool.litwareinc.com. We
use the Identity parameter to specify the FQDN of the new computer and the Pool parameter to specify the FQDN
of the pool. The pool must exist and must be a trusted application pool. (Note: To create a trusted application pool,
call the New-CsTrustedApplicationPool cmdlet.)

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The FQDN of the computer that hosts the trusted application.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pool
The FQDN of the pool hosting the trusted application computer. You can find available pools by running the
Get-CsTrustedApplicationPool cmdlet.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.
Outputs
Creates an object of type Microsoft.Rtc.Management.Xds.DisplayComputer.

Related Links
Remove-CsTrustedApplicationComputer
Get-CsTrustedApplicationComputer
New -CsTrustedApplicationPool
Get-CsTrustedApplicationPool
minutes to read • Edit Online

New-CsTrustedApplicationEndpoint
In ths Article

Creates a new endpoint contact for a trusted application. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsTrustedApplicationEndpoint -ApplicationId <String> -TrustedApplicationPoolFqdn <Fqdn>
[-SipAddress <String>] [-DisplayName <String>] [-DisplayNumber <String>] [-LineURI <String>]
[-PrimaryLanguage <String>]
[-SecondaryLanguages <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]>]
[-Tenant <Guid>] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
A trusted application endpoint is an Active Directory contact object that enables routing of calls to a trusted
application. This cmdlet creates a new endpoint contact object in Active Directory Domain Services for a specified
application.

Examples
-------------------------- Example 1 ------------------------

New-CsTrustedApplicationEndpoint -ApplicationId tapp1 -TrustedApplicationPoolFqdn TrustPool.litwareinc.com

This example creates a trusted application endpoint for the application with the Application ID tapp1 homed on the
pool TrustPool.litwareinc.com. ApplicationID and TrustedApplicationPoolFqdn are the only parameters that are
required to create a trusted application endpoint. However, keep in mind that assigning values to only these two
parameters will auto-generate a SIP address for the contact. In order to ensure the SIP address is unique, the auto-
generated address will include a globally unique identifier (GUID ) and will look something like this:
sip:RtcApplication-fbf9e2d1-c6aa-45a3-a045-b92d4ef961b2@litwareinc.com. If you'd like a more readable SIP
address, see Example 2.
-------------------------- Example 2 ------------------------

New-CsTrustedApplicationEndpoint -ApplicationId tapp1 -TrustedApplicationPoolFqdn TrustPool.litwareinc.com -


SipAddress sip:endpoint1@litwareinc.com

Example 2 is identical to Example 1 in that it creates a trusted application endpoint for the application with the
Application ID tapp1 on the TrustPool.litwareinc.com pool. Unlike Example 1, we include one more parameter in
our endpoint creation: SipAddress. Rather than allowing the system to generate a SIP address, we've specified an
address of endpoint1@litwareinc.com.

Parameters
-ApplicationId
The application ID of the trusted application for which the endpoint contact is being created. An application with
this ID must already exist. Note that you may include only the name part of the application ID, you don't need to
(but you can) include the prefix information. For example, if the application ID is urn:application:TrustedApp1 you
only need to pass the string TrustedApp1 to this parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
The display name of the endpoint contact object.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
The telephone number of the contact as it will appear in the Address Book.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LineURI
The phone number of the contact. Must be in the format TEL:<number>, for example TEL:+14255551212.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-PassThru
Returns the results of this command. Running this cmdlet will display the newly created object; including this
parameter will simply repeat that output, making the use of this parameter redundant.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryLanguage
The primary language used for the trusted application. The language must be configured using a valid language
code, such as en-US (U.S. English), fr-FR (French), etc.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecondaryLanguages
A collection of languages that can also be used for trusted applications. Values must be configured as a comma-
separated values list of language codes. For example, the following syntax sets French Canadian and French as
secondary languages: -SecondaryLanguages "fr-CA","fr-FR" .

Type: Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
A SIP address for the new contact object. If you do not include a value for this parameter a SIP address will be
auto-generated in the format sip:RtcApplication-<GUID>.<domain>, for example sip:RtcApplication-fbf9e2d1-
c6aa-45a3-a045-b92d4ef961b2@litwareinc.com. The domain will be the default SIP domain.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new trusted
application pool endpoint is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TrustedApplicationPoolFqdn
The fully qualified domain name (FQDN ) of the trusted application pool associated with the application. The
application must already be associated with this pool for the endpoint to be created.

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact.

Related Links
Remove-CsTrustedApplicationEndpoint
Set-CsTrustedApplicationEndpoint
Get-CsTrustedApplicationEndpoint
minutes to read • Edit Online

New-CsTrustedApplicationPool
In ths Article

Creates a new pool that will contain the computers that host trusted applications. This cmdlet was introduced in
Lync Server 2010.

Syntax
New-CsTrustedApplicationPool [-Identity] <XdsGlobalRelativeIdentity> [-AppSharingPortCount <UInt16>]
[-AppSharingPortStart <UInt16>] [-AudioPortCount <UInt16>] [-AudioPortStart <UInt16>] [-ComputerFqdn <Fqdn>]
[-OutboundOnly <Boolean>] [-Registrar <String>] [-RequiresReplication <Boolean>] [-Site <String>]
[-ThrottleAsServer <Boolean>] [-TreatAsAuthenticated <Boolean>] [-VideoPortCount <UInt16>]
[-VideoPortStart <UInt16>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
We recommend that the computers that are running trusted applications within a Skype for Business Server
deployment be added to a separate pool that is only for trusted applications. However, you can add trusted
application computers to an existing pool that is also used for other purposes. If the pool already exists as part of
the topology, this cmdlet creates the external service associated with that pool (with a service role of
ExternalServer). If the pool does not exist, this cmdlet creates the pool and the corresponding service. (You can find
a list of all existing pools by calling the Get-CsPool cmdlet.)
Creating a new trusted application pool (a new external service) also creates a new trusted application computer
assigned to that pool. By default the computer will be assigned the same fully qualified domain name (FQDN ) as
the pool. However, you can specify your own value for the FQDN by using the ComputerFqdn parameter of this
cmdlet. If you plan to add more computers to the pool, you must specify a ComputerFqdn value that is different
from the FQDN of the pool. To add more computers to the pool, call the New-CsTrustedApplicationComputer cmdlet.

Examples
-------------------------- Example 1 ------------------------

New-CsTrustedApplicationPool -Identity TrustPool.litwareinc.com -Registrar pool0.litwareinc.com -Site Redmond

This example creates a new pool with the FQDN TrustPool.litwareinc.com. We use the Identity parameter to specify
the new FQDN. We use the Registrar parameter with a value of pool0.litwareinc.com to associate the new pool with
the Registrar service at that FQDN. Finally, we use the Site parameter with a value of Redmond to specify that this
pool will be part of the Redmond site.
Note that the Site value is the SiteId (which can be retrieved by calling the Get-CsSite cmdlet). However, the site
Identity will be stored with the new trusted application pool. For example, if a site has an Identity of site:Redmond1
and a SiteId of NA, you must use NA as the value of the Site parameter in your call to the
New-CsTrustedApplicationPool cmdlet. However, if you want to later find all trusted application pools for the NA
site, you would use the Identity value in your where clause, like this:
Get-CsTrustedApplicationPool | Where-Object {$_.SiteId -eq "site:Redmond1"}

-------------------------- Example 2 ------------------------

New-CsTrustedApplicationPool -Identity TrustPool.litwareinc.com -Registrar Registrar:redmond.litwareinc.com -


Site Redmond -ComputerFqdn AppServer.litwareinc.com

Example 2 is identical to Example 1 except that instead of specifying an FQDN for the Registrar service we've used
the service ID, Registrar:redmond.litwareinc.com. In addition, we've specified a value for the ComputerFqdn
parameter. When a pool is created, a computer is also created within that pool. By default the computer will have
the same FQDN as the pool. We've specified a different FQDN, AppServer.litwareinc.com, for the computer that is
in this pool.

Parameters
-AppSharingPortCount
The number of ports available in the port range for application sharing connections.
Default: 0

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AppSharingPortStart
The number of the first port in the port range available for application sharing connections.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioPortCount
The number of ports available in the port range for audio connections.
Default: 0

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioPortStart
The number of the first port in the port range available for audio connections.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ComputerFqdn
Creating a trusted application pool will automatically create a trusted application computer that is part of that pool.
By default the computer will receive the same FQDN as the pool. Enter a value in this parameter to specify an
FQDN for the computer that is different from the pool FQDN. If you plan to add more computers to the pool, you
must enter a value for this parameter that is different from the pool FQDN.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The FQDN of the new pool. Note that while the Identity value for creating a pool is the pool FQDN, the value that
will be stored as the Identity with the new pool is actually an automatically generated service ID of the pool. The
Identity entered here will be saved as the PoolFqdn.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutboundOnly
Specifies whether a trusted application can initiate a connection to a server within the pool. Set this value to True if
you want all connections to be initiated by the server rather than the application.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Registrar
The service ID or FQDN of the Registrar service for the pool.
Note that even though this parameter is optional, if you attempt to create a new trusted application endpoint (by
using the New-CsTrustedApplicationEndpoint cmdlet) and assign the endpoint to a pool that does not have a
Registrar dependency, you'll receive an error and the endpoint will not be created. In addition, you cannot remove a
trusted application pool that is not associated with a Registrar.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequiresReplication
Determines whether replication is required for this pool. Set this value to False if replication is not required. You
would usually set this parameter to False for Microsoft Outlook Web Access and manually-provisioned
applications.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Site
The Site ID of the site on which this pool is homed. Call the Get-CsSite cmdlet to retrieve the SiteId property of a
site. Keep in mind that you must use the SiteId property rather than the Identity of the site. Also note that you must
not precede the SiteId with the string "site:", you must enter only the SiteId. In addition, although you enter the
SiteId retrieved from the Get-CsSite cmdlet, the SiteId property of the new trusted application pool will contain
the site Identity. For example, if the SiteId for the site is Main and the site Identity is site:Redmond1, you must enter
-Site Main in your call to the New-CsTrustedApplicationPool cmdlet, but a subsequent call to the
Get-CsTrustedApplicationPool cmdlet will show the SiteId as site:Redmond1.

If the pool specified in the Identity already exists you do not need to specify a Site. If the pool doesn't exist, this
parameter is required.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ThrottleAsServer
Set this parameter to false to throttle connections between the servers within the pool and trusted applications as
clients. This places greater restrictions on the connections than the default True, which throttles connections as
servers. Throttling a connection places restrictions on the number of transactions that can occur at once.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TreatAsAuthenticated
Determines whether authentication is required for trusted applications connecting to servers within the pool. Set
this parameter to False if you want to require trusted applications to be authenticated. The default value of True
allows the trusted applications to connect under the assumption they've already been authenticated.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoPortCount
The number of ports available in the port range for video connections.
Default: 0

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoPortStart
The number of the first port in the port range available for video connections.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.Xds.DisplayExternalServer.

Related Links
Remove-CsTrustedApplicationPool
Set-CsTrustedApplicationPool
Get-CsTrustedApplicationPool
New -CsTrustedApplicationComputer
Get-CsSite
minutes to read • Edit Online

New-CsUCPhoneConfiguration
In ths Article

Creates a new collection of settings used to manage UC phone configuration settings. These settings enable you to
configure such things as the required security mode and to specify whether or not the phone should automatically
be locked after a specified period of inactivity. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsUCPhoneConfiguration [-Identity] <XdsIdentity> [-CalendarPollInterval <TimeSpan>]
[-EnforcePhoneLock <Boolean>] [-LoggingLevel <LoggingLevel>] [-MinPhonePinLength <Byte>]
[-PhoneLockTimeout <TimeSpan>] [-SIPSecurityMode <SIPSecurityMode>] [-Voice8021p <Byte>]
[-VoiceDiffServTag <Byte>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
UC phones represent the merging of the telephone and Skype for Business Server. UC phones use special
hardware (that is, a Skype for Business-compatible telephone) that can function as a Voice over Internet Protocol
(VoIP ) telephone. In addition, this hardware can also act as a Skype for Business-like endpoint: you can set your
current status; check the status of your Skype for Business contacts; search for new contacts and carry out many of
the other activities you are used to doing with Skype for Business.
Skype for Business Server ships with a number of cmdlets that enable you to manage your UC phones; for
example, you can control such things as the minimum length of the personal identification number (PIN ) used to
log on to the phone and whether or not the phone will automatically lock itself after a specified period of inactivity.
Unified communications (UC ) phone configuration settings can be applied at either the global scope or at the site
scope. (Settings applied at the site scope take precedence over settings applied at the global scope.) When you first
install Skype for Business Server, a single set of UC phone configuration settings is created and applied at the
global scope. However, at any time after that you can use the New-CsUCPhoneConfiguration cmdlet to create a
collection of settings that are applied at the site scope. This lets you tailor UC phone management to the unique
needs of each individual site.
The New-CsUCPhoneConfiguration cmdlet enables you to create new UC phone settings at the site scope. Note that
there can only be one collection of settings per site. For example, suppose you try to create a collection of settings
that has the Identity site:Redmond, but the Redmond site already has a set of UC phone settings assigned to it. In
that case, your command will fail. Instead, you must do one of two things: either remove the existing settings and
then use the New-CsUCPhoneConfiguration cmdlet to create a new collection of settings; or simply use the
Set-CsUCPhoneConfiguration cmdlet to modify the existing settings.

You cannot create a new collection of settings at the global scope. The only thing you can do at the global scope is
use the Set-CsUCPhoneConfiguration cmdlet to modify the existing settings.

Examples
-------------------------- Example 1 ------------------------
New-CsUCPhoneConfiguration -Identity site:Redmond -CalendarPollInterval "00:10:00" -LoggingLevel "Medium"

Example 1 creates a new collection of UC phone settings for the Redmond site. In this example, two optional
parameters are included along with the required parameter Identity: CalendarPollInterval, which sets the calendar
polling time to every 10 minutes (00 hours: 10 minutes: 00 seconds); and LoggingLevel, which sets the UC phone
logging level to Medium. As soon as this command completes, the new settings will be applied to the Redmond site
and users in that site will have their UC phones governed by the new settings. Note that this command will fail if
the Redmond site already has a collection of UC phone settings.
-------------------------- Example 2 ------------------------

$x = New-CsUCPhoneConfiguration -Identity site:Redmond -InMemory

$x.CalendarPollInterval = "00:10:00"

$x.LoggingLevel = "Medium"

Set-CsUCPhoneConfiguration -Instance $x

Example 2 demonstrates the use of the InMemory parameter; this parameter enables you to create a new set of UC
phone settings that exists in memory only. (These settings are stored in the variable $x.) After this virtual collection
has been created, you can modify the in-memory-only settings using commands similar to those shown in lines 2
and 3 of the example: in line 2, the CalendarPollInterval property is set the 10 minutes (00 hours: 10 minutes: 00
seconds) and in line 3 the LoggingLevel property is set to Medium.
After you have finished modifying the property values, you can then use the Set-CsUCPhoneConfiguration cmdlet to
turn the virtual settings stored in $x into an actual collection of settings applied to the Redmond site. Note that, with
the use of the InMemory parameter, the settings are not actually applied until you call the
Set-CsUCPhoneConfiguration cmdlet. If you do not call this cmdlet, your virtual settings will disappear when you end
your Windows PowerShell session or when you delete the variable $x.

Parameters
-CalendarPollInterval
Indicates how often the UC device retrieves information from your Outlook calendar. The value must be specified
using the format hours:minutes:seconds; for example, to set the time interval to 1 hour (the maximum allowed
interval) use this syntax:
-CalendarPollInterval "01:00:00"

The default value is 3 minutes (00:03:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnforcePhoneLock
Determines whether or not UC phones are automatically locked after the number of minutes specified by
PhoneLockTimeout. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Represents the unique identifier to be assigned to the new collection of UC phone configuration settings. Because
you can only create new collections at the site scope, the Identity will always be the prefix "site:" followed by the site
name; for example "site:Redmond".

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LoggingLevel
Enables logging on the UC device. Valid values are Off; Low; Medium; and High. The default value is Off.

Type: LoggingLevel
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MinPhonePinLength
Specifies the minimum number of digits required for personal identification numbers (PINs).
Minimum value: 4
Maximum value: 15
Default: 6

Type: Byte
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PhoneLockTimeout
Specifies the length of time, in minutes, that a UC phone will remain idle before automatically locking.
This value must be less than 01:00:00 (1 hour). The default value is 00:10:00 (10 minutes).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SIPSecurityMode
Specifies the level of security that the server applies to SIP sessions initiated by a UC phone.
Valid values are:
Low (allow any type of authorization or transport).
Medium (NTLM or Kerberos is required for user authentication).
High (NTLM or Kerberos is required for user authentication and TLS is required for SIP connections).
The default value is High.

Type: SIPSecurityMode
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Voice8021p
Specifies the user priority value (the 802.1p value) for voice traffic within the Skype for Business Server
deployment.
This setting is effective only for networks in which switches and bridges are 802.1p-capable. The minimum value
for this property is 0 and the maximum value is 7. The default value is 0.

Type: Byte
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VoiceDiffServTag
Specifies the decimal representation of the 6-bit DiffServ Code Point (DSCP ) priority marking. This marking
defines the Per Hop Behavior (PHB ) for IP packets passed by the UC phones that are managed by this server.
This value must be between 0 and 63, inclusive. The default value is 40.

Type: Byte
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsUCPhoneConfiguration cmdlet does not accept pipelined input.

Outputs
Creates instances of the Microsoft.Rtc.Management.WritableConfig.Policy.Voice.UcPhoneSettings object.

Related Links
Get-CsUCPhoneConfiguration
Remove-CsUCPhoneConfiguration
Set-CsUCPhoneConfiguration
minutes to read • Edit Online

New-CsUnassignedNumber
In ths Article

Creates a new range of unassigned numbers and the routing rules that apply to those numbers. Running this
cmdlet will add an entry to the unassigned number routing table. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsUnassignedNumber [-Identity] <XdsGlobalRelativeIdentity> [-NumberRangeStart] <String>
[-NumberRangeEnd] <String> [-AnnouncementService] <String> [-AnnouncementName] <String> [-Priority <Int32>]
[-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsUnassignedNumber [-Identity] <XdsGlobalRelativeIdentity> [-NumberRangeStart] <String>


[-NumberRangeEnd] <String> [-ExUmAutoAttendantPhoneNumber] <String> [-Priority <Int32>] [-Force] [-InMemory]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Unassigned numbers are phone numbers that have been assigned to an organization but that have not been
assigned to specific users or phones. Skype for Business Server can be set up to route calls to appropriate
destinations when an unassigned number is called. This cmdlet creates the settings that define that routing.
Before running this cmdlet, your system must already either have Announcements defined or an Exchange Auto
Attendant set up. To determine whether you have Announcements, call the Get-CsAnnouncement cmdlet. To create a
new Announcement, call the New-CsAnnouncement cmdlet. To check on Exchange Auto Attendant settings, run the
Get-CsExUmContact cmdlet.

Examples
-------------------------- Example 1 --------------------------

New-CsUnassignedNumber -Identity UNSet1 -NumberRangeStart "+14255551000" -NumberRangeEnd "+14255551100" -


AnnouncementService ApplicationServer:redmond.litwareinc.com -AnnouncementName "Welcome Announcement"

This example creates an unassigned number range with the name UNSet1. We use the NumberRangeStart
(+14255551000) and NumberRangeEnd (+14255551100) parameters to define the range of unassigned numbers
to which the specified announcement will apply. Finally, we specify the Announcement by first supplying the
AnnouncementService parameter with the service ID of the Announcement service and then passing the value
"Welcome Announcement" to the parameter AnnouncementName. Keep in mind that an Announcement with that
name must already exist in the system.
-------------------------- Example 2 --------------------------
New-CsUnassignedNumber -Identity UNSet2 -NumberRangeStart "+14255552100" -NumberRangeEnd "+14255552200" -
ExUmAutoAttendantPhoneNumber "+12065551234"

This example creates an unassigned number range with the name UNSet2. As in Example 1 we use the
NumberRangeStart (+14255552100) and NumberRangeEnd (+14255552200) parameters to define the range of
unassigned numbers to which the specified announcement will apply. However, in this example, instead of using
the Announcement service, this number range will use the Exchange Auto Attendant. (The Auto Attendant is a
single number designated as the organization's main number that guides users through voice prompts to help
them reach the appropriate party.) We pass a phone number to the ExUmAutoAttendantPhoneNumber parameter
to complete this command. Note that Exchange must be set up and this number must be an existing contact object
phone number in Active Directory Domain Services. The contact must be an Auto Attendant contact (the
AutoAttendant property for the contact must be True).
-------------------------- Example 3 --------------------------

New-CsUnassignedNumber -Identity UNSet2 -NumberRangeStart "+14255552100" -NumberRangeEnd "+14255552200" -


ExUmAutoAttendantPhoneNumber "+12065551234" -Priority 2

Example 3 is almost identical to Example 2: It creates an unassigned number range with the name UNSet2. The
difference in this example is that we've added the Priority parameter, in this case with a value of 2. This means that
if an unassigned number range has been defined that overlaps this one and that number range has a higher priority
(a lower priority number, such as 1), calls will be routed based on the settings for that range rather than this one.

Parameters
-AnnouncementName
The name of the Announcement that will be used to handle calls to this range of numbers.

Type: String
Required: True
Position: 6
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AnnouncementService
The fully qualified domain name (FQDN ) or service ID of the Announcement service. This parameter is required
only if you have not specified a value for the ExUmAutoAttendantPhoneNumber parameter.

Type: String
Required: True
Position: 5
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExUmAutoAttendantPhoneNumber
The phone number of the Exchange Auto Attendant to route calls in this range to. This field is required only if you
are not using an Announcement Service (in which case you do not supply values for the AnnouncementService or
AnnouncementName parameters). The Exchange Auto Attendant contact must already be set up in order to assign
a value to this parameter.

Type: String
Required: True
Position: 5
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique name for the range of unassigned numbers being created. All unassigned number ranges have a global
scope, so the name specified here must be unique throughout the Skype for Business Server deployment.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-NumberRangeEnd
The last number in the range of unassigned numbers. Must be greater than or equal to the number supplied for
NumberRangeStart. To specify a range of one number, use the same number for the NumberRangeStart and
NumberRangeEnd.
The number must match the regular expression (tel:)?(+)?[1-9]\d{0,17}(;ext=[1-9]\d{0,9})?. This means the number
may begin with the string tel: (if you don't specify that string it will be automatically added for you), a plus sign (+)
and a digit 1 through 9. The phone number can be up to 17 digits and may be followed by an extension in the
format ;ext= followed by the extension number.

Type: String
Required: True
Position: 4
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberRangeStart
The first number in the range of unassigned numbers. Must be less than or equal to the value supplied for
NumberRangeEnd.
The number must match the regular expression (tel:)?(+)?[1-9]\d{0,17}(;ext=[1-9]\d{0,9})?. This means the number
may begin with the string tel: (if you don't specify that string it will be automatically added for you), a plus sign (+)
and a digit 1 through 9. The phone number can be up to 17 digits and may be followed by an extension in the
format ;ext= followed by the extension number.

Type: String
Required: True
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
It is possible for unassigned number ranges to overlap. If a number falls within more than one range, the range
with the highest priority will take effect.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.Voice.Helpers.DisplayAnnouncementVacantNumberRange.

Related Links
Remove-CsUnassignedNumber
Set-CsUnassignedNumber
Get-CsUnassignedNumber
New -CsAnnouncement
Get-CsAnnouncement
Get-CsExUmContact
minutes to read • Edit Online

New-CsUserReplicatorConfiguration
In ths Article

Creates a new collection of User Replicator configuration settings. The User Replicator periodically retrieves up-to-
date user account information from Active Directory and then synchronizes the new information with the current
user data stored by Skype for Business Server. This cmdlet is designed for use with Skype for Business Online and
will not work with the on-premises version of Skype for Business Server.

Syntax
New-CsUserReplicatorConfiguration [-Identity] <XdsIdentity> [-ADDomainNamingContextList <PSListModifier>]
[-ReplicationCycleInterval <TimeSpan>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-SkipFirstSyncAllowedDowntime <TimeSpan>] [<CommonParameters>]

Description
Although Skype for Business Server maintains its own database of user accounts and user account data, Skype for
Business Server still relies on Active Directory as the ultimate source for user information. For example, when a
new Active Directory user account is created, you must supply basic information about the user account (such as
the Active Directory display name). When a user is enabled for Skype for Business Server, however, you do not
need to specify a new display name. That's because Skype for Business Server uses the display name already
stored in Active Directory.
User account information, including the Active Directory display name, is subject to change over time. For example,
a user who gets married might change her last name and, in turn, need to change her display name as well. In order
to ensure that the Skype for Business Server database and Active Directory remain in synch, Skype for Business
Server must periodically check in with Active Directory, retrieve the latest user account updates, and then modify
the Skype for Business Server user database accordingly. This synchronization between Active Directory and Skype
for Business Server is carried out by the User Replicator.
When you install Skype for Business Server a global set of User Replicator configuration settings is created for you.
By default, these settings are used to manage the User Replicator on an organization-wide basis. Management of
the User Replicator consists of identifying the domains that Skype for Business Server needs to synch with as well
as indicating how often the User Replicator checks Active Directory for user account updates. You can also create
additional collections at the service scope, but only if you are working with Skype for Business Online.
New User Replicator configurations settings are created using the New-CsUserReplicatorConfiguration cmdlet. Note
that these settings can only be created at the service scope and only for Skype for Business Online. You cannot
create new User Replicator settings for the on-premises version of Skype for Business Server.

Examples
-------------------------- Example 1 ------------------------

New-CsUserReplicatorConfiguration -Identity "service:Registrar:atl-cs-001.litwareinc.com"


The command shown in Example 1 creates a new collection of User Replicator configuration settings for the service
Registrar:atl-cs-001.litwareinc.com. Because no additional parameters are specified, the new collection will use the
default user replicator values.
-------------------------- Example 2 ------------------------

New-CsUserReplicatorConfiguration -Identity "service:Registrar:atl-cs-001.litwareinc.com" -


ADDomainNamingContextList @{Add="dc=fabrikam,dc=com","dc=contoso.com"}

Example 2 also creates a new collection of user replicator configuration settings for the service Registrar:atl-cs-
001.litwareinc.com. In this case, however, the ADDomainNamingContextList is added, along with the distinguished
names of the two domains to synchronize with: fabrikam.com and contoso.com. This new collection of user
replicator configuration settings will only configure with those two domains, even if other domains are available.

Parameters
-ADDomainNamingContextList
Distinguished names of the Active Directory domains that the User Replicator must synchronize with. For example,
to add a domain to the list use syntax similar to this:
-ADDomainNamingContextList @{Add="dc=fabrikam,dc=com"}

You can add more than one domain name when calling the New-CsUserReplicatorConfiguration cmdlet. To do this,
simply separate the domain names by using a comma:
-ADDomainNamingContextList @{Add="dc=fabrikam,dc=com","dc=contoso,dc=com"}

If you set this property to a null value the user replicator will discover and synchronize with all available domains. If
this property is not null then the replicator will only synchronize with the domains specified in the
ADDomainNamingContextList.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the User Replicator configuration settings to be created. Settings can only be created at the
service scope and only for the Registrar service. That means that new settings must have an Identity similar to this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Note that this applies only to Skype for Business Online.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReplicationCycleInterval
Represents the amount of time that the User Replicator waits before checking for user account updates in Active
Directory. The replication cycle interval can be any time value between 1 second and 23 hours, 59 minutes and 59
seconds; the default value is 1 minute. The interval must be expressed using the format hours:minutes:seconds. For
example, this syntax sets to time interval to one hour and 15 minutes:
-ReplicationCycleInterval 01:15:00

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipFirstSyncAllowedDowntime
Indicates how long Skype for Business Server should wait for user data to synchronize before marking the service
as started. The default value is 2 hours (02:00:00), meaning that, after 2 hours, the status of the replication service
will changed from Pending to Started.
Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsUserReplicatorConfiguration cmdlet does not accept pipelined input.

Outputs
The New-CsUserReplicatorConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.UserReplicatorConfiguration object.

Related Links
Get-CsUserReplicatorConfiguration
Remove-CsUserReplicatorConfiguration
Set-CsUserReplicatorConfiguration
minutes to read • Edit Online

New-CsUserServicesConfiguration
In ths Article

Creates a new collection of User Services configuration settings. The User Services service is used to help maintain
presence information and manage conferencing. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsUserServicesConfiguration [-Identity] <XdsIdentity> [-AnonymousUserGracePeriod <TimeSpan>]
[-DeactivationGracePeriod <TimeSpan>] [-DefaultSubscriptionExpiration <Int64>]
[-MaintenanceTimeOfDay <DateTime>] [-MaxContacts <UInt16>] [-MaxPersonalNotes <UInt32>]
[-MaxScheduledMeetingsPerOrganizer <UInt32>] [-MaxSubscriptionExpiration <Int64>] [-MaxSubscriptions <UInt16>]
[-SubscribeToCollapsedDG <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-MinSubscriptionExpiration <Int64>] [-PresenceProviders <PSListModifier>]
[-AllowNonRoomSystemNotification <Boolean>] [<CommonParameters>]

Description
Skype for Business Server relies on the User Services service to help maintain presence information for users and
to manage meetings and conferences. In turn, the CsUserServicesConfiguration cmdlets are used to administer
User Services configuration settings at the global, site and service scope. (Note that the only service that can host
User Services configuration settings is the User Services service itself.) These settings help determine such things
as the number of contacts a user can have, the number of meetings a user can have scheduled at any one time and
the length of time that a given meeting can remain active.
The New-CsUserServicesConfiguration cmdlet provides a way for administrators to create a new collection of User
Services configuration settings at the site or service scope. (New collections cannot be created at the global scope.)
Note that any given site or service can only have, at most, a single collection of User Services configuration
settings. Your command will fail if you try to create settings for, say, the Redmond site and that site already hosts a
collection of User Services configuration settings.

Examples
-------------------------- Example 1 ------------------------

New-CsUserServicesConfiguration -Identity site:Redmond -MaxContacts 500 -MaintenanceTimeOfDay "11:00 PM"

The command shown in Example 1 creates a new collection of User Services configuration settings for the
Redmond site ( -Identity site:Redmond ). In addition to specifying the Identity, the command also sets the maximum
number of contacts (-MaxContacts 500) and the time of day when maintenance occurs (
-MaintenanceTimeOfDay "11:00 PM" ). Note that this command will fail if User Services settings have already been
configured for the Redmond site. That is because you are limited to one collection of settings per site.
-------------------------- Example 2 ------------------------
$x = New-CsUserServicesConfiguration -Identity site:Redmond -InMemory

$x.MaxContacts = 500

$x.MaintenanceTimeOfDay = "11:00 PM"

Set-CsUserServicesConfiguration -Instance $x

Example 2 also creates a new collection of User Services configuration settings for the Redmond site. However, in
this example the collection is initially created in memory and is only later applied to the Redmond site. To do this,
the first command in the example uses the New-CsUserServicesConfiguration cmdlet and the InMemory parameter
to create a new collection (with the Identity site:Redmond) that exists only in memory. Because this collection exists
only in memory, the User Services object must be stored in a variable. In this case, that's a variable named $x.
After the virtual collection has been created, commands 2 and 3 are used to modify the values of the MaxContacts
and the MaintenanceTimeOfDay properties. The final command in the example then uses the
Set-CsUserServicesConfiguration cmdlet to transform these virtual settings into an actual collection of User
Services configuration settings applied to the Redmond site. This final step is crucial: if you do not call the
Set-CsUserServicesConfiguration cmdlet no settings will be applied to the Redmond site and your virtual settings
will disappear as soon as you terminate your Windows PowerShell session or delete the variable $x.

Parameters
-AllowNonRoomSystemNotification
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AnonymousUserGracePeriod
Represents the amount of time an anonymous (unauthenticated) user can remain in a meeting without an
authenticated user being present in that same meeting. For example, if this value is set to 15 minutes an
anonymous user can stay in the meeting for, at most, 15 minutes before an authenticated user must join. If an
authenticated user does not join before the grace period expires then the anonymous user will be removed from
the meeting. This setting applies to both scheduled meetings and to ad-hoc meetings created by clicking Meet Now
in Microsoft Lync.
The AnonymousUserGracePeriod must be specified using the following format: days.hours:minutes:seconds (for
example, 0.00:30:00 for 30 minutes). The grace period can be set to any value between 0 second and 1 day; the
default value is 90 minutes (01:30:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DeactivationGracePeriod
The maximum amount of time that a meeting can remain active. This value must be specified using the following
format: days.hours:minutes:seconds. For example, to enable a meeting to last for 60 hours you would use this
format: 2.12:00:00 (2 days. 12 hours: 00 minutes: 00 seconds.)
The DeactivationGracePeriod must be between 8 hours and 365 days, inclusive. The default value is 1 day
(1.00:00:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultSubscriptionExpiration
Subscriptions are created any time a user makes a request for data such as presence information. When the request
is made, the user (or, more correctly, the user's client application) can request the length of time that the
subscription remains valid before it must be renewed. If no such request is issued, then the subscription is set to the
value specified by the DefaultSubscriptionExpiration property.
The default subscription time must be expressed as an integer value between 300 seconds (5 minutes) and 86400
seconds (24 hours), inclusive. The default value is 28800 seconds (8 hours).

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the User Services configuration settings to be created. To create settings at the site scope, use
syntax similar to this:
-Identity site:Redmond

To create settings at the service level, use syntax like this:


-Identity service:UserServer:atl-cs-001.litwareinc.com

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaintenanceTimeOfDay
Indicates the time of day when regularly-scheduled database maintenance (such as the purging of outdated
records) takes place. This value must be specified as a date-time value. You can use either the 24-hour format (for
example, "14:00") or the 12-hour format (for example, "2:00 PM").
The default value for MaintenanceTimeOfDay is 1:00 AM (01:00:00).

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxContacts
The maximum number of contacts a user can have; the default value is 250. The MaxContacts property represents
the absolute maximum number of contacts a user can have. However, you can use the CsClientPolicy cmdlets to
limit certain users to a maximum number of contacts lower than the value of MaxContacts.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxPersonalNotes
Indicates the maximum number of personal notes that are stored in the user's note history. By default, the last 3
personal notes are maintained in the note history. The maximum number of notes that can be maintained in the
history is 10.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxScheduledMeetingsPerOrganizer
The maximum number of meetings that a single user can serve as organizer for at a given time. The default value is
1000. This means that, if a user is already the organizer for 1000 meetings, his or her attempt to schedule a new
meeting (meeting number 1001) will fail.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxSubscriptionExpiration
Subscriptions are created any time a user makes a request for data such as presence information. When the request
is made, the user (or, more correctly, the user's client application) can request the length of time that the
subscription remains valid before it must be renewed. The MaxSubscriptionExpiration property represents the
maximum amount of time that clients can be granted. For example, if the maximum time is set to 28800 seconds
and a client requests a timeout interval of 86400 seconds, the client will be given the maximum allowed expiration
period: 28800 seconds.
The maximum subscription time must be expressed as an integer value between 300 seconds (5 minutes) and
86400 seconds (24 hours), inclusive. The default value is 43200 seconds (12 hours).

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxSubscriptions
The maximum number of SIP subscribe dialogs that a user can have open at any one time. A subscribe dialog
represents a request for SIP resources. The default value is 200.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MinSubscriptionExpiration
Subscriptions are created any time a user makes a request for data such as presence information. When the request
is made, the user (or, more correctly, the user's client application) can request the length of time that the
subscription remains valid before it must be renewed. The MinSubscriptionExpiration property represents the
minimum amount of time that clients can be granted. For example, if the minimum time is set to 1200 seconds and
a client requests a timeout interval of 200 seconds, the client will be given the minimum allowed expiration period:
1200 seconds.
The minimum subscription time must be expressed as an integer value between 300 seconds (5 minutes) and
86400 seconds (24 hours), inclusive. The default value is 1200 seconds (20 minutes).

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PresenceProviders
Collection of presence providers for the new User Service configuration settings. Presence providers are best
added to a collection of User Service configuration settings by using the New-CsPresenceProvider cmdlet.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscribeToCollapsedDG
If set to True (the default value), client applications will be allowed to subscribe to distribution groups that are not
currently expanded in the Contacts list. This enables the client to maintain up-to-minute presence information for
each member of the group. If set to False, client applications will not be allowed to subscribe to "collapsed" groups.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsUserServicesConfiguration cmdlet does not accept pipelined input.
Outputs
The New-CsUserServicesConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserServicesSettings object.

Related Links
Get-CsUserServicesConfiguration
Remove-CsUserServicesConfiguration
Set-CsUserServicesConfiguration
minutes to read • Edit Online

New-CsUserServicesPolicy
In ths Article

Creates a new User Services policy. User Services policies determine whether or not a user's contacts are stored in
Skype for Business Server or in the Unified Contact Store. The Unified Contact Store provides a way for users to
maintain a single set of contacts that can be accessed using Skype for Business, Microsoft Outlook and/or
Microsoft Outlook Web Access. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsUserServicesPolicy [-Identity] <XdsIdentity> [-Confirm] [-Force] [-InMemory] [-Tenant <Guid>]
[-UcsAllowed <Boolean>] [-WhatIf] [-EnableAwaySinceIndication <Boolean>] [-MigrationDelayInDays <Int32>]
[<CommonParameters>]

Description
The unified contact store introduced in Skype for Business Server gives administrators the option of storing a
user's contacts in Exchange instead of in Skype for Business Server; in turn that allows the user to access the same
set of contacts in Microsoft Outlook and Outlook Web Access as well as in Skype for Business. (Alternatively, you
can continue to store contacts in Skype for Business Server. In that case, users will have to maintain two separate
sets of contacts: one for use with Outlook and Outlook Web Access and one for use with Skype for Business.)
In order to take advantage of the unified contact store you must (among other things) assign the user a user
services policy that enables the use of the unified contact store. User service policies (which can be configured at
the global, site, or the per-user scope) contain only a single property: UcsAllowed. When this property is set to True
then (assuming all the other prerequisites have been met) the next time a user logs on to Skype for Business Server
his or her contacts will automatically be migrated to the unified contact store.
If this property is set to False this automatic migration will not take place. However, simply setting UcsAllowed will
not cause a user's contacts to be moved from the unified contact store back to Skype for Business Server. In order
to do that, you must first assign the user a user services policy that does not allow the use of the unified contact
store. After that, you must then use the Invoke-CsUcsRollback cmdlet to "manually" migrate the contacts from the
unified contact store back to Skype for Business.
Skype for Business Server Control Panel: The functions carried out by the New-CsUserServicesPolicy cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsUserServicesPolicy -Identity "site:Redmond" -UcsAllowed $False

The command shown in Example 1 creates a new User Services policy for the Redmond site. Users managed by
this policy will not have their contacts moved to the Unified Contact Store; that's because the UcsAllowed
parameter has been set to False ($False).

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAwaySinceIndication
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be created. To create a policy at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To create a policy at the service scope, use syntax similar to this:


-Identity "UserServer:atl-cs-001.litwareinc.com"

Note that the User Server service is the only service that can host a user services policy.
Policies can also be created at the per-user scope. To create a per-user policy, use syntax similar to this:
-Identity "RedmondUserServicesPolicy"
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MigrationDelayInDays
Specifies the number of days the system will wait before beginning a migration to or from the unified contact store.
MigrationDelayInDays can be set to any value between 0 and 180, inclusive. The default value is 0.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new user services
policy is being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UcsAllowed
When set to True (the default value) users affected by the policy will automatically be migrated to the unified
contact store (assuming that they have an account on Exchange and that they log on using Skype for Business).
When set to False, users can be removed from the unified contact store, but only if they are "manually" removed by
the Invoke-CsUcsRollback cmdlet.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsUserServicesPolicy cmdlet does not accept pipelined input.

Outputs
The New-CsUserServicesPolicy cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.UserServices.UserServicesPolicy object.

Related Links
Get-CsUserServicesPolicy
Grant-CsUserServicesPolicy
Remove-CsUserServicesPolicy
Set-CsUserServicesPolicy
minutes to read • Edit Online

New-CsVideoInteropServerConfiguration
In ths Article

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.

Syntax
New-CsVideoInteropServerConfiguration [-Identity] <XdsIdentity> [-Confirm]
[-EnableEnhancedVideoExperience <Boolean>] [-Force] [-InMemory] [-WhatIf] [<CommonParameters>]

Description
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.
To enable the Video Interop Server (VIS ) you must use Topology Builder to define at least one VIS instance. Each
VIS instance will typically be associated with one or more Video Gateways. Video Gateways route traffic between
internal and external video devices such as an internal Skype for Business endpoint receiving video from an
external PBX supporting 3rd party video teleconferencing systems (VTCs). The Video Gateway and a VIS use a
Session Initiation Protocol (SIP ) trunk to connect video calls between external VTCs and internal endpoints.
The Video Interop Server can be managed by using VIS configuration settings and the
CsVideoInteropServerConfiguration cmdlets. These settings are used to enable or disable the enhanced video
experience (in which a single video stream is converted to multiple streams in order to accommodate the needs of
devices that use different frame rates or video resolutions).
By default, Skype for Business Server ships with a single, global collection of video interop configuration settings.
However, administrators can use the New-CsVideoInteropServerConfiguration cmdlet to create additional settings at
the site or the service scope (for the VIS service only.)

Examples
-------------------------- Example 1 --------------------------

New-CsVideoInteropServerConfiguration -Identity "site:Redmond" -EnableEnhancedVideoExperience $False

This example creates a new collection of VIS configuration settings that are assigned to the Redmond site. The
enhanced video experience is disabled by setting the EnableEnhancedVideoExperience parameter to False ($False).

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableEnhancedVideoExperience
When set to True ($True) the single video stream coming from a third party video teleconferencing system (VTC )
will be converted to multiple streams in order to meet the needs of devices using different video resolutions or
frame rates. The default value is True ($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the new collection of VIS configuration settings. New collections can be created at either the
site scope or the service scope (for the video interop service only). For example, this syntax creates a new collection
of settings assigned to the Redmond site:
-Identity "site:Redmond"

And this syntax creates a new collection assigned to the VIS for the pool atl-cs-001.litwareinc.com:
-Identity "service:VideoInteropServer:atl-edge-001.litwareinc.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsVideoInteropServerConfiguration cmdlet does not accept pipelined input.

Outputs
The New-CsVideoInteropServerConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServer.VideoInteropServerConfiguration object.

Related Links
Get-CsVideoInteropServerConfiguration
Remove-CsVideoInteropServerConfiguration
Set-CsVideoInteropServerConfiguration
minutes to read • Edit Online

New-
CsVideoInteropServerSyntheticTransactionConfiguration
In ths Article

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.

Syntax
New-CsVideoInteropServerSyntheticTransactionConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force]
[-InMemory] [-WatcherNodeFqdns <PSListModifier>] [-WhatIf] [<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

New-CsVideoInteropServerSyntheticTransactionConfiguration -Identity "site:Redmond" -WatcherNodeFqdns "atl-cs-


001.contoso.com", "atl-cs-002.contoso.com"

This example creates a new Video Interop Server synthetic transaction configuration with two watcher nodes and
scoped for the Redmond site.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter specifies the Video Interop Server synthetic transaction configuration to create. Video
Interop Server synthetic transaction configuration settings can be configured at the global, site, or service scope. To
refer to the global instance, use this syntax:
-Identity "Global"

Use this syntax to refer to a collection at the site scope:


-Identity "site:Redmond"

Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WatcherNodeFqdns
Specifies the FQDN of the watcher node relevant to the synthetic transaction. For example:
-WatcherNodeFqdns "atl-cs-001.contoso.com" . Watcher nodes are computers that periodically use System Center
Operations Manager and Skype for Business Server synthetic transactions to verify that Skype for Business Server
components are working as expected. For more information, see New-CsWatcherNodeConfiguration .

To enter multiple values and overwrite any existing entries, use the following syntax: \<value1\>,\<value2\>.... If
the values contain spaces or otherwise require quotation marks, you need to use the following syntax:
"\<value1\>","\<value2\>"....

To add or remove one or more values without affecting any existing entries, use the following syntax:
@{Add="\<value1\>","\<value2\>"...; Remove="\<value1\>","\<value2\>"...} .
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
Returns a VideoInteropServerSyntheticTransactionConfiguration object.

Related Links
Get-CsVideoInteropServerSyntheticTransactionConfiguration
Set-CsVideoInteropServerSyntheticTransactionConfiguration
Remove-CsVideoInteropServerSyntheticTransactionConfiguration
Test-CsP2PVideoInteropServerSipTrunkAV
minutes to read • Edit Online

New-CsVideoInteropServiceProvider
In ths Article

Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The
CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the
connection to the provider.

Syntax
New-CsVideoInteropServiceProvider [-Tenant <System.Guid>] [-AadApplicationIds <String>] -TenantKey <String>
[-InstructionUri <String>] [-AllowAppGuestJoinsAsAuthenticated <Boolean>]
[-Identity] <XdsGlobalRelativeIdentity> [-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsVideoInteropServiceProvider [-Tenant <System.Guid>] -Name <String> [-AadApplicationIds <String>]


-TenantKey <String> [-InstructionUri <String>] [-AllowAppGuestJoinsAsAuthenticated <Boolean>] [-InMemory]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The
CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the
connection to the provider.
Use the New -CsVideoInteropServiceProvider to specify information about a supported CVI partner your
organization would like to use.
Important note: New -CsVideoInteropServiceProvider does not do a check on the -Name to be one of the Identity
(without tag:) from the Get-CsTeamsVideoInteropServicePolicy, however if this is not set to match, the VTC
coordinates will not added to the meetings correctly. Make sure that your "Name" matches a valid policy. Make sure
that your "Name" matches a valid policy.

Examples
Example 1

PS C:\> New-CsVideoInteropServiceProvider

{{ Add example description here }}

Parameters
-AadApplicationIds
This is an optional parameter. A semicolon separated list of AAD AppIds of the CVI partner bots can be specified in
this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When
AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is
shown in the meeting as an authenticated tenant entity.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowAppGuestJoinsAsAuthenticated
This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When
AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots AAD
application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Bypass all non-fatal errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This is mandatory parameter and can have only one of the 6 values PolycomServiceProviderEnabled
PexipServiceProviderEnabled BlueJeansServiceProviderEnabled
PolycomServiceProviderDisabled PexipServiceProviderDisabled BlueJeansServiceProviderDisabled
Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Create a provider object in memory without committing it to the service.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InstructionUri
InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI
enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service.
The partner will provide you this information when you sign up for CVI service through any of our partners

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
This is mandatory parameter and can have only one of the 6 values PolycomServiceProviderEnabled
PexipServiceProviderEnabled BlueJeansServiceProviderEnabled
PolycomServiceProviderDisabled PexipServiceProviderDisabled BlueJeansServiceProviderDisabled

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantKey
Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to
dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign
up for CVI service through any of our partners.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

New-CsVideoTrunkConfiguration
In ths Article

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.

Syntax
New-CsVideoTrunkConfiguration [-Identity] <XdsIdentity> [-Confirm]
[-EnableMediaEncryptionForSipOverTls <Boolean>] [-EnableSessionTimer <Boolean>] [-Force]
[-ForwardErrorCorrectionType <String>] [-GatewaySendsRtcpForActiveCalls <Boolean>]
[-GatewaySendsRtcpForCallsOnHold <Boolean>] [-InMemory] [-WhatIf] [<CommonParameters>]

Description
The Video Interop Server in Skype for Business Server enables you to incorporate 3rd party video teleconferencing
systems (VTCs) into your Skype for Business Server infrastructure. The Video Interop Server is a Skype service that
runs on a standalone pool and cannot be co-located on an FE pool.
To enable the Video Interop Server, you must use Topology Builder to define at least one VIS instance. Each VIS
instance will typically be associated with one or more Video Gateways. Video Gateways route traffic between
internal and third party video devices such as an internal Skype endpoint receiving video from an third 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 third party VTCs and internal
endpoints.
Video Trunks settings can be managed by using the CsVideoTrunkConfiguration cmdlets. These settings are used
to manage the following Video Trunk characteristics.
RTCP for active calls
RTCP for calls on hold
Secure Real-time Transport Protocol (SRTP ) use when Transport Layer Security (TLS ) is used for the SIP signaling
Session timers usage on the Video Interop Server (VIS ) for dialogs associated with a Video Trunk
By default, Skype for Business Server ships with a single, global collection of Video Trunk configuration settings.
However, administrators can use the New-CsVideoTrunkConfiguration cmdlet to create additional settings at the site
or the service scope (for the Video Gateway service only).

Examples
-------------------------- Example 1 --------------------------

New-CsVideoTrunkConfiguration -Identity "site:Redmond" -EnableSessionTimer $True


This example creates a new collection of video trunk configuration settings that are assigned to the Redmond site.
Session timers are enabled on the new configuration by setting the EnableSessionTimer parameter to True ($True).

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMediaEncryptionForSipOverTls
When set to True ($True) it is expected that the Video Gateway or third party video teleconferencing system (VTC )
uses TLS to protect SIP signaling and uses SRTP to protect the media traffic. The default value is True ($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSessionTimer
Specifies whether the session timer is enabled. Session timers are used to determine whether a particular session is
still active. The default is false ($False).
Note that even if this parameter is set to False, session timers can be applicable if the remote connection has
session timer enabled. In such a case, the Video Interop Server will reply to session timer probes from the remote
entity.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ForwardErrorCorrectionType
Specifies the type of Forward Error Correction (FEC ) to be used between the Video Interop Server (VIS ) and a
Video Gateway. The valid settings are:
None: Turns off FEC between the VIS and the Video Gateway.
Cisco: Enables FEC compatible with Cisco Video Gateways, such as Cisco Unified Communications Manager
(CUCM ).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GatewaySendsRtcpForActiveCalls
When set to True ($True) it is expected that the Video Gateway or third party video teleconferencing system (VTC )
sends RTCP for calls that are enabled for media sending from the Video Gateway or VTC. The default value is True
($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GatewaySendsRtcpForCallsOnHold
When set to True ($True) it is expected that the Video Gateway or third party video teleconferencing system (VTC )
sends RTCP for calls that are disabled for media sending from the Video Gateway or VTC. The default value is False
($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter specifies the unique identifier for the new collection of video trunk configuration settings.
New collections can be created at either the site scope or the service scope (for the Video Gateway service only).
For example, this syntax creates a new collection of settings assigned to the Redmond site:
-Identity "site:Redmond" . And this syntax creates a new collection assigned to the Video Gateway "video-pbx-
001.litwareinc.com": -Identity "service:VideoGateway:video-pbx-001.litwareinc.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by passing that object reference to the Set-CsVideoTrunkConfiguration
cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsVideoTrunkConfiguration cmdlet does not accept pipelined input.

Outputs
The New-CsVideoTrunkConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.VideoTrunkConfiguration object.

Related Links
Get-CsVideoTrunkConfiguration
Set-CsVideoTrunkConfiguration
Remove-CsVideoTrunkConfiguration
minutes to read • Edit Online

New-CsVoicemailReroutingConfiguration
In ths Article

Creates settings that, when enabled, provide phone numbers that Skype for Business Server routes to over public
switched telephone network (PSTN ) if IP connectivity from Skype for Business Server in the branch site to the
Exchange Server located in the data center is not available. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsVoicemailReroutingConfiguration [-Identity] <XdsIdentity> [-AutoAttendantNumber <String>]
[-Enabled <Boolean>] [-SubscriberAccessNumber <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
This cmdlet allows you to create settings that are applied at either the global or site level that determine where
Auto-Attendant and Subscriber Access calls are rerouted to over PSTN when IP connectivity is lost.
Auto-Attendant and Subscriber Access are features of Exchange. The Auto-Attendant feature provides voice
recognition and touch-tone control (dual-tone multifrequency, or DTMF ) for outside callers to navigate a company's
phone system to reach the department or employee that they want or, in Message Taking Mode, to accept
messages for users. (Voice rerouting for Message Taking Mode is recommended.) Subscriber Access allows internal
users to access their Microsoft Outlook mailbox from a phone. The numbers provided by these settings allow
callers to leave voice mail messages for Enterprise Voice users (the AutoAttendantNumber setting) and for those
users to retrieve voice mail even if the IP connectivity from the Skype for Business Server deployment at a remote
site to Exchange in the data center is unavailable (the SubscriberAccessNumber setting).
Note that these settings are not available unless the Enabled property has been set to True.

Examples
-------------------------- Example 1 --------------------------

New-CsVoicemailReroutingConfiguration -Identity site:Redmond1 -Enabled $True -AutoAttendantNumber


"+14255551212"

This example creates new voice mail rerouting settings that apply to the site Redmond1. The Enabled parameter is
set to True to turn on this configuration and a phone number (+14255551212) is supplied to specify the Auto-
Attendant to which calls will be rerouted.
-------------------------- Example 2 --------------------------

New-CsVoicemailReroutingConfiguration -Identity site:Redmond1 -SubscriberAccessNumber "+14255551213"

This example creates new voice mail rerouting settings that apply to the site Redmond1. A phone number
(+14255551213) is supplied to specify the Subscriber Access number to which calls will be rerouted. Notice that
the Enabled parameter has not been set. Enabled is set to False by default, so Subscriber Access calls will not be
rerouted to this number until the Enabled property is set to True.

Parameters
-AutoAttendantNumber
Phone number of the Auto-Attendant to which the voice mail deposit attempts should be re-routed.
The number supplied to this parameter must be a LineUri of an existing contact object.
Value must be a number beginning with a digit 1 through 9, optionally preceded by a plus (+), followed by any
number of digits.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether attempts to access voice mail should be re-routed through PSTN when IP connectivity is down.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter contains a unique identifier specifying the scope at which this configuration is applied. New voice
mail rerouting configurations can be created only at the site level, so the Identity would be in the format Site:<site
name>, where <site name> is the name of the site to which the settings are applied. A global voice mail rerouting
configuration exists by default and cannot be re-created by calling the New-CsVoicemailReroutingConfiguration
cmdlet.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SubscriberAccessNumber
Subscriber Access number to which the voice mail retrieval attempts should be re-routed.
The number supplied to this parameter must be a LineUri of an existing contact object.
Value must be a number beginning with a digit 1 through 9, optionally preceded by a plus (+), followed by any
number of digits.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.
Outputs
Creates an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.ExumRouting.VoicemailReroutingConfiguration.

Related Links
Remove-CsVoicemailReroutingConfiguration
Set-CsVoicemailReroutingConfiguration
Get-CsVoicemailReroutingConfiguration
minutes to read • Edit Online

New-CsVoiceNormalizationRule
In ths Article

Creates a new voice normalization rule. Voice normalization rules are used to convert a telephone dialing
requirement (for example, dialing 9 to access an outside line) to the E.164 phone number format used by Skype for
Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsVoiceNormalizationRule [-Tenant <Guid>] [-Description <String>] [-Pattern <String>]
[-Translation <String>] [-IsInternalExtension <Boolean>] [-Priority <Int32>] [-Identity] <XdsIdentity>
[-InMemory] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

New-CsVoiceNormalizationRule [-Tenant <Guid>] -Parent <String> -Name <String> [-Description <String>]


[-Pattern <String>] [-Translation <String>] [-IsInternalExtension <Boolean>] [-Priority <Int32>] [-InMemory]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet creates a named voice normalization rule. These rules are a required part of phone authorization and
call routing. They define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. An understanding of regular expressions is helpful in order to
define number patterns that will be translated.
Rules that are created by using this cmdlet are part of the dial plan and in addition to being accessible through the
Get-CsVoiceNormalizationRule cmdlet, can also be accessed through the NormalizationRules property returned by a
call to the Get-CsDialPlan cmdlet. You cannot create a normalization rule unless a dial plan with an Identity
matching the scope specified in the normalization rule Identity already exists. For example, you can't create a
normalization rule with the Identity site:Redmond/RedmondNormalizationRule unless a dial plan for site:Redmond
already exists.

Examples
-------------------------- Example 1 --------------------------

New-CsVoiceNormalizationRule -Identity "site:Redmond/Prefix Redmond"

This example creates a new voice normalization rule for site Redmond named Prefix Redmond. Because no other
parameters are specified, the rule is created with the default values. Notice that the value passed to the Identity
parameter is in double quotes; this is because the name of the rule (Prefix Redmond) contains a space. If the rule
name does not contain a space you don't need to enclose the Identity in double quotes.
Keep in mind that a dial plan for the Redmond site must exist for this command to succeed. You can create a new
dial plan by calling the New-CsDialPlan cmdlet.
-------------------------- Example 2 --------------------------

New-CsVoiceNormalizationRule -Parent SeattleUser -Name SeattleFourDigit -Description "Dialing with internal


four-digit extension" -Pattern '^(\d{4})$' -Translation '+1206555$1'

This example creates a new voice normalization rule named SeattleFourDigit that applies to the per-user dial plan
with the Identity SeattleUser. (Note: Rather than specifying a Parent and a Name, we could have instead created
this same rule by specifying -Identity SeattleUser/SeattleFourDigit.) We've included a Description explaining that
this rule is for translating numbers dialed internally with only a 4-digit extension. In addition, Pattern and
Translation values have been specified. These values translate a four-digit number (specified by the regular
expression in the Pattern) to the same four-digit number, but prefixed by the Translation value (+1206555). For
example, if the extension 1234 was entered, this rule would translate that extension to the number +12065551234.
Note the single quotes around the Pattern and Translation values. Single quotes are required for these values;
double quotes (or no quotes) will not work in this instance.
As in Example 1, a dial plan with the given scope must exist. In this case, that means a dial plan with the Identity
SeattleUser must already exist.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A friendly description of the normalization rule.
Maximum string length: 512 characters.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
A unique identifier for the rule. The Identity specified must include the scope followed by a slash and then the
name; for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name. The name
portion will automatically be stored in the Name property. You cannot specify values for Identity and Name in the
same command.
Voice normalization rules can be created at the following scopes: global, site, service (Registrar and PSTNGateway
only) and per user. A dial plan with an Identity matching the scope of the normalization rule must already exist
before a new rule can be created. (To retrieve a list of dial plans, call the Get-CsDialPlan cmdlet.)

The Identity parameter is required unless the Parent parameter is specified. You cannot include the Identity
parameter and the Parent parameter in the same command.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsInternalExtension
If True, the result of applying this rule will be a number internal to the organization. If False, applying the rule
results in an external number. This value is ignored if the value of the OptimizeDeviceDialing property of the
associated dial plan is set to False.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The name of the rule. This parameter is required if a value has been specified for the Parent parameter. If no value
has been specified for the Parent parameter, Name defaults to the name specified in the Identity parameter. For
example, if a rule is created with the Identity site:Redmond/RedmondRule, the Name will default to RedmondRule.
The Name parameter and the Identity parameter cannot be used in the same command.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Parent
The scope at which the new normalization rule will be created. This value must be global; site:<sitename>, where
<sitename> is the name of the Skype for Business Server site; PSTN gateway or Registrar service, such as
PSTNGateway:redmond.litwareinc.com; or a string designating a per user rule. A dial plan with the specified scope
must already exist or the command will fail.
The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity
parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name
parameter is also required.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pattern
A regular expression that the dialed number must match in order for this rule to be applied.
Default: ^(\d{11})$ (The default represents any set of numbers up to 11 digits.)

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
The order in which rules are applied. A phone number might match more than one rule. This parameter sets the
order in which the rules are tested against the number.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Translation
The regular expression pattern that will be applied to the number to convert it to E.164 format.
Default: +$1 (The default prefixes the number with a plus sign [+].)

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule.

Related Links
Remove-CsVoiceNormalizationRule
Set-CsVoiceNormalizationRule
Get-CsVoiceNormalizationRule
Test-CsVoiceNormalizationRule
New -CsDialPlan
Get-CsDialPlan
minutes to read • Edit Online

New-CsVoicePolicy
In ths Article

Creates a new voice policy. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsVoicePolicy [-Identity] <XdsIdentity> [-AllowCallForwarding <Boolean>] [-AllowPSTNReRouting <Boolean>]
[-AllowSimulRing <Boolean>] [-Description <String>] [-EnableBWPolicyOverride <Boolean>]
[-EnableCallPark <Boolean>] [-EnableCallTransfer <Boolean>] [-EnableDelegation <Boolean>]
[-EnableMaliciousCallTracing <Boolean>] [-EnableTeamCall <Boolean>] [-Name <String>]
[-PreventPSTNTollBypass <Boolean>] [-PstnUsages <PSListModifier>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-CallForwardingSimulRingUsageType <CallForwardingSimulRingUsageType>]
[-CustomCallForwardingSimulRingUsages <PSListModifier>] [-EnableVoicemailEscapeTimer <Boolean>]
[-PSTNVoicemailEscapeTimer <Int64>] [-Tenant <Guid>] [-VoiceDeploymentMode <VoiceDeploymentMode>]
[-EnableBusyOptions <Boolean>] [<CommonParameters>]

Description
This cmdlet creates a new voice policy. Voice policies are used to manage such Enterprise Voice-related features as
simultaneous ringing (the ability to have a second phone ring each time someone calls your office phone) and call
forwarding. The policy created by this cmdlet determines whether many of these features are enabled or disabled.

Examples
-------------------------- Example 1 --------------------------

New-CsVoicePolicy -Identity UserVoicePolicy1

This example creates a new per-user voice policy (with default settings) that has an Identity of UserVoicePolicy1.
-------------------------- Example 2 --------------------------

New-CsVoicePolicy UserVoicePolicy2 -AllowSimulRing $false -PstnUsages @{add = "Local"}

This example creates a new per-user voice policy with an Identity of UserVoicePolicy2 and sets the AllowSimulRing
property to False, meaning that any users to which this policy is assigned are not enabled for simultaneous ring, a
feature that determines whether a second phone (such as a mobile phone) can be set to ring every time the user's
office phone rings. This command also adds "Local" to the list of PSTN usages, which associates this voice policy
with a voice route that also uses the Local PSTN usage. (Note that the Identity parameter is not explicitly specified.
The Identity parameter is a positional parameter and therefore if you put the identity value first in the list of
parameters you don't need to explicitly state that it's the Identity.)
-------------------------- Example 3 --------------------------
$a = Get-CsPstnUsage

New-CsVoicePolicy site:Redmond -PstnUsages @{add = $a.Usage}

This example creates a new voice policy for site Redmond and applies all the PSTN usages defined for the
organization to this policy. The first line in this example calls the Get-CsPstnUsage cmdlet to retrieve the global set
of PSTN usages for the organization and save it in the variable $a. The second line calls the New-CsVoicePolicy
cmdlet to create the new voice policy for site Redmond. A value is passed to the PstnUsages parameter to add the
list contained in the global set of PSTN usages to this policy. Note the syntax of the add value: $a.Usage. This refers
to the Usage property of the PSTN usage settings, which contains the list of PSTN usages.

Parameters
-AllowCallForwarding
If this parameter is set to True, calls can be forwarded. If this parameter is set to False, calls cannot be forwarded.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowPSTNReRouting
When this parameter is set to True, calls made to internal numbers homed on another pool will be routed through
the public switched telephone network (PSTN ) when the pool or WAN is unavailable.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowSimulRing
Simultaneous ring is a feature that allows multiple phones to ring when a single number is dialed. Setting this
parameter to True enables this feature. If this parameter is set to False, simultaneous ring cannot be configured for
any user to which this policy is assigned.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallForwardingSimulRingUsageType
Provides a way for administrators to manage call forwarding and simultaneous ringing. Allowed values are:
VoicePolicyUsage - The default voice policy usage is used to manage call forwarding and simultaneous ringing on
all calls. This is the default value.
InternalOnly - Call forwarding and simultaneous ringing are limited to calls made from one Lync user to another.
CustomUsage. A custom PSTN usage will be used to manage call forwarding and simultaneous ringing. This usage
must be specified using the CustomCallForwardingSimulRingUsages parameter.

Type: CallForwardingSimulRingUsageType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomCallForwardingSimulRingUsages
Custom PSTN usage used to manage call forwarding and simultaneous ringing. To add a custom usage to voice
policy use syntax similar to this:
-CustomCallForwardingSimulRingUsages @{Add="RedmondPstnUsage"}

To remove a custom usage, use this syntax:


-CustomCallForwardingSimulRingUsages @{Remove="RedmondPstnUsage"}

Note that the usage must exist before it can be used with the CustomCallForwardingSimulRingUsages parameter.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of the voice policy.
Maximum length: 1040 characters.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableBusyOptions
{{Fill EnableBusyOptions Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableBWPolicyOverride
Policies can be set to manage network configuration, including limiting bandwidth. Setting this parameter to True
will allow override of these policies. In other words, if this parameter is set to True, no bandwidth checks will be
made and calls will go through regardless of the call admission control (CAC ) settings.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCallPark
The Call Park application allows a call to be held, or parked, at a certain number within a range of numbers for later
retrieval. Setting this parameter to True enables the application. If this parameter is set to False, users assigned to
this policy cannot park calls that have been dialed to their phone number.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCallTransfer
Determines whether calls can be transferred to another number. If this parameter is set to True, calls can be
transferred; if the parameter is set to False, calls cannot be transferred.
Default: True
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDelegation
Call delegation allows a user to answer calls for another user or make calls on the other user's behalf. For example,
a manager can set up call delegation so that all incoming calls ring both the manager's phone and the phone of an
administrator. Setting this parameter to True allows users with this policy to set up call delegation. Setting this
parameter to False disables call delegation.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMaliciousCallTracing
Malicious call tracing is a standard that is in place to trace calls that a user designates as malicious. These calls can
be traced even if caller ID is blocked. The trace is available only to the proper authorities, not the user. Setting this
property to True enables the ability to set a trace on malicious calls.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableTeamCall
Team Call allows a user to designate a group of other users whose phones will ring when that user's number is
called. This feature is useful in teams where, for example, anyone from a team can answer incoming calls from
customers. Setting this parameter to True enables this feature.
Default: True

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableVoicemailEscapeTimer
When set to True, calls to an unanswered mobile device will be routed to the organization voicemail instead of the
mobile device provider's voicemail. If a call is answered "too soon" (that is, before the value configured for the
PSTNVoicemailEscapeTimer property has elapsed) it will be assumed that the mobile device is not available and
the call will be routed to the organization voicemail.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier specifying the scope or the name of the policy. Valid values for this cmdlet are site:<site name>
(where <site name> is the name of the Skype for Business Server site to which this policy applies, such as
site:Redmond) and a string designating a per-user policy, such as RedmondVoicePolicy. A global policy exists by
default.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
A displayable name describing this policy.
Default: DefaultPolicy
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PreventPSTNTollBypass
PSTN tolls are more commonly known as long-distance charges. Organizations can sometimes bypass these tolls
by implementing a Voice over Internet Protocol (VoIP ) solution that enables branch offices to connect by using
network calls. Setting this parameter to True will send calls through the PSTN and incur charges rather than going
through the network and bypassing the tolls.
Default: False

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PstnUsages
A list of PSTN usages available to this policy. The PSTN usage ties a voice policy to a phone route.
Any string value can be placed into this list, as long as the value exists in the current global list of PSTN usages.
(Duplicate strings are not allowed; all strings must be unique.) The list of PSTN usages can be retrieved by calling
the Get-CsPstnUsage cmdlet.

By default this list is empty. If you don't supply a value for this parameter, you'll receive a warning message stating
that users granted this policy will not be able to make outbound PSTN calls.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PSTNVoicemailEscapeTimer
Amount of time (in milliseconds) used to determine whether or not a call has been answered "too soon". If a
response is received within this time interval Skype for Business Server will assume that the mobile device is not
available and automatically switch the call to the organization's voicemail. If no response is received before the time
interval is reached then the call will be allowed to proceed. The default value is 1500 milliseconds.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which the new voice policy is
being created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VoiceDeploymentMode
Allowed values are:
OnPrem
Online
OnlineBasic
OnPremOnlineHybrid
The default value is OnPrem.

Type: VoiceDeploymentMode
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an instance of the Microsoft.Rtc.Management.WritableConfig.Voice.VoicePolicy object.

Related Links
Remove-CsVoicePolicy
Set-CsVoicePolicy
Get-CsVoicePolicy
Grant-CsVoicePolicy
Test-CsVoicePolicy
Get-CsPstnUsage
minutes to read • Edit Online

New-CsVoiceRegex
In ths Article

Creates a regular expression pattern and translation for translating phone numbers to different formats. This
cmdlet was introduced in Lync Server 2010.

Syntax
New-CsVoiceRegex [-StartsWith <String>] -ExactLength <Int32> [-DigitsToStrip <Int32>]
[-DigitsToPrepend <String>] [<CommonParameters>]

New-CsVoiceRegex [-StartsWith <String>] -AtLeastLength <Int32> [-DigitsToStrip <Int32>]


[-DigitsToPrepend <String>] [<CommonParameters>]

Description
Regular expressions are used to match character patterns. Skype for Business Server uses regular expressions for
converting phone numbers to and from various formats, including dialed numbers, E.164, and local private branch
exchange (PBX) and public switched telephone network (PSTN ) formats. Until you learn the syntax and format
rules of working with regular expressions, defining these conversion rules can be confusing. The New-CsVoiceRegex
cmdlet provides parameters that allow you to specify certain criteria and then generates the regular expression for
you.
Use this cmdlet to help you generate regular expressions to be used as Pattern and Translation values for
normalization rules (the New-CsVoiceNormalizationRule cmdlet) and outbound translation rules (the
New-CsOutboundTranslationRule cmdlet) and NumberPattern values for voice routes (the New-CsVoiceRoute cmdlet).

Examples
-------------------------- Example 1 --------------------------

$regex = New-CsVoiceRegex -ExactLength 7 -DigitsToStrip 3

This example creates a new regular expression pattern and translation. This expression includes a pattern that must
be exactly 7 characters (-ExactLength 7) and will remove the first three digits of the matching number (-
DigitsToStrip 3). The Pattern created by this regular expression will be ^\d{3}(\d{4})$ while the Translation will be
$1. For example, the number 5551212 would match this pattern and the resulting translation would be 1212: the 7-
digit number with the first 3 digits stripped.
-------------------------- Example 2 --------------------------

$regex = New-CsVoiceRegex -AtLeastLength 7 -StartsWith "1"

New-CsVoiceNormalizationRule "global/internal rule" -Pattern $regex.Pattern -Translation $regex.Translation


This example also creates a new regular expression pattern and translation, but follows by using these values to
create a new voice normalization rule. In the first line we call the New-CsVoiceRegEx cmdlet to create a regular
expression where the matching number must be at least 7 characters (-AtLeastLength 7) and must begin with a 1 (-
StartsWith "1"). The results of this command are assigned to the variable $regex.
In the second line we call the New-CsVoiceNormalizationRule cmdlet. We give the new rule a unique name, in this
case global/internal rule. We then assign as the Pattern to the normalization rule the Pattern we created with our
call to the New-CsVoiceRegex cmdlet: -Pattern $regex.Pattern . We do the same thing with the Translation, assigning
the Translation created by the New-CsVoiceRegex cmdlet call: -Translation $regex.Translation .
Note: The Pattern created in this example is ^(1\d{5}\d+)$. This can be deciphered as a number beginning with 1
(1) followed by five digits (\d{5}) followed by any number of digits (\d+). This adds up to a number of at least 7
digits (1 plus 5 plus 1 or more) that starts with 1, exactly what we asked for.

Parameters
-AtLeastLength
The minimum length required for the string (phone number) to match the expression. For example, if you're
defining a normalization rule that affects only numbers that must be at least 7 digits (or characters) in length,
specify a value of 7 for this parameter.
You must enter a value for this parameter or for the ExactLength parameter. You cannot enter values for both.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DigitsToPrepend
A string specifying the characters or numbers to add to the beginning of the phone number. The value entered for
this parameter will impact the Translation value, prepending characters to the number matching the regular
expression Pattern. For example, if the number matching the pattern is 5551212 and the DigitsToPrepend value is
425, the translated number will be 4255551212 (assuming no other translations have been applied).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DigitsToStrip
The number of characters to strip from the beginning of the string (phone number). For example, if the number
2065551212 is entered and the DigitsToStrip is 3, the number will be translated to 5551212

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ExactLength
The length the string (phone number) must be to match the regular expression. For example, if you want a
normalization rule to affect only 10-digit numbers, specify a value of 10 for this parameter.
You must enter a value for this parameter or for the AtLeastLength parameter. You cannot enter values for both.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartsWith
The first character of the string (phone number). The string will not match the regular expression unless it begins
with the string specified in the StartsWith parameter. For example, if a value of "+1" is specified for StartsWith, only
numbers that begin with +1 will match this pattern and be translated. Note that the number of characters in the
StartsWith string will be included in the ExactLength and AtLeastLength totals. For example, if you've specified an
ExactLength of 10 and a StartsWith string of +1, a matching phone number would be 8 characters long, preceded
by +1, for a total of 10 digits.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates on object of type Microsoft.Rtc.Management.Voice.OcsVoiceRegex.

Related Links
New -CsVoiceNormalizationRule
New -CsOutboundTranslationRule
New -CsVoiceRoute
minutes to read • Edit Online

New-CsVoiceRoute
In ths Article

Creates a new voice route. Voice routes contain instructions that tell Skype for Business Server how to route calls
from Enterprise Voice users to phone numbers on the public switched telephone network (PSTN ) or a private
branch exchange (PBX). This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsVoiceRoute [-Identity] <XdsGlobalRelativeIdentity> [-AlternateCallerId <String>] [-Description <String>]
[-NumberPattern <String>] [-Priority <Int32>] [-PstnGatewayList <PSListModifier>]
[-PstnUsages <PSListModifier>] [-SuppressCallerId <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[<CommonParameters>]

New-CsVoiceRoute -Name <String> [-AlternateCallerId <String>] [-Description <String>] [-NumberPattern <String>]


[-Priority <Int32>] [-PstnGatewayList <PSListModifier>] [-PstnUsages <PSListModifier>]
[-SuppressCallerId <Boolean>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Use this cmdlet to create a new voice route. All voice routes are created at the Global scope. However, multiple
global voice routes can be defined. This is accomplished through the Identity parameter, which requires a unique
route name.
Voice routes are associated with voice policies through PSTN usages. A voice route includes a regular expression
that identifies which phone numbers will be routed through a given voice route: phone numbers matching the
regular expression will be routed through this route.

Examples
-------------------------- Example 1 --------------------------

New-CsVoiceRoute -Identity Route1

The command in this example creates a new voice route with an Identity of Route1. All other properties will be set
to the default values.
-------------------------- Example 2 --------------------------

New-CsVoiceRoute -Identity Route1 -PstnUsages @{add="Long Distance"} -PstnGatewayList


@{add="PstnGateway:redmondpool.litwareinc.com"}

The command in this example creates a new voice route with an Identity of Route1. It also adds the PSTN usage
Long Distance to the list of usages and the service ID PstnGateway:redmondpool.litwareinc.com to the list of PSTN
gateways.
-------------------------- Example 3 --------------------------

$x = (Get-CsPstnUsage).Usage

New-CsVoiceRoute -Identity Route1 -PstnUsages @{add=$x}

This example creates a new voice route named Route1 and populates that route's list of PSTN usages with all the
existing usages for the organization. The first command in this example retrieves the list of global PSTN usages.
Notice that the call to the Get-CsPstnUsage cmdlet is in parentheses; this means that we first retrieve an object
containing PSTN usage information. (Because there is only one, global, PSTN usage, only one object will be
retrieved.) The command then retrieves the Usage property of this object. That property, which contains a list of
usages, is assigned to the variable $x. In the second line of this example, the New-CsVoiceRoute cmdlet is called to
create a new voice route. This voice route will have an identity of Route1. Notice the value passed to the
PstnUsages parameter: @{add=$x}. This value says to add the contents of $x, which contain the phone usages list
retrieved in line 1, to the list of PSTN usages for this route.

Parameters
-AlternateCallerId
If the SuppressCallerId parameter is set to True, the value of the AlternateCallerId parameter will be displayed to
receiving parties rather than the caller's actual number. This number should be a valid number and could be used to
represent a division within an organization, such as Support or Human Resources.
If the SuppressCallerId parameter is set to False, the AlternateCallerId parameter is ignored.
This value must match the regular expression (+)?[1-9]\d(;ext=[1 -9 ]\d)?. In other words, the value can begin with a
plus sign (+) but doesn't need to; must consist of any number of digits and may be followed by an extension that
begins with ;ext= followed by any number of digits. (Note that if you include an extension the string must be placed
within double quotes.)

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of what this voice route is for.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A name that uniquely identifies the voice route. Voice routes can be defined only at the global scope, so the identity
is simply the name you want to give the route. (You can have spaces in the route name, for instance Test Route, but
you must enclose the full string in double quotes in the call to the New-CsVoiceRoute cmdlet.)
If Identity is specified, the Name must be left blank. The value of the Identity will be assigned to the Name.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
The unique name of the voice route. If this parameter is set, the value will be automatically applied to the voice
route Identity. You cannot specify both an Identity and a Name.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberPattern
A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern
will be routed according to the rest of the routing settings.
Default: [0-9]{10}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
A number could resolve to multiple voice routes. The priority determines the order in which the routes will be
applied if more than one route is possible.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PstnGatewayList
In Skype for Business Server a Mediation Server can be associated with multiple gateways. This parameter
contains a list of gateways associated with this voice route. Each member of this list must be the service Identity of
the PSTN gateway or Mediation Server. The value can refer to a Mediation Server only if the Mediation Server is
configured for Microsoft Office Communications Server 2007 or Microsoft Office Communications Server 2007
R2. For Skype for Business Server, a PSTN gateway must be used. The service Identity is a string in the format
<ServiceRole>:<FQDN>, where ServiceRole is the name of the service role (PSTNGateway) and FQDN is the fully
qualified domain name (FQDN ) of the pool or the IP address of the server. For example,
PSTNGateway:redmondpool.litwareinc.com. Service identities can be retrieved by calling the command
Get-CsService | Select-Object Identity .

By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll
receive a warning message.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PstnUsages
A list of PSTN usages (such as Local, Long Distance, etc.) that can be applied to this voice route. The PSTN usage
must be an existing usage. (PSTN usages can be retrieved by calling the Get-CsPstnUsage cmdlet.)

By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll
receive a warning message.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SuppressCallerId
Determines whether a caller's ID will be revealed on outbound calls. If this parameter is set to True, caller ID will be
suppressed. In place of the actual ID, the value of the AlternateCallerId will be displayed. When SuppressCallerId is
set to True, a value for AlternateCallerId must be supplied.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Creates an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route.

Related Links
Remove-CsVoiceRoute
Set-CsVoiceRoute
Get-CsVoiceRoute
Test-CsVoiceRoute
Get-CsPstnUsage
Get-CsService
minutes to read • Edit Online

New-CsVoiceRoutingPolicy
In ths Article

Creates a new voice routing policy. Voice routing policies manage PSTN usages for users of hybrid voice. Hybrid
voice enables users homed on Skype for Business Online to take advantage of the Enterprise Voice capabilities
available in an on-premises installation of Skype for Business Server. This cmdlet was introduced in Lync Server
2013.

Syntax
New-CsVoiceRoutingPolicy [-Identity] <XdsIdentity> [-Confirm] [-Description <String>] [-Force] [-InMemory]
[-Name <String>] [-PstnUsages <PSListModifier>] [-WhatIf] [<CommonParameters>]

Description
Voice routing policies are used in "hybrid" scenarios: when some of your users are homed on the on-premises
version of Skype for Business Server and other users are homed on Skype for Business Online. Assigning your
Skype for Business Online users a voice routing policy enables those users to receive and to place phones calls to
the public switched telephone network by using your on-premises SIP trunks.
Note that simply assigning a user a voice routing policy will not enable them to make PSTN calls via Skype for
Business Online. Among other things, you will also need to enable those users for Enterprise Voice and will need to
assign them an appropriate voice policy and dial plan.
Skype for Business Server Control Panel: The functions carried out by the New-CsVoiceRoutingPolicy cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

New-CsVoiceRoutingPolicy -Identity "RedmondVoiceRoutingPolicy" -Name "RedmondVoiceRoutingPolicy" -PstnUsages


"Long Distance"

The command shown in Example 1 creates a new per-user voice routing policy with the Identity
RedmondVoiceRoutingPolicy. This policy is assigned a single PSTN usage: Long Distance.
-------------------------- Example 2 --------------------------

New-CsVoiceRoutingPolicy -Identity "RedmondVoiceRoutingPolicy" -Name "RedmondVoiceRoutingPolicy" -PstnUsages


"Long Distance", "Local", "Internal"

Example 2 is a variation of the command shown in Example 1; in this case, however, the new policy is assigned
three PSTN usages: Long Distance; Local; Internal. Multiple usages can be assigned simply by separating each
usage using a comma.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text to accompany a voice routing policy. For example, the
Description might include information about the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier to be assigned to the new voice routing policy. Because you can only create new policies at the
per-user scope, the Identity will always be the "name" being assigned to the policy. For example:
-Identity "RedmondVoiceRoutingPolicy"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
A friendly name describing this policy.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PstnUsages
A list of PSTN usages (such as Local or Long Distance) that can be applied to this voice routing policy. The PSTN
usage must be an existing usage. (PSTN usages can be retrieved by calling the Get-CsPstnUsage cmdlet.)

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsVoiceRoutingPolicy cmdlet does not accept pipelined input.

Outputs
The New-CsVoiceRoutingPolicy cmdlet creates new instances of
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceRoutingPolicy object.

Related Links
Get-CsVoiceRoutingPolicy
Grant-CsVoiceRoutingPolicy
Remove-CsVoiceRoutingPolicy
Set-CsVoiceRoutingPolicy
minutes to read • Edit Online

New-CsVoiceTestConfiguration
In ths Article

Creates a test scenario you can use to test phone numbers against specified routes and rules. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsVoiceTestConfiguration [-Identity] <XdsGlobalRelativeIdentity> [-DialedNumber <String>]
[-ExpectedRoute <String>] [-ExpectedTranslatedNumber <String>] [-ExpectedUsage <String>]
[-TargetVoicePolicy <String>] [-Force] [-InMemory] [-WhatIf] [-Confirm] [-TargetDialplan <String>]
[<CommonParameters>]

New-CsVoiceTestConfiguration -Name <String> [-DialedNumber <String>] [-ExpectedRoute <String>]


[-ExpectedTranslatedNumber <String>] [-ExpectedUsage <String>] [-TargetVoicePolicy <String>] [-Force]
[-InMemory] [-WhatIf] [-Confirm] [-TargetDialplan <String>] [<CommonParameters>]

Description
Before implementing voice routes and voice policies, it's a good idea to test them out on various phone numbers to
ensure the results are what you're expecting. You can do this testing by creating test scenarios with this cmdlet.
The New-CsVoiceTestConfiguration cmdlet defines the voice route, usage, dial plan and voice policy against which to
test a specified phone number. All of this information can be defined and retrieved using other cmdlets; see the
parameter descriptions for this topic for more information.
The configurations created with this cmdlet are tested using the Test-CsVoiceTestConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

New-CsVoiceTestConfiguration -Identity TestConfig1

This example creates a new voice test configuration with default values that has the Identity TestConfig1.
-------------------------- Example 2 --------------------------

New-CsVoiceTestConfiguration TestConfig1 -TargetDialplan site:Redmond1

This example creates a new voice test configuration named TestConfig1 and sets the TargetDialplan parameter to
site:Redmond1. This will result in the tests for expected number, usage and route to be run against the settings for
the dial plan for the site Redmond1.
In this example we declared TestConfig1 without specifying the Identity parameter. Identity is a positional
parameter, so the first value in the command following the cmdlet name is recognized by the cmdlet as the Identity.
-------------------------- Example 3 --------------------------

New-CsVoiceTestConfiguration -Identity TestConfig1 -DialedNumber 5551212 -ExpectedTranslatedNumber +5551212

This example creates a new voice test configuration named TestConfig1. This configuration will use the default
values to test the DialedNumber 5551212 against an expected output (ExpectedTranslatedNumber) of +5551212.
This expectation is based on the normalization rules associated with the dial plan that will be used when a test is
run against this object. That test must be run using the Test-CsVoiceTestConfiguration cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DialedNumber
The phone number you want to use to test the policies, usages, etc.
Must be 512 characters or fewer.
Default: 1234

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExpectedRoute
The name of the voice route expected to be used during the configuration test. If a different route is used, based on
the target dial plan and voice policy, the test will fail. You can retrieve available voice routes by calling the
Get-CsVoiceRoute cmdlet.

Must be 256 characters or fewer.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExpectedTranslatedNumber
The phone number in the format you expect to see it after translation. This is the value of the DialedNumber
parameter after normalization. If you run the Test-CsVoiceTestConfiguration cmdlet and the DialedNumber does
not result in the value in ExpectedTranslatedNumber, the test will report as Fail.
Must be 512 characters or fewer.
Default: +1234

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExpectedUsage
The name of the PSTN usage expected to be used during the configuration test. If a different PSTN usage is used,
based on the target dial plan and voice policy, the test will fail. You can retrieve available usages by calling the
Get-CsPstnUsage cmdlet.

Must be 256 characters or fewer.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string uniquely identifying this test scenario.
This string can be up to 32 characters in length and may contain any alphanumeric characters plus the backslash (\),
period (.) or underscore (_).
The value of this parameter does not include scope because this object can be created only at the global scope.
Therefore only a unique name is required.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
This parameter contains the same value as the Identity. If the Identity parameter is specified, you cannot include the
Name parameter in your command. Likewise, if the Name parameter is specified, you cannot specify an Identity.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetDialplan
The Identity of the dial plan to be used for this test. Dial plans can be retrieved by called the Get-CsDialPlan cmdlet.
Must be 40 characters or fewer.
Default: Global

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetVoicePolicy
The Identity of the voice policy against which to run this test. Voice policies can be retrieved by calling the
Get-CsVoicePolicy cmdlet.

Must be 40 characters or fewer.


Default: Global

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet creates an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration

Related Links
Remove-CsVoiceTestConfiguration
Set-CsVoiceTestConfiguration
Get-CsVoiceTestConfiguration
Test-CsVoiceTestConfiguration
Get-CsVoiceRoute
Get-CsPstnUsage
Get-CsDialPlan
Get-CsVoicePolicy
minutes to read • Edit Online

New-CsWatcherNodeConfiguration
In ths Article

Assigns a new collection of watcher node configuration settings to a pool. Watcher nodes are computers that
periodically use Microsoft System Center Operations Manager and Skype for Business Server synthetic
transactions to verify that Skype for Business Server components are working as expected. This cmdlet was
introduced in Lync Server 2013.

Syntax
New-CsWatcherNodeConfiguration [-Identity] <XdsGlobalRelativeIdentity> -PortNumber <UInt16> [-Confirm]
[-Enabled <Boolean>] [-ExtendedTests <PSListModifier>] [-Force] [-InMemory] [-Tests <PSListModifier>]
[-TestUsers <PSListModifier>] [-UseInternalWebUrls <Boolean>] [-WhatIf]
[-XmppTestReceiverMailAddress <String>] [-UseAutoDiscovery <Boolean>] [<CommonParameters>]

New-CsWatcherNodeConfiguration -PortNumber <UInt16> -TargetFqdn <String> [-Confirm] [-Enabled <Boolean>]


[-ExtendedTests <PSListModifier>] [-Force] [-InMemory] [-Tests <PSListModifier>] [-TestUsers <PSListModifier>]
[-UseInternalWebUrls <Boolean>] [-WhatIf] [-XmppTestReceiverMailAddress <String>]
[-UseAutoDiscovery <Boolean>] [<CommonParameters>]

Description
If you are using Microsoft System Center Operations Manager to monitor Skype for Business Server then you
have the option of setting up "watcher nodes": computers that periodically and automatically, run synthetic
transactions in order to verify that Skype for Business Server is working as expected. Watcher nodes are assigned
to pools, and are managed using the CsWatcherNodeConfiguration cmdlets. Note that you do not need to install
watcher nodes if you are using System Center Operations Manager. You can still monitor your system without
using watcher nodes; the only difference is that any synthetic transactions you want to run will need to be invoked
manually rather than automatically invoked by Operations Manager.
Skype for Business Server Control Panel: The functions carried out by the New-CsWatcherNodeConfiguration cmdlet
are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------
Set-CsTestUserCredential -SipAddress "sip:kenmyer@litwareinc.com" -UserName "litwareinc\kenmyer" -Password
"07Apples"

Set-CsTestUserCredential -SipAddress "sip:pilar@litwareinc.com" -UserName "litwareinc\pilar" -Password


"07Apples"

$x = New-CsExtendedTest -TestUsers "sip:kenmyer@litwareinc.com", "sip:pilar@litwareinc.com" -Name "PSTN Test" -


TestType "PSTN"

New-CsWatcherNodeConfiguration -TargetFqdn "atl-cs-001.litwareinc.com" -PortNumber 5061 -TestUsers


"sip:kenmyer@litwareinc.com","sip:pilar@litwareinc.com"} -ExtendedTests @{Add=$x}

The commands shown in Example 1 create a new collection of watcher node configuration settings for the pool
atl-cs-001.litwareinc.com . To do this, the first two commands in the example create a pair watcher node test users
(sip:kenmyer@litwareinc.com and sip:pilar@litwareinc.com). After the test users have been created, the third
command in the example creates a new extended PSTN test using the two newly-created users. This new test
(which, at this point in time, exists only in memory) is stored in a variable named $x.

Finally, the fourth command in the example creates the watcher node configuration settings for atl-cs-
001.litwareinc.com. These new settings use port 5061; the two new test users and the extended test stored in the
variable $x.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Enables or disables the watcher node. The default value is True ($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExtendedTests
PSTN or Audio Conferencing Provider tests that can be assigned to a watcher node configuration. These tests must
be created using the New-CsExtendedTest cmdlet and stored in a variable (for example, $x). The test can then be
assigned to a watcher node by using syntax similar to this:
-ExtendedTests @{Add=$x}
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name of the pool being associated with the watcher node configuration settings. You can use
either the Identity parameter or the TargetFqdn parameter to specify the pool; however, you cannot use both these
parameters in the same command.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PortNumber
SIP port used by the Registrar service.

Type: UInt16
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetFqdn
Fully qualified domain name of the pool being associated with the watcher node configuration settings. You can use
either the TargetFqdn parameter or the Identity parameter to specify the pool; however, you cannot use both these
parameters in the same command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tests
Synthetic transactions to be run by the watcher node. Allowed values are:
Registration
IM
GroupIM
P2PAV
AvConference
Presence
ABS
ABWQ
MCXP2PIM
ExumConnectivity
JoinLauncher
PersistentChatMessage
DataConference
XmppIM
UnifiedContactStore
AVEdgeConnectivity
To configure tests at the time you create a new watcher node, use the following syntax, separating the individual
tests by using commas:
-Tests "ABS","ABWQ","IM","GroupIM","XmppIM"

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TestUsers
SIP addresses of the test users to be assigned to the watcher node; these user accounts must have previously been
configured by using the Set-CsTestUserCredential cmdlet. To add test users, use syntax similar to this, separating
user addresses by using commas:
-TestUsers "sip:kenmyer@litwareinc.com","sip:pilar@litwareinc.com"

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseAutoDiscovery
When set to True ($True), Skype for Business Online watcher nodes will use the Autodiscover service to locate the
target pool. When set to False (the default value) watcher nodes will use SRV records to locate the pool.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseInternalWebUrls
When set to True ($True), instructs the watcher node to use the internal Web URLs rather than the external Web
URLs. This provides a way to way to verify URL validity for users located behind the organization's firewall.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-XmppTestReceiverMailAddress
XMPP email address to be used when testing the XMPP gateway.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsWatcherNodeConfiguration cmdlet does not accept pipelined input.

Outputs
The New-CsWatcherNodeConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool#Decorated object.
minutes to read • Edit Online

New-CsWebLink
In ths Article

Creates a new web link that points to the Autodiscover service. The Autodiscover service provides a way for client
applications such as Skype for Business Mobile to locate key resources such as a user's home pool or the URL for
joining a dial-in conference. This cmdlet was introduced in the cumulative update for Lync Server 2010: November
2011.

Syntax
New-CsWebLink -Href <String> -Token <String> [<CommonParameters>]

Description
For client applications to make the most effective use of Skype for Business Server those applications need to know
the location of key Skype for Business Server components. For example, authenticated users must be able to locate
their home pool; after all, they can only be authenticated by that home pool. Likewise, unauthenticated users must
be able to do such things as locate the URL used for joining a conference.
If all your users logged on from behind the organization's firewall discovering these locations would be a relatively
simple task. However, this relatively simple task gets more and more complicated as users access the system from
external locations using clients such as Skype for Business Mobile.
This is especially true in split-domain scenarios, scenarios in which some of an organization's users have accounts
on the on-premises version of Skype for Business Server while other users have accounts on Skype for Business
Online. In cases such as this, user accounts might be located in different Active Directory forests. That can pose a
problem: for example, if a US -based user logs on from Europe the system must be able to recognize his or her
forest and then refer the logon request to the proper pool.
The Autodiscover service was introduced in the November 2011 release of Lync Server in order to address these
issues. When a client application attempts to access Skype for Business Server, the Autodiscover service parses the
client SIP address and then redirects that request to the appropriate pool. Client applications connect to the
Autodiscover service by sending an HTTP request to an Autodiscover URL; these URLs must be configured by
administrators in order for the Autodiscover service to work. (Note that, in addition to configuring URLs,
administrators must also create DNS records that correspond to these URLs.)
Autodiscover URLs are assigned to Autodiscover configuration settings; in turn, these settings can be applied to the
global scope or to the site scope. When you install Skype for Business Server a global collection of settings will be
created for you. (However, no Autodiscover URLs will be assigned to that collection.) If a single collection of
Autodiscover settings will not fill your needs, then you can use the New-CsAutoDiscoverConfiguration cmdlet to
create additional configuration settings at the site scope.
Managing Autodiscover configuration settings typically means adding Autodiscover URLs. These URLs must be
created using the New-CsWebLink cmdlet, with the resulting URL stored in a variable and then added to a collection
of Autodiscover configuration settings. Autodiscover URLs are based on the SIP domains used in your
organization; administrators will typically create one URL for use by users outside the organization's firewall (for
example, http://LyncDiscover.litwareinc.com) and a second URL (for example,
http://LyncDiscoverInternal.litwareinc.com) for use by users inside the firewall.

Examples
-------------------------- Example 1 --------------------------

$Link1 = New-CsWebLink -Token "Fabrikam" -Href "http://LyncDiscover.fabrikam.com"

Set-CsAutoDiscoverConfiguration -Identity "site:Redmond" -WebLinks @{Add=$Link1}

The commands shown in Example 1 add a new Autodiscover URL (http://LyncDiscover.fabrikam.com) to the
Autodiscover configuration settings assigned to the Redmond site. To do this, the first command in the example
uses the New-CsWebLink cmdlet to create a new Autodiscover URL; that URL is stored in a variable named $Link1.
After that, the Set-CsAutoDiscoverConfiguration cmdlet is used to add the new URL to any URLs already assigned
to these settings. This is done by using the WebLinks parameter and the parameter value @{Add=$Link1}.
-------------------------- Example 2 --------------------------

$Link1 = New-CsWebLink -Token "Fabrikam" -Href "http://LyncDiscover.fabrikam.com"

$Link2 = New-CsWebLink -Token "Fabrikam" -Href "http://LyncDiscoverInternal.fabrikam.com"

Set-CsAutoDiscoverConfiguration -Identity "site:Redmond" -WebLinks @{Add=$Link1,$Link2}

The commands in Example 2 assign a pair of Autodiscover URLs (http://LyncDiscover.fabrikam.com and


http://LyncDiscoverInternal.fabrikam.com) to the Autodiscover configuration settings assigned to the Redmond
site.. In order to carry out this task, the first two commands use the New-CsWebLink cmdlet to create the two
Autodiscover URLs; the newly-created URLs are then stored in variables named $Link1 and $Link2. After the two
URLs are created, the third command uses the Set-CsAutoDiscoverConfiguration cmdlet to assign the two URLs to
the Redmond site. To do this, the WebLinks parameter is included along with the parameter value
@{Add=$Link1,$Link2}. That syntax causes the values stored in the variables $Link1 and $Link2 to be added to the
settings' WebLinks property.

Parameters
-Href
URL for the Autodiscover service, For example:
-Href "http://LyncDiscover.fabrikam.com"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Token
Unique name to be given to the URL. For example:
-Token "Fabrikam"
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsWebLink cmdlet does not accept pipelined input.

Outputs
Creates new instances of the Microsoft.Rtc.Management.WriteableConfig.Settings.WebLink.WebLink object
minutes to read • Edit Online

New-CsWebOrigin
In ths Article

Creates a new domain object that can be added to the collection of domains allowed to send cross-domain
scripting requests to the Skype for Business Server deployment.

Syntax
New-CsWebOrigin -Url <String> [<CommonParameters>]

Description
The New-CsWebOrigin cmdlet is used to specify domains that are authorized to host web applications which, in turn,
are permitted to send cross-domain scripting requests to your deployment of Skype for Business Server. This
cmdlet is primarily used for applications created on top of the Unified Communications Web API.
To add a domain to a collection of web service configuration settings, you must first create a domain object by
using the New-CsWebOrigin cmdlet. This domain object, which will exist only in memory, must be stored in a
variable. After the object has been created, it can then be added to a collection of web service configuration settings
by using either the New-CsWebServiceConfiguration cmdlet or the Set-CsWebServiceConfiguration cmdlet.
Skype for Business Server Control Panel: The functions carried out by the New-CsWebOrigin cmdlet are not available
in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

$x = New-CsWebOrigin -Url "http://fabrikam.com"

New-CsWebServiceConfiguration -Identity "site:Redmond" - CrossDomainAuthorizationList $x

The commands shown in Example 1 add the domain http://fabrikam.com to a new collection of web service
configuration settings being created for the Redmond site. To do this, the first command in the example uses the
New-CsWebOrigin cmdlet to create a domain object for fabrikam.com. The resulting domain object is stored in a
variable named $x.
The second command in the example uses the New-CsWebServiceConfiguration cmdlet to create the web service
configuration settings for the Redmond site. The syntax " - CrossDomainAuthorizationList $x " adds
http://fabrikam.com to the collection of domains authorized for cross-domain scripting.
-------------------------- Example 2 --------------------------
$x = New-CsWebOrigin -Url "http://fabrikam.com"

Set-CsWebServiceConfiguration -Identity "site:Redmond" - CrossDomainAuthorizationList @{Add=$x}

The commands shown in Example 2 add the domain http://fabrikam.com to an existing collection of web service
configuration settings. To carry out this task, the first command in the example uses the New-CsWebOrigin cmdlet to
create a domain object for fabrikam.com. The resulting domain object is stored in a variable named $x.
The second command in the example uses the Set-CsWebServiceConfiguration cmdlet to add http://fabrikam.com to
the web service configuration settings applied to the Redmond site. The syntax @{Add=$x} adds the domain to any
domains already in the collection of domains authorized for cross-domain scripting. To replace the existing
collection with just http://fabrikam.com use the syntax @{Replace=$x} .

Parameters
-Url
URL of the domain authorized to send cross-domain scripting requests. URLs must be prefaced using either the
http: or the https: prefix. For example:
-Url "http://contoso.com"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsWebOrigin cmdlet does not accept pipelined input.

Outputs
The New-CsWebOrigin cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Web.Origin object.

Related Links
New -CsWebServiceConfiguration
Set-CsWebServiceConfiguration
minutes to read • Edit Online

New-CsWebServiceConfiguration
In ths Article

Creates a new collection of Web Services configuration settings. This cmdlet was introduced in Lync Server 2010.

Syntax
New-CsWebServiceConfiguration [-Identity] <XdsIdentity> [-AllowAnonymousAccessToLWAConference <Boolean>]
[-CASigningKeyLength <UInt64>] [-DefaultValidityPeriodHours <UInt64>] [-EnableCertChainDownload <Boolean>]
[-EnableGroupExpansion <Boolean>] [-InferCertChainFromSSL <Boolean>] [-MACResolverUrl <String>]
[-MaxCSRKeySize <UInt64>] [-MaxGroupSizeToExpand <UInt32>] [-MaxValidityPeriodHours <UInt64>]
[-MinCSRKeySize <UInt64>] [-MinValidityPeriodHours <UInt64>] [-SecondaryLocationSourceUrl <String>]
[-TrustedCACerts <PSListModifier>] [-UseCertificateAuth <Boolean>] [-UsePinAuth <Boolean>]
[-UseWindowsAuth <UseWindowsAuth>] [-Force] [-InMemory] [-WhatIf] [-Confirm]
[-ShowDownloadCommunicatorAttendeeLink <Boolean>] [-ShowJoinUsingLegacyClientLink <Boolean>]
[-AllowExternalAuthentication <Boolean>] [-AutoLaunchLyncWebAccess <Boolean>]
[-ShowAlternateJoinOptionsExpanded <Boolean>] [-UseWsFedPassiveAuth <Boolean>]
[-WsFedPassiveMetadataUri <String>] [-CrossDomainAuthorizationList <PSListModifier>]
[-EnableMediaBasicAuth <Boolean>] [-EnableStatisticsInResponse <Boolean>] [-HstsMaxAgeInSeconds <Int64>]
[-MobilePreferredAuthType <MobilePreferredAuthType>] [-UseDomainAuthInLWA <Boolean>]
[-UseWebClientLegacyUI <Boolean>] [<CommonParameters>]

Description
Many Skype for Business Server components are web-based: these components either use Web Services or
webpages to carry out their tasks. For example, users employ a Web service when searching for new contacts in the
Address Book or when using group expansion to view the individual members of a distribution group. Likewise,
components ranging from dial-in conferencing to Skype for Business Server use web pages as the interface
between Skype for Business Server Control Panel and users.
The CsWebServiceConfiguration cmdlets enable administrators to manage Web Services configuration settings
throughout the organization. This includes managing group expansion, certificate settings and allowed
authentication methods. Because you can configure different settings at the global, site and service scope (albeit for
only the Web Services service), you can customize Web Services capabilities for different users and different
locations.
New Web Services configuration settings are created by using the New-CsWebServiceConfiguration cmdlet. Note that
these settings can only be created at the site or service scope (and only for the Web Services service); your
command will fail if you try to create a new collection at the global scope. Likewise, your command will fail if you
try to create a new collection at, for instance, the Redmond site and that site already hosts a collection of Web
service settings.

Examples
-------------------------- Example 1 ------------------------

New-CsWebServiceConfiguration -Identity site:Redmond -EnableGroupExpansion $False -UseCertificateAuth $True


The command shown in Example 1 creates a new collection of Web Services configuration settings for the
Redmond site (-Identity site:Redmond). This example includes two optional parameters: EnableGroupExpansion,
which is set to False ($False) and UseCertificateAuth, which is set to True ($True). These two parameters are used to
disable group expansion and enable the use of certificates for authentication, respectively.
Note that this command will fail if a collection of Web Services configuration settings has already been created for
the Redmond site. That's because sites are limited to a single collection of Web Services configuration settings.
-------------------------- Example 2 ------------------------

$x = New-CsWebServiceConfiguration -Identity site:Redmond -InMemory

$x.EnableGroupExpansion = $False

$x.UseCertificateAuth = $True

Set-CsWebServiceConfiguration -Instance $x

Example 2 is a variation of the command shown in Example 1; in this case, however, the new collection of Web
Services configuration settings is initially created in memory only and is only later applied to the Redmond site. In
order to do this, the first command in the example uses the New-CsWebServiceConfiguration cmdlet to create a
collection of settings for the Redmond site; the InMemory parameter is included to ensure that this collection is
created in memory only and is not immediately applied to the Redmond site. (Because the settings exist only in
memory, they must be stored in a variable. In this case, that's a variable named $x.)
Commands 2 and 3 in the example take these virtual configuration settings and modify the values of the
EnableGroupExpansion and UseCertificateAuth properties. After these changes have been made, the final
command uses the Set-CsWebServiceConfiguration cmdlet to take the virtual settings and apply them to the
Redmond site. If you do not call the Set-CsWebServiceConfiguration cmdlet, no new settings will be assigned to the
site. Instead, your virtual Web Services configuration settings will disappear as soon as you end your Windows
PowerShell session or delete the variable $x.
-------------------------- Example 3 --------------------------

$x = New-CsWebOrigin -Url "http://fabrikam.com"

New-CsWebServiceConfiguration -Identity "site:Redmond" - CrossDomainAuthorizationList $x

The commands shown in Example 3 add the domain http://fabrikam.com to the authorized domains list for a new
collection of Web service configuration settings being created for the Redmond site. To do this, the first command
in the example uses the New-CsWebOrigin cmdlet to create a domain object for fabrikam.com. The resulting domain
object is stored in a variable named $x.
The second command in the example uses the New-CsWebServiceConfiguration cmdlet to create the Web service
configuration settings for the Redmond site. The syntax - CrossDomainAuthorizationList $x adds
http://fabrikam.com to the collection of domains authorized for cross-domain scripting.
-------------------------- Example 4 --------------------------

$x = New-CsWebOrigin -Url "http://fabrikam.com"

$y = New-CsWebOrigin -Url "http://contoso.com"

New-CsWebServiceConfiguration -Identity "site:Redmond" - CrossDomainAuthorizationList $x, $y

Example 4 shows how you can add multiple authorized domains to a new collection of Web service configuration
settings. To add multiple domains, you must create multiple domain objects, storing each in a separate variable. In
Example 4, the domain object for http://fabrikam.com is stored in a variable named $x, while the domain object for
http://contoso.com is stored in a variable named $y.
After all the domain objects have been created, all you need to do is include each variable name in the parameter
value for the CrossDomainAuthorizationList parameter. For example:
-CrossDomainAuthorizationList $x, $y

Parameters
-AllowAnonymousAccessToLWAConference
When set to True (the default value), anonymous users will be allowed to attend Skype for Business web App
conferences.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExternalAuthentication
When set to True (the default value), OAuth authentication can be used to authenticate external users.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AutoLaunchLyncWebAccess
This parameter has been deprecated for use with the on-premises version of Skype for Business Server.
When set to True, Skype for Business Web App will automatically be used as the default web popup for joining an
online conference, provided that the prerequisites for using Skype for Business Web App (for example, Silverlight
have been installed and Internet Explorer is not blocking pop-up windows) have been met.
The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CASigningKeyLength
Sets the size of the certification authority (CA) signing key, the private key used by a CA to sign digital certificates.
The signing key length can be set to any integer value between 2048 and 16384 bytes; the default value is 2048.
Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CrossDomainAuthorizationList
Collection of domains allowed to host web applications that send cross-domain scripting requests to the Skype for
Business Server deployment.
Domains to be added to the list must be created using the New-CsWebOrigin cmdlet and then added to the new
collection of Web service configuration settings. Domain names must be prefaced using the http: or the https:
prefix. See Example 3 of this help topic for more information.
This parameter was introduced in the February, 2013 release of Lync Server 2013.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultValidityPeriodHours
When using certificate authentication, clients can request the period of time (in hours) that the certificate remains
valid. DefaultValidityPeriodHours represents the amount of time a certificate will remain valid if the client does not
request a custom validity period.
DefaultValidityPeriodHours can be any integer value between 8 hours and 8760 hours (365 days). The default value
is 4320 (180 days).

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCertChainDownload
If set to True, servers presented with an authentication certificate will download the certificate chain for that
certificate. The certificate chain traces an individual certificate back to the issuing CA. Certificates will not be
accepted for authentication unless the certificate's CA is trusted.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableGroupExpansion
If set to True, group expansion will be enabled in Skype for Business. With group expansion, users can configure a
distribution group as a contact and then "expand" that group. When a group has been expanded, users can see all
the individual members of a group and their current presence information.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMediaBasicAuth
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableStatisticsInResponse
When set to True ($True) the X-MS -WebInfraStats header is included in all HTTP responses. The default value is
False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HstsMaxAgeInSeconds
Specifies the time in seconds of the max-age setting in the Strict-Transport-Security (STS ) header of an HTTPS
response. A negative value will suppress the STS header in the HTTPS response. The default is 315,360,000 (one
year.)

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Web Services configuration settings to be created. To create settings configured at the site
scope, use syntax similar to this:
-Identity "site:Redmond"

To create settings configured at the service scope, use syntax similar to this:
-Identity "service:WebServer:atl-cs-001.litwareinc.com"

Note that any settings created at the service scope must be assigned to the Web Server service.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InferCertChainFromSSL
If set to True, servers will use the certificate information included in the Secure Sockets Layer (SSL ) protocol to
determine the issuing CA. Certificates will not be accepted for authentication unless the certificate's CA is trusted.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MACResolverUrl
URL for a Web service capable of performing Media Access Control (MAC ) resolution. MAC resolution involves
taking the MAC address of a connected client and returning the chassis and port IDs of the network switch that
client is connected to. MAC resolution is used by the Enhanced 9-1-1 service.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxCSRKeySize
Sets the maximum size of the certificate signing request (CSR ) key. (A CSR is a message sent from an applicant to
a CA in order to apply for a digital certificate.) The maximum size can be set to any integer value between 1024 and
16384 bytes. The default value is 16384.

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxGroupSizeToExpand
Represents the maximum number of people that will be displayed when a group is expanded. For example, if
MaxGroupSizeToExpand is set to 75, only the first 75 members of the group will be displayed any time the group is
expanded.
MaxGroupSizeToExpand can be set to any integer value between 1 and 1000, inclusive. The default value is 100.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxValidityPeriodHours
When using certificate authentication, clients can request the period of time (in hours) that the certificate remains
valid. MaxValidityPeriodHours represents the maximum amount of time a client can request.
MaxValidityPeriodHours can be any integer value between 8 hours and 8760 hours (365 days). The default value is
8760.

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MinCSRKeySize
Sets the minimum size of the CSR key. The minimum size can be set to any integer value between 1024 and 16384
bytes. The default value is 16384.
Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MinValidityPeriodHours
When using certificate authentication, clients can request the period of time (in hours) that the certificate remains
valid. MinValidityPeriodHours represents the minimum amount of time a client can request.
MinValidityPeriodHours can be any integer value between 8 hours and 4320 hours (180 days). The default value is
8.

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MobilePreferredAuthType
Specifies the preferred authentication type to be used by mobile applications. If an unsupported method is
specified, the web ticket service will not start and an event will be logged by the Skype for Business Server.
Accepted values for the MobilePreferredAuthType parameter are:
None
OAuth
WebTicketServiceAnon
WebTicketServiceWinNegotiate
WebTicketServiceWinNtlm
WebTicketServiceCert
WebTicketServicePin
WsFedPassive
WsFedBearer
WebTicketServiceAuth

Type: MobilePreferredAuthType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecondaryLocationSourceUrl
URL for a Web service that can process a location request. This service is typically used only when location
requests cannot be resolved locally.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowAlternateJoinOptionsExpanded
This parameter has been deprecated for use with the on-premises version of Skype for Business Server.
When set to True then alternate options for joining an online conference will automatically be expanded and shown
to users. When set to False (the default value) these options will be available, but the user will have to display the
list of options for themselves.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowDownloadCommunicatorAttendeeLink
This parameter has been deprecated for use with the on-premises version of Skype for Business Server.
If set to True (the default value), users joining a meeting by using a client application other than Skype for Business
will see a link that points them toward a download for Skype for Business Web App.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowJoinUsingLegacyClientLink
This parameter has been deprecated for use with the on-premises version of Skype for Business Server.
If set to True, users joining a meeting by using a client application other than Skype for Business will be given the
opportunity to join the meeting by using their current client application. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TrustedCACerts
Collection of certificates representing certificate chains trusted by the Web server. New certificates added to the
collection must be created using the New-CsWebTrustedCACertificate cmdlet.

This collection is not used if the InferCertChainFromSSL property is set to True.


Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseCertificateAuth
When set to True (the default value), clients can be authenticated using certificates. Set this value to False ($False) to
disable certificate authentication.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseDomainAuthInLWA
When set to True, domain authentication can be employed as a way to authenticate Skype for Business Web App
users.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UsePinAuth
When set to True (the default value), clients can be authenticated using personal identification numbers (PINs). Set
this value to False ($False) to disable PIN authentication.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseWebClientLegacyUI
If true ($True), then the legacy web interface is presented to the client. If false ($False), the standard web interface is
used. The default is false.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseWindowsAuth
Determines how (and if) users will be authenticated using Windows authentication; that is, using the same
credentials they used when they logged on to Windows. Valid values are:
Negotiate - The client and server will work together to determine the proper authentication protocol (either
Kerberos or NTLM ).
NTLM - Windows authentication will be allowed, but only using the NTLM protocol.
None - Windows authentication will not be allowed.

Type: UseWindowsAuth
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseWsFedPassiveAuth
When set to True, allows for passive authentication: authentication of users by using URL redirection or smart
linking. The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WsFedPassiveMetadataUri
URI used by the WS -federation Web requestor protocol.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsWebServiceConfiguration cmdlet does not accept pipelined input.

Outputs
The New-CsWebServiceConfiguration cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Web.WebServiceSettings object.

Related Links
Get-CsWebServiceConfiguration
Remove-CsWebServiceConfiguration
Set-CsWebServiceConfiguration
minutes to read • Edit Online

New-CsWebTrustedCACertificate
In ths Article

Creates a new certificate ID object based on an existing certification authority (CA) certificate. This cmdlet was
introduced in Lync Server 2010.

Syntax
New-CsWebTrustedCACertificate -Thumbprint <String> -CAStore <CAStore> [<CommonParameters>]

Description
Web Services configuration settings are used to help manage Skype for Business Server Web servers and Web
Services. Among the property values that can be managed using these settings is the TrustedCACerts property,
which represents a collection of certification authorities trusted by Skype for Business Phone Edition. Certificates
obtained from trusted CAs allow these clients to enhance the security of connections with servers running Skype
for Business Server. To add a new CA to the collection of trusted certification authorities, you must add the
certificate chain for that CA in the local computer's certificate store. After you have verified that the certificate chain
has been installed, you can then use the New-CsWebTrustedCACertificate cmdlet to create a certificate ID object that
can be added to a collection of Web Services configuration settings.
Note that the certification authority that signs the default server certificate used when installing Skype for Business
Server is automatically trusted and does not need to be added to the TrustedCACerts property of a collection of
Web Services configuration settings. TrustedCACerts should only contain the identities of CAs that need to be
trusted in addition to the CA that issued the default certificate. In most cases, the CA that issued the default
certificate will be the only certification authority that needs to be trusted.

Examples
-------------------------- Example 1 ------------------------

$x = New-CsWebTrustedCACertificate -Thumbprint "D543DFF74FEEA425162FD25F342786F1AB453BB3" -CAStore


TrustedRootCA

Set-CsWebServiceConfiguration -Identity site:Redmond -TrustedCACerts @{Add=$x}

The commands shown in Example 1 create a new trusted CA certificate and then add that certificate to the
TrustedCACerts property of the Web Services configuration settings for the Redmond site. To carry out this task,
the first command in the example uses the New-CsWebTrustedCACertificate cmdlet to create a new trusted CA
certificate; that certificate can be found in the Trusted Root certificate store and has the Thumbprint
D543DFF74FEEA425162FD25F342786F1AB453BB3. The resulting certificate object is stored in a variable named
$x.
After the certificate object has been created, the second command in the example adds that certificate to the
TrustedCACerts property. To do this, the command uses the Set-CsWebServiceConfiguration cmdlet and the
TrustedCACerts parameter. The parameter value ${Add=$x} tells the cmdlet to add the certificate stored in the
variable $x to the collection of trusted CA certificates.

Parameters
-CAStore
Indicates the name of the certificate store (on the local computer) where the certificate is stored. Valid values are:
TrustedRootCA
IntermediateCA
ThirdPartyRootCA

Type: CAStore
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Thumbprint
Thumbprint of the certificate which should be trusted by Lync Phone Edition. You can retrieve certificate issuer and
thumbprint values by running this command:
Get-CsCertificate | Select-Object Issuer, Thumbprint

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsWebTrustedCACertificate cmdlet does not accept pipelined input.

Outputs
The New-CsWebTrustedCACertificate cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Web.CACertID object.

Related Links
New -CsWebServiceConfiguration
Set-CsWebServiceConfiguration
minutes to read • Edit Online

New-CsXmppAllowedPartner
In ths Article

Creates a new XMPP allowed partner. The extensible Messaging and Presence Protocol (XMPP ) is an open-
standard communications protocol for exchanging messages using XML. An allowed partner is an IM and presence
provider whose users have been authorized to exchange instant messages and presence information with your
Skype for Business Server users. This cmdlet was introduced in Lync Server 2013.

Syntax
New-CsXmppAllowedPartner -Domain <String> [-AdditionalDomains <PSListModifier>] [-Confirm]
[-ConnectionLimit <UInt32>] [-Description <String>] [-EnableKeepAlive <Boolean>] [-Force] [-InMemory]
[-PartnerType <PartnerType>] [-ProxyFqdn <String>] [-SaslNegotiation <SaslNegotiation>]
[-SupportDialbackNegotiation <Boolean>] [-TlsNegotiation <TlsNegotiation>] [-WhatIf] [<CommonParameters>]

New-CsXmppAllowedPartner [-Identity] <XdsGlobalRelativeIdentity> [-AdditionalDomains <PSListModifier>]


[-Confirm] [-ConnectionLimit <UInt32>] [-Description <String>] [-EnableKeepAlive <Boolean>] [-Force]
[-InMemory] [-PartnerType <PartnerType>] [-ProxyFqdn <String>] [-SaslNegotiation <SaslNegotiation>]
[-SupportDialbackNegotiation <Boolean>] [-TlsNegotiation <TlsNegotiation>] [-WhatIf] [<CommonParameters>]

Description
The Extensible Messaging and Presence Protocol (XMPP ) is a standard communications protocol (based on XML )
used for sending messages across the Internet. XMPP was originally named Jabber and is supported by a number
of Internet messaging and communication applications, including Google Talk and Facebook Chat.
In order for your users to be able to exchange instant messages and presence information with users on an XMPP
network, that network must be configured as an XMPP allowed partner. (You must also assign your users an
external access policy that allows XMPP access.) By design, your users will be allowed to communicate with users
on any XMPP network that is listed on the allowed partners list. If you do not want users communicating with users
from a given network then you must delete that network from the allowed partners list.
Skype for Business Server Control Panel: To create a new XMPP allowed partner using Skype for Business Server
Control Panel, click External User Access, click XMPP Federated Partners and then click New.

Examples
-------------------------- Example 1 --------------------------

New-CsXmppAllowedPartner -Identity "contoso.com" -PartnerType "PublicVerified"

The command shown in Example 1 creates a new XMPP allowed partner: contoso.com. In this example, the
PartnerType property is set to "PublicVerified".
-------------------------- Example 2 --------------------------
New-CsXmppAllowedPartner -Identity "fabrikam.com" -AdditionalDomains "research.fabrikam2.com"

Example 2 creates a new XMPP allowed partner with the Identity fabrikam.com. In addition to the root domain
(fabrikam.com), the AdditionalDomains property is included to allow support for the child domain
research.fabrikam2.com.

Parameters
-AdditionalDomains
Additional XMPP domains belonging to the allowed partner. Multiple domains can be specified by separated
domain names by using commas; for example:
-AdditionalDomains "fabrikam2.com","fabrikam3.com"

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConnectionLimit
Specifies the maximum number of simultaneous connections allowed to a specific partner.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional text regarding the XMPP allowed partner. For example, the
Description might include contact information for the partner.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Domain
Primary domain of the XMPP allowed partner; for example:
-Domain "fabrikam.com"

You can specify the primary domain by using either the Domain parameter or the Identity parameter. However, you
cannot use both parameters in the same command.
Additional domains can be specified by using the AdditionalDomains parameter.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableKeepAlive
Indicates whether or not the XMPP partner should periodically transmit "keep alive" packets in order to verify that
the connection is still active.
The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Primary domain of the XMPP allowed partner; for example:
`-Identity "fabrikam.com"

You can specify the primary domain by using either the Identity parameter or the Domain parameter. However, you
cannot use both parameters in the same command.
Additional domains can be specified by using the AdditionalDomains parameter.
Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
Creates an object reference without actually committing the object as a permanent change. If you assign the output
of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object
reference and then commit those changes by calling this cmdlet's matching Set- cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PartnerType
Specifies the relationship between Skype for Business Server and the XMPP partner. Allowed values are:
Federated (the XMPP partner is from a federated domain)
PublicVerified
PublicUnverified
The default value is PublicUnverified.

Type: PartnerType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyFqdn
Full qualified domain name of the proxy server used by the XMPP partner.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SaslNegotiation
Indicates support for the Simple Authentication and Security Layer protocol, a protocol used for server
authentication.
Allowed values are:
Required (SASL negotiation must be supported)
Optional (SASL will be used if available)
NotSupported (SASL negotiation will not be supported)
The default value is Required.

Type: SaslNegotiation
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SupportDialbackNegotiation
Indicates whether dialback negotiation will be supported. With dialback negotiation, when Server A contacts Server
B communication is not immediately established. Instead, Server B first attempts to verify the identity of Server A
by contacting the authoritative DNS server for the domain that Server A claims to be from.
Note that dialback negotiation is not as secure as SASL or TLS. Instead, it is primarily used in situations where
certificates cannot be used to verify a server's identity.
The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TlsNegotiation
Indicates support for the Transport Layer Security protocol, a protocol used to encrypt server-to-server data
streams.
Allowed values are:
Required (TLS negotiation must be supported)
Optional (TLS will be used if available)
NotSupported (TLS negotiation will not be support The default value is Required.)

Type: TlsNegotiation
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The New-CsXmppAllowedPartner cmdlet does not accept pipelined input.

Outputs
The New-CsXmppAllowedPartner cmdlet creates new instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner#Decorated object.

Related Links
Get-CsXmppAllowedPartner
Remove-CsXmppAllowedPartner
Set-CsXmppAllowedPartner
minutes to read • Edit Online

Publish-CsLisConfiguration
In ths Article

Publishes the Location Information Server (LIS ) configuration to the Central Management store. This cmdlet was
introduced in Lync Server 2010.

Syntax
Publish-CsLisConfiguration [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
In order to implement Enhanced 9-1-1 (E9-1-1) in Skype for Business Server, you must create a location mapping
(called a wiremap). This mapping includes matching physical addresses to ports, subnets, switches and wireless
access points so any calls made over an Enterprise Voice connection will reach the nearest emergency operator and
provide that operator with the correct location of the caller. This mapping configuration, created by calling cmdlets
such as the Set-CsLisPort cmdlet and the Set-CsLisSubnet cmdlet, is stored in a central location database. This
cmdlet commits any changes in the central location database to the Central Management store, allowing the
information to be replicated to the Location Information servers so that the locations can be rendered to clients.
The configuration can be removed from the Central Management store by calling the
Unpublish-CsLisConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

Publish-CsLisConfiguration

This command commits the LIS configuration to the Central Management store.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
This cmdlet does not return a value.

Related Links
Debug-CsLisConfiguration
Unpublish-CsLisConfiguration
Import-CsLisConfiguration
Export-CsLisConfiguration
Test-CsLisConfiguration
minutes to read • Edit Online

Publish-CsTopology
In ths Article

Publishes the Skype for Business Server topology retrieved by using the `Get-CsTopology` cmdlet. This cmdlet was
introduced in Lync Server 2010.

Syntax
Publish-CsTopology [-FileName] <String> [-BackupFileName <String>] [-GlobalCatalog <Fqdn>]
[-GlobalSettingsDomainController <Fqdn>] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Publish-CsTopology [-BackupFileName <String>] -Document <XElement> [-GlobalCatalog <Fqdn>]


[-GlobalSettingsDomainController <Fqdn>] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Publish-CsTopology [-BackupFileName <String>] [-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>]


[-Force] [-Report <String>] [-WhatIf] [-Confirm] [-FinalizeUninstall] [<CommonParameters>]

Description
After you have installed Skype for Business Server, you will eventually need to make changes to the Skype for
Business Server infrastructure; for example, you might need to add a new site, delete an existing Registrar pool, or
add an additional Archiving Server. These infrastructure changes must be made by using Topology Builder. After
you have made the changes in Topology Builder, you can then publish and enable those changes using that same
tool. These latter two steps are very important: although you can make as many modifications as you want using
the Topology Builder, those modifications do not actually take effect and your Skype for Business Server
infrastructure will not actually change, until the modifications have been published and the new topology has been
enabled.
When changes are published, the new information (for example, a new site or a new server role) is written to the
Central Management store. However, these new (or the newly modified) objects do not immediately join your
topology; that occurs only when the updated topology has been enabled. If you select the Publish option in
Topology Builder both of these steps will take place: the changes will be published (written to the Central
Management store) and then the new topology will be enabled.
The Publish-CsTopology cmdlet is no longer the recommended way to publish topologies created by using
Topology Builder; instead, publishing should be done within Topology Builder, using the steps outlined in the
previous paragraph. This is because Topology Builder now uses the Topology Builder XML file format (.tbxml); this
file format cannot be published by using the Publish-CsTopology cmdlet. The only thing you can do with the
Publish-CsTopology cmdlet is republish a topology retrieved by using the Get-CsTopology cmdlet. After publishing
the topology in this manner, you will then need to reconfigure your simple URLs.

Examples
-------------------------- Example 1 --------------------------
(Get-CsTopology -AsXml).ToString() \> C:\Topologies\Topology.xml

Publish-CsTopology -FileName "C:\Topologies\Topology.xml"

The commands shown in Example 1 retrieve and then republish the current topology. To carry out these tasks, the
first command in the example uses the Get-CsTopology cmdlet and the AsXml parameter to retrieve the current
topology; the Windows PowerShell redirection symbol > is then used to save the retrieved data to a file named
C:\Topologies\Topology.xml. (Note, too, that the ToString method is used to convert the retrieved topology to a
string value.) The second command in the example then uses the Publish-CsTopology cmdlet to republish the newly
retrieved topology.

Parameters
-BackupFileName
Full path to the backup file automatically created when you run the Publish-CsTopology cmdlet. If this parameter is
not specified, then the Publish-CsTopology cmdlet will create a backup file in your Temp folder (%temp%) similar to
this: Publish-CsTopology-Backup-[2010_10_01][08_30_00]. In that file name, 2010_10_01 represents the date that
publication took place: year (2010), month (10) and day (01). In addition, 08_30_00 represents the time of day when
publication took place: hour (08), minutes (30) and seconds (00).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Document
Enables you to publish an XML element rather than an XML file. This XML element must be configured as a
System.XML.Linq.XElement object.

Type: XElement
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileName
Full path to the XML file containing the new topology information.
Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FinalizeUninstall
Used only when uninstalling Skype for Business Server. After the Central Management Server has been removed,
use Publish-CsTopology and the FinalizeUninstall parameter to publish an empty topology. Among other things,
this removes all the Active Directory entries for the Central Management Server.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
Fully qualified domain name (FQDN ) of a global catalog server in your domain. This parameter is not required if
you are running the Publish-CsTopology cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory Domain Services, then this parameter must point to the root domain controller. If global settings
are stored in the Configuration container, then any domain controller can be used and this parameter can be
omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\Publish_Topology.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Publish-CsTopology cmdlet does not accept pipelined input.

Outputs
None. Instead, the Publish-CsTopology cmdlet publishes instances of the
Microsoft.Rtc.Management.Deploy.Internal.DefaultTopology object.

Related Links
Enable-CsTopology
Get-CsTopology
New -CsSimpleUrlConfiguration
Test-CsTopology
minutes to read • Edit Online

Register-CsHybridPSTNAppliance
In ths Article

Use the `Register-CsHybridPSTNAppliance` cmdlet to create a new Skype for Business Cloud Connector Edition
appliance.

Syntax
Register-CsHybridPSTNAppliance [-Tenant <Guid>] -Name <String> -SiteName <String>
-MediationServerIPAddress <String> -MediationServerFqdn <String> [-InMemory] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Skype for Business Cloud Connector Edition appliances are registered, retrieved, modified and unregistered by the
CsHybridPSTNAppliance cmdlet group (Register, Get, Set and Unregister). The Skype for Business Cloud
Connector Edition appliances can be reviewed in your hybrid configuration by using the
Get-CsTenantHybridConfiguration cmdlet. However, you can't create or modify Skype for Business Cloud Connector
Edition appliances through the CsTenantHybridConfiguration cmdlets. You must use the CsHybridPSTNAppliance
cmdlets to manage Skype for Business Cloud Connector Edition appliances.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned, run the following
command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<CmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InMemory
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediationServerFqdn
Mediation Server FQDN of this Skype for Business Cloud Connector Edition appliance.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediationServerIPAddress
Mediation Server IP address of this Skype for Business Cloud Connector Edition appliance.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Name of Skype for Business Cloud Connector Edition appliance.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SiteName
Name of Skype for Business Cloud Connector Edition site that the appliance belongs to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Register-CsOnlineDialInConferencingServiceNumber
In ths Article

Provide the topic introduction here.

Syntax
Register-CsOnlineDialInConferencingServiceNumber [-Identity] <String> [-BridgeId <Guid>]
[-BridgeName <String>] [-Tenant <Guid>] [-TenantDomain <String>] [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

Register-CsOnlineDialInConferencingServiceNumber [-Instance] <ConferencingServiceNumber>


[-BridgeId <Guid>] [-BridgeName <String>] [-Tenant <Guid>] [-TenantDomain <String>]
[-DomainController <Fqdn>] [-Force] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-BridgeId
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BridgeName
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
PARAMVALUE: Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: String

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
PARAMVALUE: ConferencingServiceNumber

Type: ConferencingServiceNumber
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TenantDomain
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Remove-CsAdditionalInternalDomain
In ths Article

Removes an additional internal domain previously configured for use in your organization. This cmdlet was
introduced in Skype for Business Server 2015 Cumulative Update 6 - December 2017.

Syntax
Remove-CsAdditionalInternalDomain [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
This cmdlet removes an additional internal domain previously configured for use in your organization.
Additional internal domains are not used locally by internal user or services URIs but must be treated as internal by
hybrid (split-domain) traffic analysis to support purely hosted and cloud appliance domains.

Examples
-------------------------- Example 1 ------------------------

PS C:\> Remove-CsAdditionalInternalDomain -Identity fabrikam.com

Example 1 removes the additional internal domain with the Identity fabrikam.com.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) for the new additional internal domain.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsGlobalRelativeIdentity

Outputs
System.Object

Related Links
New -CsAdditionalInternalDomain
Get-CsAdditionalInternalDomain
minutes to read • Edit Online

Remove-CsAddressBookConfiguration
In ths Article

Removes the specified collection of Address Book configuration settings. This cmdlet was introduced in Lync Server
2010.

Syntax
Remove-CsAddressBookConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Address Book servers are intermediaries between AD DS and Skype for Business Server. The Address Book server
ensures that the user information stored in Skype for Business Server is in synch with the user information stored
in AD DS. This is done by periodically synching Address Book files with information stored in the User database.
In addition, Address Book servers periodically generate index files that are downloaded to computers running
Skype for Business Server. When a user searches for contacts, he or she either search through these index files or
search the Address Book index files stored in the Central Management store.
Address Book servers are governed using Address Book configuration settings; these settings determine such
things as how often Address Book files are synchronized with the user database and how often these Address Book
index files are generated. When you install Skype for Business Server, a set of global Address Book settings is
created for you. You can also create custom configuration settings that can be applied to individual sites. These
settings, if they exist, apply to any Address Book servers operating in the site and take precedence over the global
settings.
The New-CsAddressBookConfiguration cmdlet enables you to create site-level Address Book configuration settings. To
later remove Address Book settings configured at the site scope, use the Remove-CsAddressBookConfiguration cmdlet.
Note that you can also run the Remove-CsAddressBookConfiguration cmdlet against the global settings; however, the
global settings cannot actually be removed. Instead, running the Remove-CsAddressBookConfiguration cmdlet against
the global settings will reset all of the global properties to their default values.

Examples
-------------------------- Example 1 --------------------------

Remove-CsAddressBookConfiguration -Identity site:Redmond

In this example, the Remove-CsAddressBookConfiguration cmdlet is used to delete the Address Book configuration
settings with the identity site:Redmond. Using the Identity parameter ensures that only the specified Address Book
settings will be removed.
-------------------------- Example 2 --------------------------
Get-CsAddressBookConfiguration -Filter site:* | Remove-CsAddressBookConfiguration

In Example 2, all the Address Book setting collections configured at the site scope are removed. To do this, the
Get-CsAddressBookConfiguration cmdlet is used to retrieve a collection of all the Address Book settings that have
been configured at the site scope; this is done by using the Filter parameter and the filter value "site:*". The
retrieved collection is then piped to the Remove-CsAddressBookConfiguration cmdlet, which removes all the items in
that collection.
-------------------------- Example 3 --------------------------

Get-CsAddressBookConfiguration | Where-Object {$_.KeepDuration -lt 30.} | Remove-CsAddressBookConfiguration

Example 3 removes all the Address Book settings in which change files are kept for less than 30 days. To carry out
this task, the Get-CsAddressBookConfiguration cmdlet is used to return a collection of all the Address Book settings
currently in use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only
those settings where the KeepDuration property is less than 30 days. (Note the syntax: 30., with a period following
the number of days.) Finally, the filtered collection is piped to the Remove-CsAddressBookConfiguration cmdlet, which
deletes each item in that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of Address Book configuration settings to be removed. To remove the global
collection, use the following syntax: -Identity global . (When you "remove" the global settings you simply reset all
the properties to their default values.) To remove a site collection, use syntax similar to this: -Identity site:Redmond
. Note that you cannot use wildcards when specifying a policy Identity.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings object. The
Remove-CsAddressBookConfiguration cmdlet accepts pipelined input of Address Book configuration objects.

Outputs
The Remove-CsAddressBookConfiguration cmdlet does not return a value or object. Instead, the cmdlet removes
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings object.

Related Links
Get-CsAddressBookConfiguration
New -CsAddressBookConfiguration
Set-CsAddressBookConfiguration
minutes to read • Edit Online

Remove-CsAddressBookNormalizationConfiguration
In ths Article

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.

Syntax
Remove-CsAddressBookNormalizationConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. (Note that an understanding of regular expressions is helpful
in order to understand what normalization rules do and how they do it.) In Skype for Business Server, the Address
Book normalization configuration settings represent collections of normalization rules that carry out these
conversions and translations for Address Book servers. (These settings can be defined at the global scope or at the
site scope.) The Remove-CsAddressBookNormalizationConfiguration cmdlet provides a way delete normalization rule
configuration settings that have been configured at the site scope. This cmdlet can also be run against the global
collection of settings. In that case, however, the global settings will not be removed; that's because the global
collection cannot be deleted. However, all the properties in the global collection will be reset to their default values.
That means that any custom rules you have created for the global collection will be deleted.
Although Address Book normalization rules are very similar to voice normalization rules, the two are not
interchangeable: you cannot add voice normalization rules to an Address Book collection, nor can you add Address
Book normalization rules to a dial plan. That means, in some cases, you might need to create identical rules: one for
assignment to Address Book servers, the other for assignment to dial plans.

Examples
-------------------------- Example 1 --------------------------

Remove-CsAddressBookNormalizationConfiguration -Identity "site:Redmond"

The command shown in Example 1 deletes the Address Book normalization configuration settings currently applied
to the Redmond site. After this collection has been deleted, Address Book servers in the Redmond site will use the
global configuration settings to handle phone number normalization.
-------------------------- Example 2 --------------------------

Get-CsAddressBookNormalizationConfiguration -Filter "site:*" | Remove-CsAddressBookNormalizationConfiguration

In Example 2, all the Address Book normalization configuration settings applied to the site scope are deleted. To do
this, the command first uses the Get-CsAddressBookNormalizationConfiguration cmdlet and the Filter parameter to
return a collection of all the configuration settings applied to the site scope. This collection is then piped to the
Remove-CsAddressBookNormalizationConfiguration cmdlet, which removes each item in the collection. When this
command completes, the deployment will be limited to the global collection of Address Book normalization
settings.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of Address Book configuration settings to be removed. For example:
-Identity "site:Redmond"

Note that you cannot use wildcards when specifying the collection to be removed.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsAddressBookNormalizationConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings object.

Outputs
None. Instead, the Remove-CsAddressBookNormalizationConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings object.

Related Links
Get-CsAddressBookNormalizationConfiguration
New -CsAddressBookNormalizationConfiguration
Set-CsAddressBookNormalizationConfiguration
Import-CsCompanyPhoneNormalizationRules
minutes to read • Edit Online

Remove-CsAddressBookNormalizationRule
In ths Article

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.

Syntax
Remove-CsAddressBookNormalizationRule [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. (Note that an understanding of regular expressions is helpful
in order to understand what normalization rules do and how they do it.) The Address Book normalization rules
handle these conversions and translations for the Address Book server.
Although Address Book normalization rules are very similar to voice normalization rules, the two are not
interchangeable: you cannot add voice normalization rules to an Address Book collection, nor can you add Address
Book normalization rules to a dial plan. That means, in some cases, you might need to create identical rules: one for
assignment to Address Book server, the other for assignment to dial plans.

Examples
-------------------------- Example 1 --------------------------

Remove-CsAddressBookNormalizationRule -Identity "Global/Generic_All"

The command shown in Example 1 removes the Generic_All normalization rule from the global collection of
Address Book normalization rules.
-------------------------- Example 2 --------------------------

Get-CsAddressBookNormalizationRule -Identity "site:Redmond" | Remove-CsAddressBookNormalizationRule

In Example 2, all the normalization rules are removed from the collection of Address Book normalization rules
assigned to the Redmond site. To do this, the Get-CsAddressBookNormalizationRule cmdlet is first used to retrieve all
the rules assigned to the Redmond site. Those rules are then piped to and deleted by, the
Remove-CsAddressBookNormalizationRule cmdlet. When the command finishes running the normalization rules
collection for the Redmond site will still exist, but the collection will no longer contain any rules.
-------------------------- Example 3 --------------------------
Get-CsAddressBookNormalizationRule | Where-Object {$_.Pattern -eq "E164"} | Remove-
CsAddressBookNormalizationRule

Example 3 removes all Address Book normalization rules where the Pattern property is equal to E164. To carry out
this task, the command first uses Get-CsAddressBookNormalizationRule to return a collection of all the available
normalization rules. That collection is then piped to the Where-Object cmdlet, which picks out only those rules
where the Pattern property is equal to E164. Any rules that meet that criterion are then piped to the
Remove-CsAddressBookNormalizationRule cmdlet and are deleted.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the rule being removed. The Identity specified must include the scope followed by a slash
followed by the name; for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
The Remove-CsAddressBookNormalizationRule cmdlet accepts pipelined input of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated
object.

Outputs
None. Instead, the Remove-CsAddressBookNormalizationRule cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated
object.

Related Links
Get-CsAddressBookNormalizationRule
New -CsAddressBookNormalizationRule
Set-CsAddressBookNormalizationRule
minutes to read • Edit Online

Remove-CsAdminRole
In ths Article

Removes an existing role-based access control (RBAC ) role. RBAC roles are used to specify the management tasks
that users are allowed to carry out and to determine the scope in which users will be allowed to perform these
tasks. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsAdminRole [-Identity] <String> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Remove-CsAdminRole [-Filter <String>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Remove-CsAdminRole -Sid <String> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
RBAC enables administrators to delegate control of specific management tasks in Skype for Business Server. For
example, instead of granting your organization's help desk full administrator privileges you can give these
employees very specific rights: the right to manage only user accounts; the right to manage only Enterprise Voice
components and the right to manage only archiving and Archiving Server. In addition, these rights can be limited in
scope: someone can be given the right to manage Enterprise Voice, but only in the Redmond site; someone else can
be given the right to manage users, but only if those user accounts are in the Finance organizational unit (OU ).
The Skype for Business Server implementation of RBAC is based on two key elements: Active Directory security
groups and Windows PowerShell cmdlets. When you install Skype for Business Server, a number of universal
security groups, such as CsAdministrator, CsArchivingAdministrator and CsViewOnlyAdministrator, are created for
you. These universal security groups have a one-to-one correspondence with RBAC roles, which means that any
user who is in the CsArchivingAdministrator security group has all of the rights granted to the
CsArchivingAdministrator RBAC role. In turn, the rights granted to an RBAC role are based on the cmdlets
assigned to that role (cmdlets can be assigned to multiple RBAC roles). For example, suppose a role has been
assigned the following cmdlets:
Get-ArchivingPolicy

Grant-ArchivingPolicy

New-ArchivingPolicy

Remove-ArchivingPolicy

Set-ArchivingPolicy

Get-ArchivingConfiguration
New-ArchivingConfiguration

Remove-ArchivingConfiguration

Set-ArchivingConfiguration

Get-CsUser

Export-CsArchivingData

Get-CsComputer

Get-CsPool

Get-CsService

Get-CsSite

The preceding list represents the only cmdlets that a user assigned a hypothetical RBAC role is allowed to run in a
remote session of the Windows PowerShell command-line interface. If the user tries to run the Disable-CsUser
cmdlet that command will fail because users assigned the hypothetical role do not have the right to run the
Disable-CsUser cmdlet. This applies to the Skype for Business Server Control Panel as well. For example, an
Archiving Administrator cannot disable a user by using the Skype for Business Server Control Panel because the
Skype for Business Server Control Panel abides by RBAC roles. (Any time you run a command in Skype for
Business Server Control Panel you are actually calling a Windows PowerShell cmdlet.) If you are not allowed to run
the Disable-CsUser cmdlet, it won't matter whether you directly run that cmdlet from Windows PowerShell or if
you indirectly run the cmdlet from within the Skype for Business Server Control Panel: the command will fail.)
Note that RBAC applies only to remote management. If you are logged on to a computer running Skype for
Business Server and you open the Lync Server Management Shell, RBAC roles will not be enforced. Instead,
security is enforced primarily through the security groups RTCUniversalServerAdmins; RTCUniversalUserAdmins
and RTCUniversalReadOnlyAdmins.
When you install Skype for Business Server, Setup creates several built-in RBAC roles that cover common
administrative areas such as voice administration, user management and Response Group administration. These
built-in roles cannot be modified in any way: you cannot add or remove cmdlets to the roles and you cannot delete
these roles. (Any attempt to delete a built-in role will result in an error message.) However, you can use the built-in
roles to create custom RBAC roles. These custom roles can then be modified by changing the administrative
scopes; for example, you can limit the role to managing user accounts with a particular Active Directory OU.
Any custom roles you create can be deleted by using the Remove-CsAdminRole cmdlet. Note that the
Remove-CsAdminRole cmdlet will not delete the Active Directory security group that corresponds to the custom role,
nor will it remove any of the members who have been assigned to the group. Instead, the cmdlet simply ensures
that this custom role cannot be used to delegate control of Skype for Business Server.
When you delete an RBAC role, Windows PowerShell will respond by asking if you are sure you want to delete this
role; if you do not respond to this prompt (or do not respond by saying Yes) then the role will not be deleted. To
avoid these confirmation prompts, use the Confirm parameter and set the parameter value to $False:
Remove-CsAdminRole RedmondAdministrators -Confirm:$False

Examples
-------------------------- Example 1 ------------------------

Remove-CsAdminRole -Identity "RedmondHelpDesk"


The command shown in Example 1 deletes the RBAC role with the Identity RedmondHelpDesk.
-------------------------- Example 2 ------------------------

Remove-CsAdminRole -Filter "*Redmond*"

Example 2 deletes all of the RBAC roles that have the string value "Redmond" somewhere in their Identity.
-------------------------- Example 3 ------------------------

Get-CsAdminRole | Where-Object {$_.IsStandardRole -eq $False} | Remove-CsAdminRole

In Example 3, the command deletes all of the custom RBAC roles that have been created for use in your
organization. To do this, the command first calls the Get-CsAdminRole cmdlet without any parameters; that returns a
collection of the RBAC roles. This collection is then piped to the Where-Object cmdlet, which selects only those
roles where the IsStandardRole property is equal to False. By definition, any role meeting that criterion is a custom
role. In turn, those custom roles are piped to and deleted by, the Remove-CsAdminRole cmdlet.

Parameters
-Confirm
Enables you to bypass the confirmation prompt that appears when you try to delete an RBAC role. To bypass the
prompt, include the Confirm parameter and set the parameter value to $False:
Remove-CsAdminRole RedmondAdministrators -Confirm:$False

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Enables you to use wildcards in order to specify the custom RBAC roles to be removed. For example, to remove all
the custom roles that include the string value "Redmond" in their Identity, you can use this syntax:
-Filter "*Redmond*" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the RBAC role to be deleted. The Identity for an RBAC role must be the same as the
SamAccountName for the Active Directory universal security group associated with that role. For example, the
Help Desk role has an Identity equal to CsHelpDesk; CsHelpDesk is also the SamAccountName of the Active
Directory security group associated with that role.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Sid
Enables you to use a Security Identifier (SID ) to specify the RBAC role to be deleted. SIDs are assigned by Skype
for Business Server at the time that the RBAC role is created and look similar to this: S -1-5-21-1573807623-
1597889489-1765977225-1145. The SID for a given RBAC role can be retrieved by using the Get-CsAdminRole
cmdlet.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Remove-CsAdminRole cmdlet accepts pipelined
input of user objects.

Outputs
The Remove-CsAdminRole cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role object.
minutes to read • Edit Online

Remove-CsAllowedDomain
In ths Article

Removes a domain from the list of domains approved for federation. This cmdlet was introduced in Lync Server
2010.

Syntax
Remove-CsAllowedDomain [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications and otherwise communicate with one another by using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider
and 3) federation between your organization and a third-party hosting provider.
Setting up direct federation with another organization involves several tasks. To begin with, you must enable your
servers running the Skype for Business Server Access Edge service to allow federation. In addition, the other
organization must enable federation with you; federation cannot be established unless both parties agree to the
relationship.
To set up a federated relationship you might also need to manage two federation-related lists: the allowed list and
the blocked list. The allowed list represents the organizations you have chosen to federate with. If a domain appears
on the allowed list then (depending on your configuration settings) your users will be able to exchange instant
messages and presence information with users who have accounts in that federated domain. Conversely, the
blocked list represents domains that users are expressly forbidden from federating with; for example, messages
sent from a blocked domain will automatically be rejected by Skype for Business Server.
If you want to discontinue a federation relationship, you can use the Remove-CsAllowedDomain cmdlet to remove the
appropriate domain from the list of allowed domains and then, if appropriate, use the New-CsBlockedDomain cmdlet
to add the domain to the blocked domain list. Note that a domain cannot simultaneously appear on both the
allowed and the blocked lists.

Examples
-------------------------- Example 1 ------------------------

Remove-CsAllowedDomain -Identity fabrikam.com

The command shown in Example 1 removes the domain fabrikam.com from the list of allowed domains.
-------------------------- Example 2 ------------------------
Get-CsAllowedDomain -Filter *fabrikam* | Remove-CsAllowedDomain

In Example 2, all of the domains that have the string value "fabrikam" somewhere in their Identity are removed
from the list of allowed domains. To do this, the command first uses the Get-CsAllowedDomain cmdlet and the Filter
parameter to return a collection of domains that have the string value "fabrikam" somewhere in their Identity (the
Identity is the only property you can filter for). That filtered collection is then piped to the Remove-CsAllowedDomain
cmdlet, which, in turn, removes all of the items in the filtered collection from the list of allowed domains.
-------------------------- Example 3 ------------------------

Get-CsAllowedDomain | Where-Object {$_.ProxyFqdn -eq $Null} | Remove-CsAllowedDomain

Example 3 removes all the domains without an identified proxy server from the list of allowed domains. To carry
out this task, the Get-CsAllowedDomain cmdlet is called to return a collection of all the domains currently on the
allowed list. That collection is piped to the Where-Object cmdlet, which picks out only those domains where the
ProxyFqdn property is equal to a null value. The filtered collection is then piped to the Remove-CsAllowedDomain
cmdlet, which removes each domain in the collection from the allowed list.
-------------------------- Example 4 ------------------------

Get-CsAllowedDomain | Where-Object {$_.Comment -match "Ken Myer"} | Remove-CsAllowedDomain

In Example 4, all of the domains where the Comment field contains the string value "Ken Myer" are removed from
the list of allowed domains. To do this, the command first uses the Get-CsAllowedDomain cmdlet to retrieve a
collection of all the domains currently on the allowed domains list. This collection is then piped to the Where-Object
cmdlet, which selects only those domains where the Comment property contains the string value "Ken Myer". This
filtered collection is then piped to the Remove-CsAllowedDomain cmdlet, which removes each item in the collection
from the list of allowed domains.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Fully qualified domain name (FQDN ) of the domain to be removed from the allowed list; for example,
fabrikam.com. You cannot use wildcards when specifying a domain Identity.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain object. The Remove-CsAllowedDomain
cmdlet accepts pipelined instances of the allowed domain object.

Outputs
Deletes instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain object.

Related Links
Get-CsAllowedDomain
New -CsAllowedDomain
Set-CsAccessEdgeConfiguration
Set-CsAllowedDomain
minutes to read • Edit Online

Remove-CsAnalogDevice
In ths Article

Removes an existing device from the collection of analog devices that can be managed by using Skype for Business
Server. An analog device is a telephone or other device that is connected to the public switched telephone network
(PSTN ). This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsAnalogDevice [-Identity] <UserIdParameter> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Analog devices include telephones, fax machines, modems and teletype/telecommunication device for the deaf
(TTY/TDD ) devices connected to the public switched telephone network (PSTN ). Unlike devices that take advantage
of Enterprise Voice (the Voice over Internet Protocol (VoIP ) solution offered by Microsoft), analog devices do not
transmit information by using digital packets. Instead, information is transmitted by using a continuous signal. This
signal is commonly referred to as an analog signal; hence the term "analog devices."
In order to enable administrators to manage analog devices for organizations, Skype for Business Server lets you
associate analog devices with Active Directory contact objects. After a device has been associated with a contact
object, you can then manage the analog device by assigning policies and dial plans to the contact.
Over time, you might need to delete a contact object associated with an analog device. For example, if you phase
out all of your fax machines, you will no longer need to have analog devices (and contact objects) associated with
those machines. The Remove-CsAnalogDevice cmdlet provides a way for you to delete analog devices. When you run
this cmdlet, the device will be deleted from the list of analog devices returned by the Get-CsAnalogDevice cmdlet.
Additionally, the contact object associated with that device will be deleted from Active Directory Domain Services.

Examples
-------------------------- Example 1 ------------------------

Remove-CsAnalogDevice -Identity "CN={e5e7daba-394e-46ec-95a1-1f2a9947aad2},CN=Users,DC=litwareinc,DC=com"

Example 1 deletes the analog device that has the Identity CN={e5e7daba-394e-46ec-95a1-
1f2a9947aad2},CN=Users,DC=litwareinc,DC=com.
-------------------------- Example 2 ------------------------

Get-CsAnalogDevice -Filter {DisplayName -eq "Building 14 Receptionist"} | Remove-CsAnalogDevice

The command shown in Example 2 deletes any analog devices that have been assigned the display name "Building
14 Receptionist". To carry out this task, the command first calls the Get-CsAnalogDevice cmdlet along with the Filter
parameter; the filter value {DisplayName -eq "Building 14 Receptionist"} limits the returned objects to analog
devices where the DisplayName property is equal to "Building 14 Receptionist". The returned items are then piped
to and removed by, the Remove-CsAnalogDevice cmdlet.
-------------------------- Example 3 ------------------------

Get-CsAnalogDevice -Filter {VoicePolicy -eq "RedmondVoicePolicy"} | Remove-CsAnalogDevice

Example 3 deletes all of the analog devices that have been assigned the voice policy RedmondVoicePolicy. To do
this, the Get-CsAnalogDevice cmdlet and the Filter parameter are used to retrieve all of the analog devices where
the VoicePolicy property is equal to RedmondVoicePolicy. The filtered collection is then piped to the
Remove-CsAnalogDevice cmdlet, which deletes each item in that collection.

-------------------------- Example 4 ------------------------

Get-CsAnalogDevice -Filter {AnalogFax -eq $True} | Remove-CsAnalogDevice

The command shown in Example 4 removes all the analog fax machines currently in use in the organization. To
carry out this task, the Get-CsAnalogDevice cmdlet is called first along with the Filter parameter; the filter value
{AnalogFax -eq $True} picks out only those devices where the AnalogFax property is equal to True. In turn, this
filtered collection is piped to the Remove-CsAnalogDevice cmdlet, which removes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the analog device to be removed. Analog devices are identified by using the Active Directory
distinguished name (DN ) of the associated contact object. By default, these devices, use a globally unique identifier
(GUID ) as their common name; that means analog devices will typically have an Identity similar to this: CN=
{ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com. Because of that you might
find it easier to retrieve analog devices by using the Get-CsAnalogDevice cmdlet and then piping the returned
objects to the Remove-CsAnalogDevice cmdlet.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact object. The Remove-CsAnalogDevice
cmdlet accepts pipelined instances of the analog device object.

Outputs
The Remove-CsAnalogDevice cmdlet deletes existing instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact object.

Related Links
Get-CsAnalogDevice
Move-CsAnalogDevice
New -CsAnalogDevice
Set-CsAnalogDevice
minutes to read • Edit Online

Remove-CsAnnouncement
In ths Article

Removes an existing Skype for Business Server announcement. Announcements are played when users dial a valid
but unassigned phone number. An announcement can be a message (such as "This number is temporarily out of
service") or a busy signal. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsAnnouncement [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
An organization can own phone numbers that are not assigned to users or phones, but that are still valid numbers
that can be called. By default when someone dials one of those numbers, that person will receive a busy signal and
the call may result in an error returned to the SIP client. By applying announcement settings to unassigned
numbers, administrators have the option of playing a message, returning a busy signal, or redirecting the call. This
cmdlet removes one or more of these announcement settings.
If you attempt to remove an announcement that is associated with an unassigned number range, by default you'll
receive a prompt asking if you really want to remove the announcement. If you delete the announcement, the
AnnouncementName property of that range will be displayed as Null and no announcement will be played when
those numbers are reached, only a busy signal will be heard. However, the AnnouncementId property value (the
GUID of the Announcement that was removed) will remain visible.

Examples
-------------------------- Example 1 ------------------------

Remove-CsAnnouncement -Identity "ApplicationServer:Redmond.litwareinc.com/1951f734-c80f-4fb2-965d-51807c792b90"

Example 1 removes the announcement that has the Identity


"ApplicationServer:Redmond.litwareinc.com/1951f734-c80f-4fb2-965d-51807c792b90". Because Identities must
be unique, this command will remove, at most, a single announcement.
-------------------------- Example 2 ------------------------

Remove-CsAnnouncement -Identity "ApplicationServer:Redmond.litwareinc.com"

In Example 2, all the announcements that have been applied to the service
ApplicationServer:Redmond.litwareinc.com are deleted. To do this, the Remove-CsAnnouncement cmdlet is called along
with the Identity parameter. Specifying the parameter value "ApplicationServer:Redmond.litwareinc.com" (without
the appended GUID that identifies a unique announcement) removes all the announcements configured for the
specified service.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the Announcement you want to remove. The value for the Identity parameter can be
supplied in one of two ways:
Enter the Identity of the Application service for the announcements you want to remove. This will remove all
announcements configured with the given service Identity. For example,
ApplicationServer:Redmond.litwareinc.com.
Enter the full Identity of the single announcement you want to remove. This value will always be in the format
<serviceID>/<GUID>, where serviceID is the Identity of the Application Server running the Announcement
Service and GUID is a globally unique identifier associated with this announcement. For example:
ApplicationServer:Redmond.litwareinc.com/bef5fa3b-3c97-4af0-abe7-611deee7616c.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
Deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement object.

Related Links
New -CsAnnouncement
Set-CsAnnouncement
Get-CsAnnouncement
minutes to read • Edit Online

Remove-CsArchivingConfiguration
In ths Article

Removes the specified collection of archiving settings. Archiving settings are used to enable or disable the
automatic saving of instant messaging (IM ) sessions and to optionally block any instant message that cannot be
archived. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsArchivingConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Many organizations find it useful to keep a transcript of all the IM sessions and conferences their users participate
in. For other organizations, it's mandatory to keep such transcripts; for example, many organizations in the financial
world are required by law to keep copies of all their electronic communications.
Skype for Business Server gives you flexibility when it comes to archiving IM and web conferencing sessions. If you
have deployed Archiving Server, you can use the various CsArchivingConfiguration cmdlets to enable and disable
IM session archiving and to manage your archiving database. You can also suspend IM should archiving fail; this
helps to ensure that you keep a record of all your electronic communications.
When you install Skype for Business Server, a collection of global archiving settings will be created for you; by
default, these settings will apply to your entire organization. Alternatively, you can use the
New-CsArchivingConfiguration cmdlet to create custom configuration settings on a site-by-site basis. Any site-
specific settings created using the New-CsArchivingConfiguration cmdlet can later be removed by using the
Remove-CsArchivingConfiguration cmdlet. When you remove the settings for a site, the affected site will then be
governed by the global settings.
Note that you can also run the Remove-CsArchivingConfiguration cmdlet against the global archiving settings. In that
case, however, the settings will not be removed; that's because you cannot delete the global settings. Instead, all the
global properties will be reset to their default values. For example, suppose you have enabled IM session archiving
at the global scope; sometime later, you run this command:
Remove-CsArchivingConfiguration -Identity global

Running that command will reset the property values for the global settings; that means that EnableArchiving will
revert to its default value of None. In turn, that will disable archiving at the global scope.

Examples
-------------------------- Example 1 --------------------------

Remove-CsArchivingConfiguration -Identity site:Redmond


Example 1 uses the Remove-CsArchivingConfiguration cmdlet to delete the archiving configuration settings with the
identity site:Redmond.
-------------------------- Example 2 --------------------------

Get-CsArchivingConfiguration -Filter "site:*" | Remove-CsArchivingConfiguration

The command shown in Example 2 removes all of the archiving configuration settings that have been configured at
the site scope. To do this, the command first uses the Get-CsArchivingConfiguration cmdlet and the Filter parameter
to return a collection of all of the settings configured at the site scope. This is done by using the filter value "site:*",
which limits the returned data to settings that have an Identity that begins with the characters "site:". The filtered
collection is then piped to the Remove-CsArchivingConfiguration cmdlet, which deletes each item in that collection.
-------------------------- Example 3 --------------------------

Get-CsArchivingConfiguration | Where-Object {$_.EnableArchiving -eq "None"} | Remove-CsArchivingConfiguration

Example 3 deletes all the archiving configuration settings where the EnableArchiving property has been set to
"None". To carry out this task, the Get-CsArchivingConfiguration cmdlet is called without any parameters in order
to return a collection of all the archiving settings configured for use in the organization. This collection is then piped
to the Where-Object cmdlet, which picks out only those settings where the EnableArchiving property is equal to
"None". The filtered collection is then piped to the Remove-CsArchivingConfiguration cmdlet, which deletes each
item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of archiving configuration settings to be removed. To remove the global
collection, use the following syntax: -Identity global . (Note that you cannot actually remove the global settings;
instead, you can only reset the properties to their default values.) To remove a site collection, use syntax similar to
this: -Identity site:Redmond . To remove settings configured for an individual Registrar pool syntax like this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Note that pool-level settings are available only in Skype for Business Server.
You cannot use wildcards when specifying a policy Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings object. The
Remove-CsArchivingConfiguration cmdlet accepts pipelined input of archiving configuration objects.

Outputs
The Remove-CsArchivingConfiguration cmdlet does not return a value or object. Instead, the cmdlet removes
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings object.

Related Links
Get-CsArchivingConfiguration
New -CsArchivingConfiguration
Set-CsArchivingConfiguration
Set-CsArchivingServer
minutes to read • Edit Online

Remove-CsArchivingPolicy
In ths Article

Removes the specified instant messaging (IM ) archiving policy. IM archiving policies determine whether Skype for
Business Server will automatically save all IM sessions that take place between internal users and/or all IM sessions
between internal users and federated partners. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsArchivingPolicy [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>]
[<CommonParameters>]

Description
Many organizations find it useful to keep an archive of all of the IM sessions that their users take part in; other
organizations are legally required to keep such an archive. In order to archive IM sessions with Skype for Business
Server, you must perform two steps. First, you need to enable archiving at the global and/or the site scope by using
the Set-CsArchivingConfiguration cmdlet. This gives you the ability to archive IM sessions; however, it does not
automatically begin archiving those sessions.
Instead, and to actually save transcripts of your IM sessions, you must complete step 2: create one or more
archiving policies. These policies determine which users will have their IM sessions recorded, in addition to which
type of IM sessions (internal and/or external) will be archived. Internal IM sessions are sessions where all the
participants are authenticated users who have Active Directory accounts within your organization; external IM
sessions are sessions where at least one participant is an unauthenticated user who does not have an Active
Directory account within your organization. You can choose to archive only internal sessions, only external sessions,
or both internal and external sessions.
Archiving policies can be assigned to the global scope or to the site scope. In addition, these policies can be
assigned to the per-user scope and then applied to a specific user or a specific set of users. For example, suppose
your global policy archives only internal IM sessions for all of your users. In that case, you might create a second
policy, one that archives both internal and external sessions and apply that policy only to your sales staff. Because
per-user policies take precedence over global and site policies, members of the sales staff will have all their IM
sessions archived. Other users (users who are not part of the sales department and are not affected by the sales
policy) will have only their internal IM sessions archived.
The Remove-CsArchivingPolicy cmdlet enables you to delete an archiving policy that has been created for use in
your organization. If you delete a per-user policy, all of the users who have been assigned that policy will
automatically fall under the jurisdiction of the relevant site policy. If there is no site policy, then those users will be
governed by the global policy. If you remove a site policy, users who were affected by that policy will automatically
fall under the jurisdiction of the global policy.
Note that you can also run the Remove-CsArchivingPolicy cmdlet against the global policy; however, the global
policy cannot be removed. Instead, running the Remove-CsArchivingPolicy cmdlet against the global policy causes
all the properties in that policy to be reset to their default values; that means that neither internal nor external IM
sessions will be archived. That's because the default value for both these properties (ArchiveInternal and
ArchiveExternal) is False.

Examples
-------------------------- Example 1 --------------------------

Remove-CsArchivingPolicy -Identity site:Redmond

In Example 1, the Remove-CsArchivingPolicy cmdlet is used to delete the policy with the Identity site:Redmond. Note
that, when a policy configured at the site scope is deleted, users previously managed by the site policy will
automatically be governed by the global archiving policy instead.
-------------------------- Example 2 --------------------------

Get-CsArchivingPolicy -Filter site:* | Remove-CsArchivingPolicy

In Example 2, all of the archiving policies that have been configured at the site scope are removed. This is done by
using the Get-CsArchivingPolicy cmdlet and the Filter parameter to retrieve a collection of all the archiving policies
assigned at the site scope. This is done by using the filter value "site:*", which instructs the Get-CsArchivingPolicy
cmdlet to return only those policies that have an Identity that begins with the string value "site:". After the collection
has been returned, the data is piped to the Remove-CsArchivingPolicy cmdlet, which deletes all the policies in the
collection.
-------------------------- Example 3 --------------------------

Get-CsArchivingPolicy | Where-Object {$_.ArchiveExternal -eq $False} | Remove-CsArchivingPolicy

Example 3 deletes all the archiving policies where the ArchiveExternal property is set to False. To do this, the
Get-CsArchivingPolicy cmdlet is first used to return a collection of all the archiving policies configured for use in
the organization. That collection is then piped to the Where-Object cmdlet, which picks out those policies where the
ArchiveExternal property is equal to False. The filtered collection is then passed to the Remove-CsArchivingPolicy
cmdlet, which deletes each policy in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If this parameter is present, the policy will automatically be removed even if it is currently assigned to at least one
use. If this parameter is not present, then the Remove-CsArchivingPolicy cmdlet will not automatically remove a per-
user policy that is assigned to at least one user. Instead, a confirmation prompt will appear asking if you are sure
that you want to remove the policy. You must answer yes (by pressing the Y key) before the command will continue
and the policy will be removed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the archiving policy to be removed. Archiving policies can be configured at the global, site, or
per-user scopes. To remove the global policy, use this syntax: -Identity global . (Note that the global policy cannot
actually be removed. Instead, all of the policy properties will be reset to their default values.)
To remove a site policy, use syntax similar to this: -Identity site:Redmond . To remove a per-user policy, use syntax
similar to this: -Identity SalesArchivingPolicy .

Wildcards are not allowed when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the archiving policy is
being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.IM.IMArchivingPolicy object. The Remove-CsArchivingPolicy
cmdlet accepts pipelined input of archiving policy objects.

Outputs
The Remove-CsArchivingPolicy cmdlet does not return a value or object. Instead, the cmdlet removes instances of
the Microsoft.Rtc.Management.WritableConfig.Policy.IM.IMArchivingPolicy object.

Related Links
Get-CsArchivingPolicy
Grant-CsArchivingPolicy
New -CsArchivingPolicy
Set-CsArchivingPolicy
minutes to read • Edit Online

Remove-CsAutoAttendant
In ths Article

Use the Remove-CsAutoAttendant cmdlet to delete an Auto Attendant (AA).

Syntax
Remove-CsAutoAttendant -Identity <String> [-Tenant <Guid>] [<CommonParameters>]

Description
The Remove-CsAutoAttendant cmdlet deletes an AA that is specified by the Identity parameter.

Examples
-------------------------- Example 1 --------------------------

Remove-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5"

This example deletes the AA that has a identity of fa9081d6-b4f3-5c96-baec-0b00077709e5.

Parameters
-Identity
The identity for the AA to be removed.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The Remove-CsAutoAttendant cmdlet accepts a string as the Identity parameter.

Outputs
None

Related Links
New -CsAutoAttendant
Get-CsAutoAttendant
Set-CsAutoAttendant
minutes to read • Edit Online

Remove-CsAutodiscoverConfiguration
In ths Article

Removes a collection of Autodiscover configuration settings. The Autodiscover service provides a way for client
applications to locate key resources such as a user's home pool or the URL for joining a dial-in conference. This
cmdlet was introduced in the cumulative update for Lync Server 2010: November 2011.

Syntax
Remove-CsAutodiscoverConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
For client applications to make the most effective use of Skype for Business Server those applications need to know
the location of key Skype for Business Server components. For example, authenticated users must be able to locate
their home pool; after all, they can only be authenticated by that home pool. Likewise, unauthenticated users must
be able to do such things as locate the URL used for joining a conference.
If all your users logged on from behind the organization's firewall discovering these locations would be a relatively
simple task. However, this relatively simple task gets more and more complicated as users access the system from
external locations.
This is especially true in split-domain scenarios, scenarios in which some of an organization's users have accounts
on the on-premises version of Skype for Business Server while other users have accounts on Skype for Business
Online. In cases such as this, user accounts might be located in different Active Directory forests. That can pose a
problem: for example, if a US -based user logs on from Europe the system must be able to recognize his or her
forest and then refer the logon request to the proper pool.
The Autodiscover service was introduced in the cumulative update for Lync Server: November 2011 in order to
address these issues. When a client application attempts to access Skype for Business Server, the Autodiscover
service parses the client SIP address and then redirects that request to the appropriate pool. Client applications
connect to the Autodiscover service by sending an HTTP request to an Autodiscover URL; these URLs must be
configured by administrators in order for the Autodiscover service to work. (Note that, in addition to configuring
URLs, administrators must also create DNS records that correspond to these URLs.)
Autodiscover URLs are assigned to Autodiscover configuration settings; in turn, these settings can be applied to the
global scope or to the site scope. If you later decide to remove settings assigned to the site scope you can do so by
running the Remove-CsAutoDiscoverConfiguration cmdlet. Note that this cmdlet can also be run against the global
settings. In that case, however, the global settings will not be removed; however, any Autodiscover URLs assigned
to the global collection will be deleted.

Examples
-------------------------- Example 1 --------------------------
Remove-CsAutoDiscoverConfiguration -Identity "site:Redmond"

The command shown in Example 1 deletes the Autodiscover configuration settings for the Redmond site.
-------------------------- Example 2 --------------------------

Get-CsAutoDiscoverConfiguration -Filter "site:*" | Remove-CsAutoDiscoverConfiguration

In Example 2, all the Autodiscover configurations settings assigned to the site scope are removed. To do this, the
command first uses the Get-CsAutoDiscoverConfiguration cmdlet and the Filter parameter to return a collection of
configuration settings; the filter value "site:*" ensures that only settings that have an Identity that begins with the
string value "site:" are returned. That filtered collection is then piped to the Remove-CsAutoDiscoverConfiguration
cmdlet, which deletes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Autodiscover settings to be removed. Autodiscover settings can be configured at the
global or the site scope. To "remove" the global policy, use this syntax: -Identity global . (Note that the global
settings cannot actually be removed. Instead, all the properties in the global settings will be reset to their default
values.)
To remove settings configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

Note that wildcards are not allowed when specifying an Identity.


Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WriteableConfig.Settings.AutoDiscoverConfiguration.AutoDiscoverConfiguration. The
Remove-CsAutoDiscoverConfiguration cmdlet accepts pipelined input of AutoDiscoverConfiguration objects

Outputs
None. Instead, the cmdlet deletes instances of the
Microsoft.Rtc.Management.WriteableConfig.Settings.AutoDiscoverConfiguration.AutoDiscoverConfiguration
object.
minutes to read • Edit Online

Remove-CsAVEdgeConfiguration
In ths Article

Enables you to remove an existing collection of configuration settings applied to computers running the Access
Edge service (these computers are also known as A/V Edge servers). An A/V Edge server enables internal users to
share audio and video data with external users (that is, users who are not logged on to your internal network). This
cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsAVEdgeConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
An A/V Edge server provides a way for audio and video traffic to be exchanged across an organization's firewall.
Among other things, this enables users to use Skype for Business Server across the Internet and then exchange
audio and video data with users who have logged onto the system from inside the firewall. Edge Server
configuration settings can be assigned at the global scope, the site scope and the service scope. The A/V Edge
configuration settings enable administrators to do such things as manage the amount of time that user
authentication is valid before it must be renewed and to limit the amount of bandwidth that can be used by a single
user or a single port.
The Remove-CsAVEdgeConfiguration cmdlet enables you to delete A/V Edge configuration settings that have been
applied to either the site or the service scope. The cmdlet can also be run against the global settings; however, those
global settings will not be deleted. Instead, the properties contained within the global collection will all be reset to
their default values.

Examples
-------------------------- Example 1 ------------------------

Remove-CsAVEdgeConfiguration -Identity site:Redmond

The command shown in Example 1 removes the A/V Edge configuration settings that have the Identity
site:Redmond. After the settings are removed, A/V Edge servers in the Redmond site will be governed by the global
configuration settings.
-------------------------- Example 2 ------------------------

Get-CsAVEdgeConfiguration -Filter "service:*" | Remove-CsAVEdgeConfiguration

In Example 2, all of the A/V Edge configuration settings that have been applied at the service scope are removed. To
do this, the command first calls the Get-CsAVEdgeConfiguration cmdlet along with the Filter parameter; the filter
value "service:*" ensures that only settings configured at the service scope are returned. This filtered collection is
then piped to the Remove-CsAVEdgeConfiguration cmdlet, which deletes each item in the collection.
-------------------------- Example 3 ------------------------

Get-CsAVEdgeConfiguration | Where-Object {$_.MaxBandwidthPerUserKB -lt 5000} | Remove-CsAVEdgeConfiguration

The command shown in Example 3 deletes all of the A/V Edge configuration settings where the value of the
MaxBandwidthPerUserKB property is less than 5,000 kilobits per second. To carry out this task, the command first
uses the Get-CsAVEdgeConfiguration cmdlet without any additional parameters in order to return a collection of all
the A/V Edge settings currently in use in the organization. This collection is piped to the Where-Object cmdlet,
which selects only those settings where the MaxBandwidthPerUserKB property is less than 5000. The filtered
collection is then piped to the Remove-CsAVEdgeConfiguration cmdlet, which deletes each item in that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of A/V Edge configuration settings to be removed. To "remove" the global
collection, use the following syntax: -Identity global . (As noted previously, the global settings cannot be removed;
the properties can only be reset to their default values.) To remove a site collection, use syntax similar to this:
-Identity site:Redmond . Settings configured at the service scope should be referred to using syntax similar to this:

-Identity service:EdgeServer:atl-cs-001.litwareinc.com

You cannot use wildcards when specifying a policy Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings object. The
Remove-CsAVEdgeConfiguration cmdlet accepts pipelined input of media relay settings objects. These objects
retrieved by running the Get-CsAVEdgeConfiguration cmdlet.

Outputs
The Remove-CsAVEdgeConfiguration cmdlet does not return a value or object. Instead, the cmdlet deletes instances of
the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings object.

Related Links
Get-CsAVEdgeConfiguration
New -CsAVEdgeConfiguration
Set-CsAVEdgeConfiguration
minutes to read • Edit Online

Remove-CsBackupServiceConfiguration
In ths Article

Resets the properties in the backup service configuration settings for Skype for Business Server to their default
values. These settings include information about the maximum number of simultaneous Windows Communication
Framework calls that can be made to the backup service as well as the backup service synchronization interval. This
cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsBackupServiceConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
The backup service configuration settings are used to manage pool backups in Skype for Business Server. Note
that Skype for Business Server allows only for a single, global collection of backup configuration settings. Among
other things, that means that all your pools must be backed up using the same synchronization schedule and that
users and groups authorized to backup Pool A are also allowed to backup Pools B, C, D and E.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsBackupServiceConfiguration
cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsBackupServiceConfiguration -Identity "global"

Example 1 resets the backup service configuration settings for Skype for Business Server. Note that even though
Skype for Business Server only uses a single, global collection of backup settings you must still include the Identity
parameter: if you do not, the Remove-CsBackupServiceConfiguration cmdlet will prompt you for the Identity before
continuing.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the backup service configuration settings. Although you can only have a single, global instance
of these settings, you still need to specify an Identity when calling the Remove-CsBackupServiceConfiguration cmdlet:

-Identity global

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsBackupServiceConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.BackupService.BackupServiceConfiguration object.

Outputs
None. Instead, the Remove-CsBackupServiceConfiguration cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.BackupService.BackupServiceConfiguration object.

Related Links
Get-CsBackupServiceConfiguration
Set-CsBackupServiceConfiguration
minutes to read • Edit Online

Remove-CsBandwidthPolicyServiceConfiguration
In ths Article

Removes an existing bandwidth policy service configuration. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsBandwidthPolicyServiceConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Call admission control (CAC ) is a way of determining whether to allow real-time communications sessions, such as
voice or video calls, to be established based on bandwidth constraints. Within the Skype for Business Server
implementation of CAC, regions, sites and subnets are defined within a network along with the relationships and links
between those entities in order to place bandwidth constraints between them. Bandwidth Policy service is the
component that performs CAC functionality in the Skype for Business Server deployment, enabling the decision as to
whether sufficient bandwidth exists for a call to be established. This cmdlet removes a bandwidth policy service
configuration defined at the site level. You can also use the cmdlet to "remove" the global bandwidth policy service;
however, the global service will not actually be removed, it will simply be reset to its default values.

Examples
-------------------------- Example 1 --------------------------

Remove-CsBandwidthPolicyServiceConfiguration -Identity site:Redmond

This example removes the bandwidth policy service configuration defined for the Redmond site (-Identity
site:Redmond).
-------------------------- Example 2 --------------------------

Get-CsBandwidthPolicyServiceConfiguration | Where-Object {$_.EnableLogging -eq $False} | Remove-


CsBandwidthPolicyServiceConfiguration

Example 2 removes all bandwidth policy service configurations where logging is disabled. To accomplish this, the
example begins with a call to the Get-CsBandwidthPolicyServiceConfiguration cmdlet. This will return a collection of all
bandwidth policy service configurations in the Skype for Business Server deployment. This collection is then piped to
the Where-Object cmdlet, which narrows the collection down to only those configurations where the EnableLogging
property is equal to (-eq) False ($False). This leaves a collection of configurations that have logging disabled. This
collection is then piped to the Remove-CsBandwidthPolicyServiceConfiguration cmdlet, which removes every item in the
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the configuration you want to remove. This identifier will consist of the scope (for the global
configuration) or the scope and name (for a site-level configuration, such as site:Redmond).

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicyServiceConfiguration
object. Accepts pipelined input of bandwidth policy service configuration objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicyServiceConfiguration.

Related Links
New-CsBandwidthPolicyServiceConfiguration
Set-CsBandwidthPolicyServiceConfiguration
Get-CsBandwidthPolicyServiceConfiguration
minutes to read • Edit Online

Remove-CsBlockedDomain
In ths Article

Removes a domain from the list of domains that are blocked for federation. By definition, your users are not
allowed to use Skype for Business Server applications to communicate with people from the blocked domain; for
example, users cannot use Skype for Business to exchange instant messages with anyone with a SIP account in a
domain that appears on the blocked list. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsBlockedDomain [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications and otherwise communicate with one another by using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider
and 3) federation between your organization and a third-party hosting provider.
Setting up direct federation with another organization involves several tasks. To begin with, you must enable your
servers running the Skype for Business Server Access Edge service to allow federation. In addition, the other
organization must enable federation with you; federation cannot be established unless both parties agree to the
relationship.
To establish a federated relationship you might also need to manage two federation-related lists: the allowed list
and the blocked list. The allowed list represents the organizations you have chosen to federate with; if a domain
appears on the allowed list then (depending on your configuration settings) your users will be able to exchange
instant messages and presence information with users who have accounts in that federated domain. Conversely,
the blocked list represents domains that users are expressly forbidden from federating with; for example, messages
sent from a blocked domain will automatically be rejected by Skype for Business Server.
Of course, messages are rejected only as long as the domain appears on the blocked list; after a domain has been
removed from the list you can then establish a federated relationship with that domain. To enable federation with a
previously-prohibited domain, you must first use the Remove-CsBlockedDomain cmdlet to remove that domain from
the list of blocked domains. A domain cannot simultaneously appear on both the allowed and the blocked lists.

Examples
-------------------------- Example 1 ------------------------

Remove-CsBlockedDomain -Identity fabrikam.com


The command shown in Example 1 removes the domain fabrikam.com from the list of blocked domains. This is
done by calling the Remove-CsBlockedDomain cmdlet and specifying the domain with the Identity "fabrikam.com".
-------------------------- Example 2 ------------------------

Get-CsBlockedDomain -Filter *fabrikam* | Remove-CsBlockedDomain

In Example 2, all the domains that have an Identity that includes the string value "fabrikam" are removed from the
list of blocked domains. To do this, the Get-CsBlockedDomain cmdlet and the Filter parameter are first used to return
a collection of all the blocked domains that include the string "fabrikam" somewhere in their Identity (for example,
fabrikam.com, fabrikam.org, or us.fabrikam.net). That collection is then piped to the Remove-CsBlockedDomain cmdlet,
which deletes each item in the collection from the list of blocked domains.
-------------------------- Example 3 ------------------------

Get-CsBlockedDomain | Remove-CsBlockedDomain

The command shown in Example 3 completely clears the list of blocked domains. This is done by first calling the
Get-CsBlockedDomain cmdlet without any parameters; that results in a returned collection that consists of all the
domains currently on the blocked domain list. That collection is then piped to the Remove-CsBlockedDomain cmdlet,
which removes each item in the collection from the blocked domain list. The net result: no domains will be left on
the blocked domain list.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the domain to be removed from the blocked list; for example,
fabrikam.com. Note that you cannot use wildcards when specifying a domain Identity.
Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain object. The Remove-CsBlockedDomain
cmdlet accepts pipelined instances of the blocked domain object.

Outputs
Deletes instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain object.

Related Links
Get-CsBlockedDomain
New -CsBlockedDomain
Set-CsAccessEdgeConfiguration
Set-CsBlockedDomain
minutes to read • Edit Online

Remove-CsBusyOptions
In ths Article

Removes the settings for processing of incoming calls for users who are already engaged in another
communication stream. This cmdlet was introduced in Skype for Business Server 2015 June 2016 Cumulative
Update.

Syntax
Remove-CsBusyOptions [-Identity] <UserIdParameter> [-Confirm] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
This cmdlet removes configuration information about Busy Options for a specific user.

Examples
-------------------------- Example 1 --------------------------

Remove-CsBusyOptions -Identity "Ken Myer"

This example removes Busy Options for "Ken Myer".

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be modified. User Identities can be specified using one of four formats:
1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon name, in
the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for
example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the display name as the user Identity. For example, the
Identity "Smith" returns all the users who have a display name that ends with the string value "Smith".
Type: UserIdParameter
Required: True
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any
output.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter object.

Outputs
This cmdlet does not return any objects.

Related Links
Get-CsBusyOptions
Set-CsBusyOptions
minutes to read • Edit Online

Remove-CsCallerIdPolicy
In ths Article

Provide the topic introduction here.

Syntax
Remove-CsCallerIdPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
PARAMVALUE: XdsIdentity

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Remove-CsCallingLineIdentity
In ths Article

Provide the topic introduction here.

Syntax
Remove-CsCallingLineIdentity [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
PARAMVALUE: XdsIdentity

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Remove-CsCallParkOrbit
In ths Article

Removes a specific call park orbit range. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsCallParkOrbit [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
The Remove-CsCallParkOrbit cmdlet deletes the call park orbit range with the name passed to the Identity
parameter (this parameter is required). Each call park orbit within an organization must have a unique range of
numbers. Removing a call park orbit frees up the range that was in that call park orbit. The freed numbers can then
be used in a newly defined call park orbit.

Examples
-------------------------- Example 1 --------------------------

Remove-CsCallParkOrbit -Identity "Redmond CPO 1"

In this example, the Remove-CsCallParkOrbit cmdlet is used to delete the call park orbit range with the name
Redmond CPO 1.
-------------------------- Example 2 --------------------------

Get-CsCallParkOrbit | Remove-CsCallParkOrbit

The command in this example removes all call park orbit ranges that have been defined for an organization. The
command first calls the Get-CsCallParkOrbit cmdlet with no parameters to retrieve all the defined call park orbit
ranges. It then pipes that collection of call park orbit ranges to the Remove-CsCallParkOrbit cmdlet, which removes
each call park orbit.
-------------------------- Example 3 --------------------------

Get-CsCallParkOrbit -Filter *Redmond* | Remove-CsCallParkOrbit

This command removes all call park orbit ranges that have an identity that includes the string "Redmond", such as
"Redmond 501", "CP Redmond 1", and "ARedmond". The command first calls the Get-CsCallParkOrbit cmdlet with
the Filter parameter to retrieve all call park orbit ranges that have an Identity with the string Redmond in it. This
collection is piped to the Remove-CsCallParkOrbit cmdlet, which removes everything in the collection.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The name of the call park orbit range. This name was assigned by the administrator when the call park orbit range
was defined.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Voice.Helpers.DisplayCallParkOrbit object. Accepts pipelined input of call park orbit
objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.Voice.Helpers.DisplayCallParkOrbit.
Related Links
New -CsCallParkOrbit
Set-CsCallParkOrbit
Get-CsCallParkOrbit
minutes to read • Edit Online

Remove-CsCallViaWorkPolicy
In ths Article

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.

Syntax
Remove-CsCallViaWorkPolicy [-Identity] <XdsIdentity> [-Confirm] [-Force] [-Tenant <Guid>] [-WhatIf]
[<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Remove-CsCallViaWorkPolicy -Identity CvWStandardPolicy

This example removes a per-user scoped policy named "CvWStandardPolicy".

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the policy to be removed. Call via work policies can be specified at the global, site, or per-
user scope.
The global policy will not be removed, but the parameters will be reset to the defaults.
Site syntax: -Identity Site:Redmond

Per-user syntax: -Identity CallviaWorkStandard

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
None.

Related Links
Set-CsCallViaWorkPolicy
New -CsCallViaWorkPolicy
Grant-CsCallViaWorkPolicy
Get-CsCallViaWorkPolicy
minutes to read • Edit Online

Remove-CsCdrConfiguration
In ths Article

Removes the specified collection of call detail recording (CDR ) settings. CDR enables you to track usage of such
things as peer-to-peer instant messaging sessions, Voice over Internet Protocol (VoIP ) phone calls and
conferencing calls. This usage data includes information about who called whom, when they called and how long
they talked. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsCdrConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call detail recording (CDR ) provides a way for you to track usage of Skype for Business Server capabilities such as
Voice over Internet Protocol (VoIP ) phone calls; instant messaging; file transfers; audio/video (A/V ) conferencing
and application sharing sessions. CDR (which is available only if you have deployed the Monitoring service) keeps
usage information: it logs information such as the parties involved in the call; the length of the call; and whether or
not any files were transferred. (However, CDR does not make a recording of the call itself.)
CDR also keeps track of call error information: detailed diagnostic data for both peer-to-peer sessions and for
conferencing calls.
As an administrator, you can determine whether or not CDR is used in your organization. If Monitoring Service has
been deployed, you can easily enable or disable CDR. In addition, you can make this decision globally (in which
case CDR will either be enabled or disabled throughout the organization) or on a site-by-site basis; for example,
you could use CDR in the Redmond site but not use CDR in the Paris site.
Site-specific settings you create by using the New-CsCdrConfiguration cmdlet can later be removed by using the
Remove-CsCdrConfiguration cmdlet. When you remove site-specific settings, then CDR for the affected site will
automatically be governed by the global CDR configuration settings.
You can also run the Remove-CsCdrConfiguration cmdlet against the global CDR settings. However, because the
global settings cannot be removed, they will instead be reset to their default values. For example, suppose, you set
the value of the KeepCallDetailForDays property in the global settings to 90. If you run the
Remove-CsCdrConfiguration cmdlet against the global settings, that property will be reset to its default value of 60.

Examples
-------------------------- Example 1 --------------------------

Remove-CsCdrConfiguration -Identity site:Redmond

Example 1 uses the Remove-CsCdrConfiguration cmdlet to remove the CDR settings assigned to the Redmond site.
Using the Identity parameter ensures that only the settings assigned to the specified site will be removed.
-------------------------- Example 2 --------------------------

Get-CsCdrConfiguration -Filter site:* | Remove-CsCdrConfiguration

The command shown in Example 2 removes all the CDR settings that have been assigned at the site scope. To do
this, the command first uses the Get-CsCdrConfiguration cmdlet and the Filter parameter to retrieve the appropriate
CDR settings; the string value "site:*" ensures that only those settings that have an Identity that begins with the
characters "site:" are returned. The filtered collection is then piped to the Remove-CsCdrConfiguration cmdlet, which
deletes all the items in the collection.
-------------------------- Example 3 --------------------------

Get-CsCdrConfiguration | Where-Object {$_.KeepCallDetailForDays -lt 30} | Remove-CsCdrConfiguration

In Example 3, any CDR settings where the KeepCallDetailForDays property is less than 30 days are deleted. To
carry out this task, the command calls the Get-CsCdrConfiguration cmdlet without any parameters in order to
return a collection of all the CDR settings currently in use in the organization. This collection is then piped to the
Where-Object cmdlet, which picks out only those settings where the KeepCallDetailForDays property is less than
30 days. The filtered collection is then piped to the Remove-CsCdrConfiguration cmdlet, which deletes each item in
that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the CDR configuration settings to be removed. To "remove" the global settings, use this syntax:
-Identity global . ( Note, again, that you cannot actually remove the global settings; all you can do is reset the
properties to their default values.) To remove settings from the site scope, use syntax similar to this:
-Identity site:Redmond . You cannot use wildcards when specifying an Identity.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CdrSettings. The
Remove-CsCdrConfiguration cmdlet accepts pipelined input of CDR configuration objects.

Outputs
None. Instead, the cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CdrSettings object.

Related Links
Get-CsCdrConfiguration
New -CsCdrConfiguration
Set-CsCdrConfiguration
minutes to read • Edit Online

Remove-CsCertificate
In ths Article

Removes a certificate previously marked as being available for use by Skype for Business Server. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsCertificate [-Type <CertType[]>] [-NetportId <String>] [-Force] [-Report <String>] [-WhatIf]
[-Confirm] [[-Identity] <XdsIdentity>] [-Previous] [<CommonParameters>]

Description
Skype for Business Server uses certificates as a way for servers and server roles to verify their identities; for
example, an Edge Server uses certificates to verify that the computer it is communicating with really is a Front End
Server and vice versa. In order to fully implement Skype for Business Server, you will need to have the appropriate
certificates assigned to the appropriate server roles.
The Remove-CsCertificate cmdlet provides a way for you to remove certificates currently in use by Skype for
Business Server. The Remove-CsCertificate cmdlet does not actually delete the certificate itself; instead, it marks
the certificate as no longer being available for use by Skype for Business Server, removes any certificate bindings
and revokes access permissions to the certificate (assuming no other service is using the certificate). Among other
things, this means that the certificate will no longer appear when you run the Get-CsCertificate cmdlet.
To again use the certificate with Skype for Business Server you will need to reassign the certificate to Skype for
Business Server by using the Set-CsCertificate cmdlet.
If you try to remove a certificate that is currently in use, the Remove-CsCertificate cmdlet will be ask if you are sure
that you want to remove the certificate; the certificate cannot be removed until you respond to that prompt. To
bypass the prompt and silently delete a certificate even if it is currently in use, add the Force parameter to your
command:
Remove-CsCertificate -Type WebServicesExternal -Force

Examples
-------------------------- Example 1 ------------------------

Remove-CsCertificate -Type WebServicesExternal

The command shown in Example 1 deletes all the WebServicesExternal certificates available to Skype for Business
Server. If any of these certificates are currently being used, the Remove-CsCertificate cmdlet will ask you if you are
sure you want to remove the certificate; you must respond to that prompt before the command can complete. To
bypass the confirmation prompt, use the Force parameter:
Remove-CsCertificate -Type WebServicesExternal -Force
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Bypasses the confirmation prompt that typically occurs if you attempt to delete a certificate that is currently in use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
When set to Global, removes the certificate from the global scope. When not specified, certificates are removed
from the local computer.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetportId
Reserved for future use. This parameter is for certificates dedicated to a specific port, a scenario not yet supported
by Lync Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Previous
When specified, removes the previously-assigned certificate instead of the currently-assigned certificate.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to record detailed information about the procedures carried out by the Remove-CsCertificate cmdlet.
The parameter value should be the full path to the HTML file to be generated; for example: -Report
C:\Logs\Certificates.html. If the specified file already exists it will automatically be overwritten with the new
information.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Type of certificate to be deleted. Certificate types include (but are not limited to):
AccessEdgeExternal
AudioVideoAuthentication
DataEdgeExternal
Default
External
Internal
PICWebService (Skype for Business Online only)
ProvisionService (Skype for Business Online only)
WebServicesExternal
WebServicesInternal
WsFedTokenTransfer
For example, this syntax deletes the Default certificate: -Type Default.
You can delete multiple types in a single command by separating the certificate types with commas:
-Type Internal,External,Default

Type: CertType[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Remove-CsCertificate cmdlet does not accept pipelined input.

Outputs
None. Instead, the Remove-CsCertificate cmdlet deletes instances of the
Microsoft.Rtc.Management.Deployment.CertificateReference object.

Related Links
Get-CsCertificate
Import-CsCertificate
Request-CsCertificate
Set-CsCertificate
minutes to read • Edit Online

Remove-CsClientPolicy
In ths Article

Removes an existing client policy. Among other things, client policies help determine the features of Skype for
Business that are available to users; for example, you might give some users the right to transfer files while denying
this right to other users. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsClientPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Client policies are applied each time a user accesses the system, regardless of where the user logs on from and
regardless of the type of device the user logs on with. In addition, client policies, like other Skype for Business
Server policies, can readily be targeted toward selected groups of users. You can even create a custom policy that
gets assigned to a single user.
Client policies can be configured at the global, site and per-user scopes. Policies that have been configured at the
site or per-user scope, can later be deleted by using the Remove-CsClientPolicy cmdlet. You can also run the
Remove-CsClientPolicy cmdlet against the global policy. In that case, the global policy will not be removed; that's
because global policies cannot be deleted. However, all the properties in the global policy will be reset to their
default values.

Examples
-------------------------- Example 1 --------------------------

Remove-CsClientPolicy -Identity SalesPolicy

In Example 1, the Remove-CsClientPolicy cmdlet is used to delete the client policy that has the Identity SalesPolicy.
-------------------------- Example 2 --------------------------

Get-CsClientPolicy -Filter "tag:*" | Remove-CsClientPolicy

In Example 2, the Get-CsClientPolicy cmdlet and the Remove-CsClientPolicy cmdlet are used to delete all the client
policies that have been configured at the per-user scope. The command uses the Get-CsClientPolicy cmdlet and
the Filter parameter to return a collection of all the client policies configured at the per-user scope; the filter value
"tag:*" tells the Get-CsClientPolicy cmdlet to limit the retrieved data to client policies that have an Identity that
begins with the string value "tag:". The filtered collection is then piped to the Remove-CsClientPolicy cmdlet, which
removes each policy in the collection.
-------------------------- Example 3 --------------------------
Get-CsClientPolicy | Where-Object {$_.EnableAppearOffline -eq $True} | Remove-CsClientPolicy

Example 3 deletes all the client policies where the EnableAppearOffline property is set to True. To do this, the
Get-CsClientPolicy cmdlet is first called without any additional parameters; that returns a collection of all the client
policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which picks
out only those policies where the EnableAppearOffline property is equal to True. In turn, this filtered collection is
piped to the Remove-CsClientPolicy cmdlet, which deletes each policy in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If this parameter is present, the policy will automatically be removed even if it is currently assigned to at least one
user. If this parameter is not present, then the Remove-CsClientPolicy cmdlet will not automatically remove a per-
user policy that is assigned to at least one user. Instead, a confirmation prompt will appear asking if you are sure
that you want to remove the policy. You must answer yes (by pressing the Y key) before the command will continue
and the policy will be removed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax:
-Identity global . ( Note that the global policy cannot actually be removed. Instead, all the properties in that policy
will be reset to their default values.) To remove a site policy, use syntax similar to this: -Identity "site:Redmond" . To
remove a per-user policy, use syntax similar to this: -Identity "SalesDepartmentPolicy" . You cannot use wildcards
when specifying a policy Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the client policy is
being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy object. The Remove-CsClientPolicy cmdlet
accepts pipelined instances of the client policy object.

Outputs
The Remove-CsClientPolicy cmdlet does not return a value. Instead, the cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy object.

Related Links
Get-CsClientPolicy
Grant-CsClientPolicy
New -CsClientPolicy
Set-CsClientPolicy
minutes to read • Edit Online

Remove-CsClientVersionConfiguration
In ths Article

Removes the specified collection of client version configuration settings. Client version configuration settings
determine whether or not Skype for Business Server checks the version number of each client application that logs
on to the system. If client version filtering is enabled, then the ability of that client application to access the system
will be based on settings configured in the appropriate client version policy. This cmdlet was introduced in Lync
Server 2010.

Syntax
Remove-CsClientVersionConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Skype for Business Server gives administrators considerable leeway when it comes to specifying the client software
(and, equally important, the version number of that software) that users can use to log on to the system. For
example, there is no technical reason that requires users to log on to Skype for Business Server by using Skype for
Business; from a technical standpoint, there is nothing to prevent people from logging on by using Microsoft Office
Communicator 2007 R2.
However, there might be some non-technical reasons why you would prefer that your users do not log on by using
Office Communicator 2007 R2. For example, Office Communicator 2007 R2 does not support all of the features
and capabilities found in Skype for Business; as a result, users who log on with Office Communicator 2007 R2 will
have a different experience than users who log on by using Skype for Business. This can create difficulties for your
users; it can also create difficulties for help desk personnel, who must provide support for a number of different
client applications.
If this could be a problem for your organization you can employ client version filtering in order to specify which
client applications can be used to log on to Skype for Business Server. When you install Skype for Business Server,
a global set of client version configuration settings is installed and enabled. In addition to the global settings, client
version configuration settings can also be applied at the site scope.
Any site settings you create can later be deleted by using the Remove-CsClientVersionConfiguration cmdlet. Note
that you can also run the Remove-CsClientVersionConfiguration cmdlet against the global settings. In that case, the
global settings will not be removed; instead, the global properties will be reset to their default values.

Examples
-------------------------- Example 1 ------------------------

Remove-CsClientVersionConfiguration -Identity site:Redmond

The command shown in Example 1 deletes the client version configuration settings that have the Identity
"site:Redmond".
-------------------------- Example 2 ------------------------

Get-CsClientVersionConfiguration -Filter site:* | Remove-CsClientVersionConfiguration

In Example 2 all the client version configuration settings that have been applied at the site scope are deleted. To
accomplish this task the command first calls the Get-CsClientVersionConfiguration cmdlet and the Filter parameter;
the filter value "site:*" ensures that only client version configuration settings that have an Identity beginning with
the string value "site:" will be returned. This filtered collection is then piped to the
Remove-CsClientVersionConfiguration cmdlet, which deletes each item in the collection.

-------------------------- Example 3 ------------------------

Get-CsClientVersionConfiguration | Where-Object {$_.Enabled -eq $False} | Remove-CsClientVersionConfiguration

In Example 3, all the client version configuration settings that are currently disabled are deleted. To do this, the
command first uses the Get-CsClientVersionConfiguration cmdlet to return a collection of all the client version
configuration settings currently in use in the organization. After this data is returned, the collection is piped to the
Where-Object cmdlet, which picks out only those settings where the Enabled property is equal to False. From there,
the filtered collection is piped to the Remove-CsClientVersionConfiguration cmdlet, which deletes each item in the
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of client version configuration settings to be removed. To remove the global
collection, use the following syntax: -Identity global . (Keep in mind that the global settings will not actually be
removed; instead, the global properties will all be reset to their default values.) To remove a site collection, use
syntax similar to this: -Identity site:Redmond . Note that you cannot use wildcards when specifying the Identity.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration object. The
Remove-CsClientVersionConfiguration cmdlet accepts pipelined instances of the client version configuration object.

Outputs
None. Instead, the cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration object.

Related Links
Get-CsClientVersionConfiguration
New -CsClientVersionConfiguration
Set-CsClientVersionConfiguration
minutes to read • Edit Online

Remove-CsClientVersionPolicy
In ths Article

Removes the specified client version policy. Client version policies enable you to specify which clients will be able to
log on to your Skype for Business Server system. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsClientVersionPolicy [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>]
[<CommonParameters>]

Description
Client version policies represent a collection of client version rules; in turn, client version rules are used to
determine which client applications are allowed to log on to Skype for Business Server. When a user attempts to
log on to Skype for Business Server, his or her client application sends a SIP header to the server; this header
includes detailed information about the application itself, including the software's major version, minor version and
build number. The version information included in the SIP header is then checked against a collection of client
version rules to see if any rules apply to that particular application. If such a rule exists, Skype for Business Server
will then take the action specified by the rule. For example, the rule might tell Skype for Business Server to allow
the logon, to block it, or to allow the logon but then silently upgrade the client application to the latest version (for
example, upgrade Communicator 2007 R2 to Skype for Business).
Client version policies, which can be applied at the global scope, the site scope, the service scope (Registrar service
only), or the per-user scope, give you flexibility in determining which client applications can be used to access the
system. For example, as a general rule you might want to prevent users from logging on to Skype for Business
Server by using Communicator 2007 R2; that's because Communicator 2007 R2 does not support the same
features and capabilities as Skype for Business Server. However, due to hardware or software conflicts you might
also have a group of users who cannot upgrade to Skype for Business. In that case, you can create a separate rule --
and a separate client version policy -- that allows those users to log on from within Communicator 2007 R2.
You can create new policies by using the New-CsClientVersionPolicy cmdlet. These custom policies can later be
removed by running the Remove-CsClientVersionPolicy cmdlet. When you remove a client version policy, users
previously governed by that policy will automatically inherit the next policy in the management hierarchy. For
example, if you delete a per-user policy, users will automatically be governed by the appropriate service policy. If no
service policy exists, then users will be governed by the appropriate site policy. If no site policy exists, then users will
be governed by the global policy.
Note that there will always be a global policy, meaning that no users will be left unmanaged by client version
policies. Although you can run the Remove-CsClientVersionPolicy cmdlet against the global policy, the policy will not
actually be deleted. Instead, all of the policy rules will be reset to their default values.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.

Examples
-------------------------- Example 1 --------------------------

Remove-CsClientVersionPolicy -Identity site:Redmond

The command shown in Example 1 deletes the client version policy for the Redmond site.
-------------------------- Example 2 --------------------------

Get-CsClientVersionPolicy -Filter tag:* | Remove-CsClientVersionPolicy

In Example 2, all of the client version policies configured at the per-user scope are deleted. To do this, the command
first calls the Get-CsClientVersionPolicy cmdlet and includes the Filter parameter; the filter value "tag:*" limits the
returned data to policies configured at the per-user scope. This filtered collection is then piped to the
Remove-CsClientVersionPolicy cmdlet, which deletes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be deleted. To remove a policy configured at the site scope, use syntax similar to
this: -Identity "site:Redmond" . To remove a policy configured at the service scope, use syntax similar to this:
-Identity "Registrar:atl-cs-001.litwareinc.com" . The Registrar service is the only service that can host a client
version policy.
Policies can also be removed at the per-user scope. To remove per-user policies, use syntax similar to this:
-Identity "SalesDepartmentPolicy" .
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the client version
policy is being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionPolicy object. The
Remove-CsClientVersionPolicy cmdlet accepts pipelined instances of the client version policy object.

Outputs
The Remove-CsClientVersionPolicy cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionPolicy object.

Related Links
Get-CsClientVersionPolicy
Grant-CsClientVersionPolicy
New -CsClientVersionPolicy
Set-CsClientVersionPolicy
minutes to read • Edit Online

Remove-CsClientVersionPolicyRule
In ths Article

Removes one or more client version policy rules configured for use in your organization. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsClientVersionPolicyRule [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>]
[<CommonParameters>]

Description
Client version rules are used to determine which client applications are allowed to log on to Skype for Business
Server. When a user attempts to log on to Skype for Business Server, his or her client application sends a SIP
header to the server; this header includes detailed information about the application itself, including the software's
major version, minor version and build number. The version information is then checked against a collection of
client version rules to see if any rules apply to that particular application. For example, suppose a user attempts to
log on by using Microsoft Office Communicator 2007 R2. Before the user can log on, the system will check to see if
there is a client version rule that applies to Office Communicator 2007 R2. If such a rule exists, Skype for Business
Server will then take the action specified by the rule. That action must be one of the following:
Allow. The user will be allowed to log on.
AllowAndUpgrade. The user will be allowed to log on and his or her copy of Communicator 2007 R2 will
automatically be upgraded to the latest version of Lync. Upgrades are carried out using either Microsoft Update or
Windows Server Update Services, depending on how you have configured your system.
AllowWithUrl. The user will be allowed to log on and a message will be displayed pointing the user to a URL where
the latest version of Lync can be downloaded and installed. The URL must point to a website that you have created
yourself; no such site is created for you when you install Skype for Business Server.
Block. The user will not be allowed to log on.
BlockAndUpgrade. The user will not be allowed to log on, but his or her copy of Communicator 2007 R2 will
automatically be upgraded to the latest version of Lync. The user can then try to log on by using the new client
application. Upgrades are carried out using either Microsoft Update or Windows Server Update Services,
depending on how you have configured your system.
BlockWithUrl. The user will not be allowed to log on, but a message will be displayed pointing him or her to a URL
where the latest version of Lync can be downloaded and installed. The URL must point to a website that you have
created yourself; no such site is created for you when you install Skype for Business Server.
Client version rules are collected in client version policies, which can be configured at the global scope, the site
scope, the service scope (Registrar service), or the per-user scope. The Remove-CsClientVersionPolicyRule cmdlet
enables you to delete one or more of the client policy rules configured for use in your organization. These rules can
be deleted from any of your client version policies, including the global policy.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.

Examples
-------------------------- Example 1 ------------------------

Remove-CsClientVersionPolicyRule -Identity site:Redmond/74ba9211-8610-42f9-91ba-846cdee98820

The command shown in Example 1 deletes the client version policy rule that has the Identity
site:Redmond/74ba9211-8610-42f9-91ba-846cdee98820. Because Identities must be unique, this command will
only delete, at most, a single rule.
-------------------------- Example 2 ------------------------

Get-CsClientVersionPolicyRule -Filter "site:Redmond/*" | Remove-CsClientVersionPolicyRule

Example 2 deletes all the client version policy rules that have been configured for the Redmond site. To do this, the
command first calls the Get-CsClientVersionPolicyRule cmdlet along with the Filter parameter; the filter value
"site:Redmond/*" limits the returned data to policy rules that have an Identity that begins with the string value
"site:Redmond/". This filtered collection is then piped to the Remove-CsClientVersionPolicyRule cmdlet, which
deletes each item in that collection.
-------------------------- Example 3 ------------------------

Get-CsClientVersionPolicyRule | Where-Object {$_.Enabled -eq $False} | Remove-CsClientVersionPolicyRule

Example 3 deletes all the client version policy rules that are currently disabled. To do this, the command first calls
the Get-CsClientVersionPolicyRule cmdlet without any parameters in order to return a collection of all the policy
rules currently in use in the organization. This collection is then piped to the Where-Object cmdlet, which picks out
all the rules where the Enabled property is equal to False. The filtered collection is then piped to the
Remove-CsClientVersionPolicyRule cmdlet, which deletes each item in that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the client version policy rule to be removed. The Identity of a client version rule consists of the
scope where the rule has been configured plus a globally unique identifier (GUID ). That means that a rule will have
an Identity similar to this: site:Redmond/1987d3c2-4544-489d-bbe3-59f79f530a83.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the client version
policy rule is being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule object. The Remove-CsClientVersionPolicyRule
cmdlet accepts pipelined instances of the client version rule object.

Outputs
None. Instead, the Remove-CsClientVersionPolicyRule cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule object.

Related Links
Get-CsClientVersionPolicyRule
New -CsClientVersionPolicyRule
Set-CsClientVersionPolicyRule
minutes to read • Edit Online

Remove-CsClsConfiguration
In ths Article

Removes one or more collections of centralized logging configuration settings. Centralized logging provides a way
for administrators to simultaneously enable or disable event tracing on multiple computers. This cmdlet was
introduced in Lync Server 2013.

Syntax
Remove-CsClsConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
It is also possible to define custom scenarios by using the New-CsClsScenario cmdlet.
Centralized logging is managed by using collections of centralized logging service configuration settings. When
you install Skype for Business Server, you install a global set of these configuration settings; in addition,
administrators can add custom settings collections at the site scope. Later on, these site-scoped settings can be
removed by using the Remove-CsClsConfiguration cmdlet. Note that this cmdlet can also be run against the global
settings collection. In that case, however, the collection will not be removed. Instead, all the properties in the
collection will be reset to their default values.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsClsConfiguration cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsClsConfiguration -Identity "site:Redmond"


The command shown in Example 1 removes the centralized logging configuration settings applied to the Redmond
site.
-------------------------- Example 2 --------------------------

Get-CsClsConfiguration -Filter "site:*" | Remove-CsClsConfiguration

In Example 2, all the centralized logging configuration settings applied to the site scope are removed. To do this, the
command first calls the Get-CsClsConfiguration cmdlet along the with Filter parameter; the filter value "site:*" limits
the returned data to settings configured at the site scope. Those settings are then piped to, and removed by, the
Remove-CsClsConfiguration cmdlet.

-------------------------- Example 3 --------------------------

Get-CsClsConfiguration | Where-Object {$_.EtlFileRolloverSizeMB -gt 20} | Remove-CsClsConfiguration

Example 3 deletes all the centralized logging configuration settings that allow for an ETL file larger than 20
megabytes. To perform this task, the command first calls the Get-CsClsConfiguration cmdlet without any
parameters; that returns a collection of all the centralized logging settings in use in the organization. Those settings
are then piped to the Where-Object cmdlet, which picks out only the settings where the EtlFileRollverSizeMB
property is greater than (-gt) 20 megabytes. Settings that meet that criterion are then piped to and delete by, the
Remove-CsClsConfiguration cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of centralized logging configuration settings you want to remove. To remove the
global settings use this syntax:
-Identity "global"

Note that the global policy cannot actually be removed. Instead, all of the policy properties will be reset to their
default values.
To remove a collection configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

Note that you cannot use wildcards when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsClsConfiguration cmdlet accepts pipelined instances of the
icrosoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.CentralizedLoggingConfiguration object.

Outputs
None. Instead, the Remove-CsClsConfiguration cmdlet deletes existing instances of the
icrosoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.CentralizedLoggingConfiguration object.

Related Links
Get-CsClsConfiguration
New -CsClsConfiguration
Set-CsClsConfiguration
minutes to read • Edit Online

Remove-CsClsRegion
In ths Article

Removes one or more centralized logging configuration regions. Centralized logging provides a way for
administrators to simultaneously enable or disable event tracing on multiple computers. Centralized logging
regions are intended for use with Skype for Business Online.

Syntax
Remove-CsClsRegion [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
With Skype for Business Online, regions are used to determine which users have access to the personally-
identifiable information that is written to the log files. Regions are created by using the New-CsClsRegion cmdlet and
then are added to a collection of centralized logging configuration settings. Regions added to one of these
collections can later be removed by using the Remove-CsClsRegion cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsClsRegion cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsClsRegion -Identity "global/US"

The command shown in Example 1 removes the centralized logging region that has the Identity global/US.
-------------------------- Example 2 --------------------------

Get-CsClsRegion -Filter "global/*" | Remove-CsClsRegion

In Example 2, all the centralized logging regions configured at the global scope are removed. To do this, the
command first calls the Get-CsClsRegion cmdlet along with the Filter parameter; the filter value "global/*" limits the
returned data to regions configured at the global scope. These regions are then piped to, and deleted by, the
Remove-CsClsRegion cmdlet.

-------------------------- Example 3 --------------------------

Get-CsClsRegion | Where-Object {$_.SecurityGroupSuffix -eq "EMEA" | Remove-CsClsRegion

Example 3 deletes all the centralized logging regions that have the security group suffix EMEA. To carry out this
task, the command first calls the Get-CsClsRegion cmdlet without any parameters; this returns a collection of all the
centralized logging regions configured for use in the organization. This collection is then piped to the Where-Object
cmdlet, which picks out only those regions where the SecurityGroupSuffix property is equal to (-eq) EMEA. That
subcollection of regions is then piped to the Remove-CsClsRegion cmdlet, which deletes each region in the
subcollection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the centralized logging region to be removed. A region identity consists of the scope where
the region was created followed by the region name. For example, to delete a region named US created at the
global scope, use the following syntax:
-Identity "global/US"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsClsRegion cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Region#Decorated object.

Outputs
None. Instead, the Remove-CsClsRegion cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Region#Decorated object.

Related Links
Get-CsClsRegion
New -CsClsRegion
Set-CsClsRegion
minutes to read • Edit Online

Remove-CsClsScenario
In ths Article

Removes the specified centralized logging configuration scenario. A scenario represents a particular Skype for
Business Server component or situation (such as IM and presence) that administrators can enable or disable for
tracing. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsClsScenario [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
The Remove-CsClsScenario cmdlet provides a way for you to remove scenarios from your centralized logging
configuration settings.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsClsScenario cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsClsScenario -Identity "site:Redmond/WAC"

The command shown in Example 1 removes the WAC scenario from the global collection of centralized logging
configuration settings.
-------------------------- Example 2 --------------------------
Get-CsClsScenario | Where-Object {$_.Name -eq "HybridVoice" | Remove-CsClsScenario

In Example 2, the HybridVoice scenario is removed from all the centralized logging configuration settings in use in
the organization. To do this, the Get-CsClsScenario cmdlet is first called without any parameters in order to return a
collection of all the available scenarios. That collection is then piped to the Where-Object cmdlet, which picks out all
the scenarios where the Name property is equal to (-eq) HybridVoice. The HybridVoice scenarios are then piped to
and deleted by, the Remove-CsClsScenario cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the scenario to be removed. A scenario consists of two parts: the scope where the scenario is
configured (that is, the collection of centralized logging configuration settings where the scenario can be found) and
the scenario name. For example:
-Identity "site:Redmond/AddressBook"

You can also specify just the scenario scope; for example:
-Identity "site:Redmond"

If you do that, however, the entire collection of centralized logging configuration settings for the specified scope will
be removed and not just the scenarios.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsClsScenario cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Scenario#Decorated object.

Outputs
None. Instead, the Remove-CsClsScenario cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Scenario#Decorated object.
minutes to read • Edit Online

Remove-CsClsSecurityGroup
In ths Article

Removes a centralized logging configuration security group. Centralized logging provides a way for administrators
to simultaneously enable or disable event tracing on multiple computers. This cmdlet was introduced in Lync
Server 2013.

Syntax
Remove-CsClsSecurityGroup [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
With Skype for Business Online, security groups are used to determine which users have access to the personally-
identifiable information that is written to the log files. Security groups are created by using the
New-CsClsSecurityGroup cmdlet and then are added to a collection of centralized logging configuration settings.
These groups can later be removed by using the Remove-CsClsSecurityGroup cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsClsSecurityGroup cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsClsSecurityGroup -Identity "global/HelpDesk"

The command shown in Example 1 deletes the centralized logging security group with the Identity
Global/HelpDesk.
-------------------------- Example 2 --------------------------

Get-CsClsSecurityGroup | Remove-CsClsSecurityGroup

In Example 2, all the centralized logging security groups currently in use in the organization are deleted. To do this,
the command first calls the Get-CsClsSecurityGroup cmdlet without any parameters; this returns a collection of all
the centralized logging security groups. That collection is then piped to the Remove-CsClsSecurityGroup cmdlet,
which deletes each group in the collection.
-------------------------- Example 3 --------------------------

Get-CsClsSecurityGroup | Where-Object {$_.AccessLevel -eq "Tier3"} | Remove-CsClsSecurityGroup

Example 3 shows how you can delete all the centralized logging security groups that have the access level
RedmondSupport. To carry out this task, the command first uses the Get-CsClsSecurityGroup cmdlet to return a
collection of all the available centralized logging security groups. That collection is then piped to the Where-Object
cmdlet, which selects only those groups where the AccessLevel property is set to Tier3. In turn, those groups are
piped to and removed by, the Remove-CsClsSecurityGroup cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the centralized logging security group to be removed. A security group identity consists of the
scope where the group was created followed by the group name. For example, to remove a group named HelpDesk
created at the global scope, use the following syntax:
-Identity "global/HelpDesk"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsClsSecurityGroup cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SecurityGroup#Decorated object.

Outputs
None. Instead, the Remove-CsClsSecurityGroup cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SecurityGroup#Decorated object.

Related Links
Get-CsClsSecurityGroup
New -CsClsSecurityGroup
Set-CsClsSecurityGroup
minutes to read • Edit Online

Remove-CsCommonAreaPhone
In ths Article

Removes an existing common area phone from the collection of phones managed by using Skype for Business
Server. Common area phones are phones that are located in building lobbies, employee lounges, or other areas
where they are likely to be used by a number of different people and for a number of different uses. This cmdlet
was introduced in Lync Server 2010.

Syntax
Remove-CsCommonAreaPhone [-Identity] <UserIdParameter> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Common area phones are IP telephones that are not associated with an individual user. Instead of being located in
someone's office, common area phones are typically located in building lobbies, cafeterias, employee lounges,
meeting rooms and other locations where a large number of people are likely to gather. This presents
administrators with a management challenge; that's because phone use in Skype for Business Server is typically
maintained by using voice policies and dial plans that are assigned to individual users. Common area phones do
not have individual users assigned to them.
One solution to this challenge is to create Active Directory contact objects for all your common area phones. (These
contact objects can be created by using the New-CsCommonAreaPhone cmdlet.) Like user accounts, these contact
objects can be assigned policies and voice plans. As a result, you will be able to maintain control over common area
phones even though those phones are not associated with an individual user. For example, if you do not want
people to have the ability to transfer or park calls from a common area phone, you can create a voice policy that
prohibits call transfers and call parking, and then assign that policy to the common area phone. (Or, more correctly,
to the contact object that represents the common area phone.) For example, this command assigns the voice policy
CommonAreaPhoneVoicePolicy to all your common area phones:
Get-CsCommonAreaPhone | Grant-CsVoicePolicy -PolicyName "CommonAreaPhoneVoicePolicy"

From time-to-time you might need to delete the contact object associated with a common area phone. For example,
if you remove the phone from an employee lounge then there is no need to have a contact object associated with
that phone. The Remove-CsCommonAreaPhone cmdlet provides a way for you to delete common area phones. When
you run this cmdlet, the phone will be deleted from the list of common area phones returned by the
Get-CsCommonAreaPhone cmdlet. In addition, the contact object associated with that phone will be deleted from Active
Directory Domain Services.

Examples
-------------------------- Example 1 ------------------------

Get-CsCommonAreaPhone -Filter {DisplayName -eq "Building 14 Lobby"} | Remove-CsCommonAreaPhone


The command shown in Example 1 deletes the common area phone that has the display name "Building 14 Lobby".
To do this, the command first calls the Get-CsCommonAreaPhone cmdlet along with the Filter parameter and the filter
value "{DisplayName -eq "Building 14 Lobby"}". The returned object is then piped to, and deleted by, the
Remove-CsCommonAreaPhone cmdlet.

-------------------------- Example 2 ------------------------

Get-CsCommonAreaPhone -Filter {DialPlan -eq $Null} | Remove-CsCommonAreaPhone

In Example 2, the command deletes all the common area phones that have not been assigned a dial plan. This task
is carried out by first using the Get-CsCommonAreaPhone cmdlet and the Filter parameter to return the specified items;
the filter value {DialPlan -eq $Null} limits the returned data to common area phones that have not been assigned a
dial plan. This filtered collection is then piped to the Remove-CsCommonAreaPhone cmdlet, which deletes each phone in
the collection.
-------------------------- Example 3 ------------------------

Get-CsCommonAreaPhone -OU "ou=Redmond,dc=litwareinc,dc=com" | Remove-CsCommonAreaPhone

Example 3 deletes all the common area phones that have contact objects located in the Redmond OU in Active
Directory. To carry out this task, the Get-CsCommonAreaPhone cmdlet is first called in order to return all the common
area phones with contact objects in the Redmond OU; the OU parameter and the parameter value
"ou=Redmond,dc=litwareinc,dc=com" is used to limit the returned data to the specified organizational unit. The
returned collection is then piped to the Remove-CsCommonAreaPhone cmdlet, which deletes each phone in that
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the common area phone. Common area phones are identified using the Active Directory
distinguished name of the associated contact object. By default, common area phones use a globally unique
identifier (GUID ) as their common name, which means phones will typically have an Identity similar to this: CN=
{ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com. Because of that, you might
find it easier to retrieve common area phones by using the Get-CsCommonAreaPhone cmdlet, and then piping the
returned objects to the Remove-CsCommonAreaPhone cmdlet.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact object. The
Remove-CsCommonAreaPhone cmdlet accepts pipelined instances of the common area phone object.

Outputs
The Remove-CsCommonAreaPhone cmdlet deletes existing instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact object.

Related Links
Get-CsCommonAreaPhone
Move-CsCommonAreaPhone
New -CsCommonAreaPhone
Set-CsCommonAreaPhone
minutes to read • Edit Online

Remove-CsConferenceDirectory
In ths Article

Removes an existing conference directory. Conference directories are used to help dial-in conferencing users locate
conference information. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsConferenceDirectory [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
When you create a dial-in conferencing Uniform Resource Identifier (URI) those URIs are assigned unique SIP
addresses. However, SIP addresses are difficult to translate to devices that are not SIP -aware; for example, a public
switched telephone network (PSTN ) telephone can't translate a SIP address. Because of that, Skype for Business
Server uses conference directories as a way to help these devices locate, and connect to, dial-in conferences. This is
done by creating a SIP conference directory that is associated with each dial-in conferencing URI and is identified
by an integer value rather than a SIP URI. PSTN telephones and other devices can then use these numbers (rather
than a SIP URI) when connecting to conferences; the directory number is included in the PSTN conference
identification users enter when connecting to a dial-in conference.
Conference directories are created by using the New-CsConferenceDirectory cmdlet. Occasionally, you might need to
delete one or more of these directories; for example, you might need to decommission the pool where the
directories were hosted. Conference directories can be removed by calling the Remove-CsConferenceDirectory
cmdlet. Note that if you need to move a directory from one pool to another, you can do so by calling the
Move-CsConferenceDirectory cmdlet.

Examples
-------------------------- Example 1 ------------------------

Remove-CsConferenceDirectory -Identity 2

The command shown in Example 1 deletes the conference directory with the Identity 2.
-------------------------- Example 2 ------------------------

Get-CsConferenceDirectory | Where-Object {$_.ServiceID -match "UserServer:atl-cs-001.litwareinc.com"} | Remove-


CsConferenceDirectory

Example 2 deletes all the conference directories found on the service UserServer:atl-cs-001.litwareinc.com. To do
this, the command first calls the Get-CsConferenceDirectory cmdlet without any parameters; that returns a
collection of all the conference directories currently in use in the organization. This collection is then piped to the
Where-Object cmdlet, which picks out only those directories hosted on the service UserServer:atl-cs-
001.litwareinc.com. In turn, that filtered collection is piped to and deleted by, the Remove-CsConferenceDirectory
cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
When present, removes the conference directory even if the pool that hosts the directory is currently unavailable.
By default, the Remove-CsConferenceDirectory cmdlet will not remove directories if the corresponding pool cannot
be contacted.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Numeric identity of the conference directory to be removed.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.PstnConf.ConferenceDirectories object. The
Remove-CsConferenceDirectory cmdlet accepts pipelined input of conference directory objects.
Outputs
None. Instead, the Removes-CsConferenceDirectory cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.PstnConf.ConferenceDirectories object.

Related Links
Get-CsConferenceDirectory
Move-CsConferenceDirectory
New -CsConferenceDirectory
minutes to read • Edit Online

Remove-CsConferenceDisclaimer
In ths Article

Clears the text from the header and body of the conference disclaimer used in your organization. The conference
disclaimer is a message that is displayed to users who join the conference by using a hyperlink (for example, users
who paste a link to the conference into a browser such as Windows Internet Explorer). This cmdlet was introduced
in Lync Server 2010.

Syntax
Remove-CsConferenceDisclaimer [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
When configuring conferencing settings, administrators can include a legal disclaimer to display to participants
when these people join conferences hosted by Skype for Business Server. This disclaimer is typically used to
explain legal and intellectual property laws regarding the conference. Users cannot join the conference without
agreeing to the stipulations set forth in the disclaimer. Note that this disclaimer is only shown to users who join a
conference by using a hyperlink.
Skype for Business Server allows for a single, global instance of the conference disclaimer. The
Remove-CsConferenceDisclaimer cmdlet enables you to reset your conference disclaimer: when you run this cmdlet,
both the disclaimer header and the disclaimer body are set to null values.

Examples
-------------------------- Example 1 ------------------------

Remove-CsConferenceDisclaimer -Identity global

Example 1 resets the property values of the global disclaimer. That means that both the disclaimer Header and
Body will be set to null values, giving you a blank disclaimer.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the conference disclaimer to be removed. Although you can only have a single, global instance of
the conference disclaimer, you must still use the Identity parameter when calling the Remove-CsConferenceDisclaimer
cmdlet.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConferenceDisclaimer object. The
Remove-CsConferenceDisclaimer cmdlet accepts pipelined input of conference disclaimer objects.

Outputs
None. Instead, the Remove-CsConferenceDisclaimer cmdlet resets existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConferenceDisclaimer object to their default
property values.

Related Links
Get-CsConferenceDisclaimer
Set-CsConferenceDisclaimer
minutes to read • Edit Online

Remove-CsConferencingConfiguration
In ths Article

Removes the specified collection of conference configuration settings. Conference settings determine such things
as the maximum-allowed size for conference content and handouts; the content grace period and the URLs for the
internal and external downloads of the supported client. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsConferencingConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
For conferences, management and administration is split between two sets of cmdlets. If you want to manage the
things users can and cannot do (for example, can users invite anonymous participants to join a conference, are
users allowed to offer application sharing in a conference, are users allowed to transfer files within a conference),
then you need to use the CsConferencingPolicy cmdlets.
In addition to user activities, administrators need to manage the Web Conferencing service. For example,
administrators need to be able to do such things as specify the maximum amount of content storage allotted to a
single conference and to specify the grace period before that conference content is automatically deleted. They also
need to be able to specify the ports used for activities such as application sharing and file transfer.
These latter activities can be managed by using the CsConferencingConfiguration cmdlets. These cmdlets enable
you to manage the actual servers themselves. The CsConferencingConfiguration cmdlets (which can be applied to
the global, the site and the service scopes) aren't used to specify whether or not a user can share applications
during a conference; however, if application sharing is allowed these cmdlets enable you to indicate which ports
should be used for that activity. Likewise, the cmdlets enable you to specify such things as storage limits and
expiration periods, as well as pointers to internal and external URLs where users can obtain conferencing help and
resources.
The Remove-CsConferencingConfiguration cmdlet provides a way for you to delete any of the custom collections of
conferencing configuration settings created for use in your organization. When you delete a collection of settings,
any server previously affected by those settings will automatically come under the jurisdiction of the next collection
in the hierarchy (service - site - scope). If the deleted settings were applied at the service scope, then the servers will
be managed by the site settings. If there are no settings at the site scope then the servers will be managed by the
global settings. Likewise, if you delete settings at the site scope, then servers previously managed by those site
settings will be managed by the global settings.
Note that you can also run the Remove-CsConferencingConfiguration cmdlet against the global settings. In that case,
however, the global settings will not be removed because Skype for Business Server does not allow you to remove
global settings. Instead, all the properties in the global collection will be reset to their default values. For example, if
you previously changed the maximum content storage value to 200 megabytes, this property will revert to the
default value of 100 megabytes.
Examples
-------------------------- Example 1 --------------------------

Remove-CsConferencingConfiguration -Identity site:Redmond

Example 1 deletes the conferencing configuration settings applied to the Redmond site. When site settings such as
these are deleted, users in the site will automatically inherit the settings found in the global conferencing
configuration settings.
-------------------------- Example 2 --------------------------

Get-CsConferencingConfiguration -Filter site:* | Remove-CsConferencingConfiguration

In Example 2, the command deletes all the conferencing configuration settings applied to the site scope. To do this,
the command first calls the Get-CsConferencingConfiguration cmdlet along with the Filter parameter; the filter value
"site:" ensures that only those settings that have an Identity that begins with the characters "site:" are returned. This
filtered collection is then piped to the Remove-CsConferencingConfiguration cmdlet, which deletes each item in the
collection.
-------------------------- Example 3 --------------------------

Get-CsConferencingConfiguration | Where-Object {$_.Organization -ne "Litwareinc"} | Remove-


CsConferencingConfiguration

Example 3 deletes all the conferencing configuration settings where the organization is not set to Litwareinc. To do
this, the command first calls the Get-CsConferencingConfiguration cmdlet without any parameters; that returns a
collection of all the conferencing configuration settings used in the organization. This collection is then piped to the
Where-Object cmdlet, which picks out only those settings where the Organization property is not equal to
Litwareinc. Finally, the filtered collection is piped to the Remove-CsConferencingConfiguration cmdlet, which deletes
all the settings in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the collection of conferencing configuration settings to be removed. To remove settings
configured at the site scope, use syntax similar to this: -Identity "site:Redmond" . To remove settings configured at
the service scope, use syntax similar to this: -Identity "service:ConferencingServer:atl-cs-001.litwareinc.com" .

The Remove-CsConferencingConfiguration cmdlet can also be run against the global settings. In that case, however,
those settings will not be removed; instead, all the properties will simply be reset to their default values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings object. The
Remove-CsConferencingConfiguration cmdlet accepts pipelined instances of the conferencing configuration object.

Outputs
None. Instead, the Remove-CsConferencingConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings object.

Related Links
Get-CsConferencingConfiguration
New -CsConferencingConfiguration
Set-CsConferencingConfiguration
minutes to read • Edit Online

Remove-CsConferencingPolicy
In ths Article

Removes the specified conferencing policy. Conferencing policies determine the features and capabilities that can
be used in a conference; this includes everything from whether or not the conference can include IP audio and
video to the maximum number of people who can attend a meeting. This cmdlet was introduced in Lync Server
2010.

Syntax
Remove-CsConferencingPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Conferencing is an important part of Skype for Business Server: conferencing enables groups of users to come
together online to view slides and video, share applications, exchange files and otherwise communicate and
collaborate.
It's important for administrators to maintain control over conferences and conference settings. In some cases, there
might be security concerns: by default, anyone, including unauthenticated users, can participate in meetings and
save any of the slides or handouts distributed during those meetings. In other cases, there might be bandwidth
concerns: having a multitude of simultaneous meetings, each involving hundreds of participants and each featuring
video feeds and file sharing, has the potential to cause problems with your network. In addition, there might be
legal concerns. For example, by default meeting participants are allowed to make annotations on shared content;
however, these annotations are not saved when the meeting is archived. If your organization is required to keep a
record of all electronic communication, you might want to disable annotations.
Of course, needing to manage conferencing settings is one thing; actually managing these settings is another. In
Skype for Business Server, conferences are managed by using conferencing policies. (In previous versions of the
software, these were known as meeting policies.) As noted, conferencing policies determine the features and
capabilities that can be used in a conference, including everything from whether or not the conference can include
IP audio and video to the maximum number of people who can attend a meeting. Conferencing policies can be
configured at the global scope; at the site scope; or at the per-user scope. This provides administrators with
enormous flexibility when it comes to deciding which capabilities will be made available to which users.
You can use the Remove-CsConferencingPolicy cmdlet to delete any of the conferencing policies configured for use in
your organization, with one exception: you cannot delete the global policy. You can still run the
Remove-CsConferencingPolicy cmdlet against the global policy. In that case, however the policy will not be removed;
instead, all the global policy properties will be reset to their default values.

Examples
-------------------------- Example 1 --------------------------
Remove-CsConferencingPolicy -Identity SalesConferencingPolicy

In Example 1, the Remove-CsConferencingPolicy cmdlet is used to delete the conferencing policy with the Identity
SalesConferencingPolicy.
-------------------------- Example 2 --------------------------

Get-CsConferencingPolicy -Filter "site:*" | Remove-CsConferencingPolicy

In Example 2, all the conferencing policies that have been configured at the site scope are deleted. To accomplish
this task, the command first uses the Get-CsConferencingPolicy cmdlet and the Filter parameter to return a
collection of all the site-level policies; the filter value "site:*" ensures that only policies that have an Identity that
begins with the string value "site" are returned. That filtered collection is then piped to the
Remove-CsConferencingPolicy cmdlet, which deletes each item in the collection.

-------------------------- Example 3 --------------------------

Get-CsConferencingPolicy | Where-Object {$_.MaxMeetingSize -gt 100} | Remove-CsConferencingPolicy

In Example 3, all the policies that allow a maximum meeting size (MaxMeetingSize) of more than 100 people are
deleted. To do this, the command first uses the Get-CsConferencingPolicy cmdlet to retrieve a collection of all the
conferencing policies configured for use in the organization. That collection is then piped to the Where-Object
cmdlet, which applies a filter that limits the returned data to those policies where the MaxMeetingSize value is
greater than 100. Finally, that filtered collection is passed to the Remove-CsConferencingPolicy cmdlet, which deletes
all the policies in the filtered collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present, causes the Remove-CsConferencingPolicy cmdlet to delete the per-user policy even if the policy in
question is currently assigned to at least one user. If not present, you will be asked to confirm the deletion request
before the policy will be removed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the conferencing policy to be removed. Conferencing policies can be configured at the global,
site, or per-user scopes. To remove the global policy, use this syntax: -Identity global . (Note that the global policy
cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a site
policy, use syntax similar to this: -Identity site:Redmond . To remove a per-user policy, use syntax similar to this:
-Identity SalesConferencingPolicy .

Wildcards are not allowed when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the conferencing
policy is being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingPolicy object. The Remove-CsConferencingPolicy
cmdlet accepts pipelined instances of the meeting policy object.

Outputs
The Remove-CsConferencingPolicy cmdlet does not return a value or object. Instead, the cmdlet deletes instances of
the Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingPolicy object.

Related Links
Get-CsConferencingPolicy
Grant-CsConferencingPolicy
New -CsConferencingPolicy
Set-CsConferencingPolicy
minutes to read • Edit Online

Remove-CsConfigurationStoreLocation
In ths Article

Removes the Active Directory service control point for the Central Management store. This cmdlet was introduced
in Lync Server 2010.

Syntax
Remove-CsConfigurationStoreLocation [-GlobalSettingsDomainController <Fqdn>] [-Force] [-Report <String>]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Active Directory Domain Services uses service control points (SCP ) to help computers locate services. For example,
when you install Skype for Business Server, an SCP is created that provides location information for the Central
Management store used to maintain Skype for Business Server data. Computers that need access to the database
connect to Active Directory and use the information contained in the SCP to help them locate the correct computer
and the correct instance of SQL Server.
As noted, when you install Skype for Business Server, an SCP for the Central Management store is automatically
created for you. Typically, you do not want to delete that SCP; if you do, computers will not be able to locate the
database. However, there might be times (perhaps when troubleshooting a problem) when you will need to delete
the SCP. To do that, use the Remove-CsConfigurationStoreLocation cmdlet. After the SCP has been deleted, you can
recreate it (or create a new service control point) by using the Set-CsConfigurationStoreLocation cmdlet.

Examples
-------------------------- Example 1 ------------------------

Remove-CsConfigurationStoreLocation

The command shown in Example 1 removes the Active Directory service control point for the Central Management
store. To restore this SCP (or to create a new SCP ), you must run the Set-CsConfigurationStoreLocation cmdlet.
-------------------------- Example 2 ------------------------

Remove-CsConfigurationStoreLocation -Report C:\Logs\Store_Location.html

Example 2 also removes the Active Directory service control point for the Central Management store. In addition to
deleting the SCP, this command records information about the success (or failure) of the operation to the log file
C:\Logs\Store_Location.html. To create this log file, the command uses the Report parameter followed by the path
to the log file where information should be recorded. If this file already exists, the contents will be overwritten when
the command runs. If the file does not exist, it will be created when the command runs.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
Fully qualified domain name (FQDN ) of a domain controller where global settings are stored. If global settings are
stored in the Active Directory System container, then this parameter must point to the root domain controller. If
global settings are stored in the Configuration container, then any domain controller can be used and this
parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ConfigurationStore.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Remove-CsConfigurationStoreLocation cmdlet does not accept pipelined input.

Outputs
The Remove-CsConfigurationStoreLocation cmdlet does not return any objects or values.

Related Links
Get-CsConfigurationStoreLocation
Set-CsConfigurationStoreLocation
minutes to read • Edit Online

Remove-CsConversationHistoryConfiguration
In ths Article

Resets the conversation history configuration settings for the organization. These settings manage conversation
histories for mobile device users.

Syntax
Remove-CsConversationHistoryConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
Prior to the release of Skype for Business Server, conversation histories were stored in the Conversation History
folder in users's mailbox, written by the Skype for Business rich client. Unfortunately, that proved to be a problem
for mobile device users, because the Conversation History folder is typically not replicated to mobile devices. With
Skype for Business Server, however, conversation histories, missed call notifications and missed IM notifications
can be stored on the server in user mailboxes; this change makes these items readily available to mobile devices.
Administrators can manage the server-side storage of these conversation histories by using the conversation
history configuration settings. Just keep in mind that a single, global collection of these settings is used to manage
conversation histories throughout your deployment. There is no option for creating additional conversation history
settings at the site, service, or per-user scope.
Despite the name, the Remove-CsConversationHistoryConfiguration cmdlet does not actually delete the global
collection of settings; that's because the global collection cannot be deleted. Instead, the
Remove-CsConversationHistoryConfiguration cmdlet resets all the properties in the global collection to their default
values. For example, when you install Skype for Business Server the CachedUserThreshold property is set to
1000000. Suppose you change this value to 500000. If you run the Remove-CsConversationHistoryConfiguration
cmdlet then CachedUserThreshold will revert back to its default value of 1000000.

Examples
-------------------------- Example 1 --------------------------

Remove-CsConversationHistoryConfiguration -Identity "global"

The command shown in Example 1 resets all the properties in the global collection of conversation history
configuration settings to their default values.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the conversation history configuration settings to be deleted. Because there is only a single,
global collection of settings per deployment, the only allowed syntax is the following:
-Identity "global"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
accepts pipelined instances of the
Remove-CsConversationHistoryConfiguration
Microsoft.Rtc.Management.WritableConfig.Settings.ConversationHistory.ConversationHistorySettings object.

Outputs
None. Instead, Remove-CsConversationHistoryConfiguration resets instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.ConversationHistory.ConversationHistorySettings object.

Related Links
Get-CsConversationHistoryConfiguration
Set-CsConversationHistoryConfiguration
minutes to read • Edit Online

Remove-CsCpsConfiguration
In ths Article

Removes an existing Call Park service configuration. Call parking is a service that allows a user to "park" an
incoming phone call. Parking a call transfers it to a number in a specified range, or orbit and then immediately
places the call on hold. Anyone (not just the person who originally answered the call) can resume the conversation
from any telephone simply by entering the correct number. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsCpsConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet is used to remove a Call Park service configuration. A Call Park service configuration specifies what
happens to a call after it has been parked. For example, if a parked call isn't answered after a period of time it can be
automatically forwarded to someone else, such as an administrator, or to a Response Group. Calls can be
configured to ring after a certain period of time to ensure the call isn't forgotten. In addition, Call Park service can
be configured to play music on hold to the caller while the call is parked.
This cmdlet can be used to remove any Call Park configurations, including the Global configuration. In the case of
the Global configuration, however, the configuration will not actually be removed; instead, it will simply be reset to
the default values.

Examples
-------------------------- Example 1 --------------------------

Remove-CsCpsConfiguration -Identity site:Redmond1

Example 1 uses the Remove-CsCpsConfiguration cmdlet to delete the Call Park service configuration with the Identity
site:Redmond1. Because identities are unique, this command will result in only one configuration being deleted.
-------------------------- Example 2 --------------------------

Get-CsCpsConfiguration -Filter site:* | Remove-CsCpsConfiguration

In Example 2, all the Call Park service configurations that have been defined at the site scope are deleted. To carry
out this task, the command first uses the Get-CsCpsConfiguration cmdlet and the Filter parameter to return all the
Call Park service configurations that have been defined at the site scope; the wildcard site:* ensures that only
settings that have an Identity that begins with the string value site: will be returned. This filtered collection is then
piped to the Remove-CsCpsConfiguration cmdlet, which proceeds to delete each item in the collection. Note that any
time you remove Call Park service settings from a site, the site will automatically begin to use the Call Park service
settings configured at the global scope.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the Call Park service configuration you want to remove. This identifier will be either Global
or site:<sitename>, where <sitename> is the name of the site to which the configuration applies.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings object.
Accepts pipelined input of Call Park service configuration objects.

Outputs
Removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings.
Related Links
New -CsCpsConfiguration
Set-CsCpsConfiguration
Get-CsCpsConfiguration
Set-CsCallParkServiceMusicOnHoldFile
minutes to read • Edit Online

Remove-CsDeviceUpdateConfiguration
In ths Article

Removes the specified device update configuration settings. These settings help manage the Device Update Web
service, a Skype for Business Server component that enables administrators to distribute firmware updates to
telephones and other devices running Skype for Business Phone Edition. This cmdlet was introduced in Lync Server
2010.

Syntax
Remove-CsDeviceUpdateConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The Device Update Web service provides a way for administrators to distribute firmware updates to devices that
run Skype for Business Phone Edition. Periodically, administrators upload a set of device update rules to Skype for
Business Server. After those rules have been tested and approved, they can then be applied to the appropriate
devices as those devices connect to the system. Devices check for updates when they are first powered on, then
check again when a user logs on. After that, devices check for updates every 24 hours.
Skype for Business Server uses device update configuration settings to manage the Device Update Web service;
these configuration settings can be applied at the global scope or at the site scope. By default, settings are found
only at the global scope; however, you can use the New-CsDeviceUpdateConfiguration cmdlet to assign customized
settings at the site scope as well.
In addition, you can use the Remove-CsDeviceUpdateConfiguration cmdlet to delete settings that have been assigned
at the site scope. When you run this cmdlet against a site, the device update configuration settings assigned to that
site are removed. You can also run the Remove-CsDeviceUpdateConfiguration cmdlet against the global settings. In
that case, however, the global settings will not be removed; that's because you cannot remove the global device
update configuration settings. Instead, the global properties will be reset to their default values. For example,
suppose you have changed the global property MaxLogCacheLimit to 1,024,000 bytes. If you run the
Remove-CsDeviceUpdateConfiguration cmdlet against the global settings, the global settings will not be removed;
however, any properties that have been modified will be reset to their default values. That means that
MaxLogCacheLimit will be reset to 512,000 bytes.

Examples
-------------------------- Example 1 ------------------------

Remove-CsDeviceUpdateConfiguration -Identity global

In Example 1, the Remove-CsDeviceUpdateConfiguration cmdlet is used to "remove" the global device update
configuration settings. Because the global settings cannot actually be removed, the command will not delete
anything; however, all the properties in the global device update configuration settings will be reset to their default
values.
-------------------------- Example 2 ------------------------

Remove-CsDeviceUpdateConfiguration -Identity site:Redmond

The command shown in Example 2 removes the device update configuration settings with the Identity
site:Redmond. Because these settings were configured at the site scope, they will be deleted and the Redmond site
will no longer have its own set of device update configuration settings.
-------------------------- Example 3 ------------------------

Get-CsDeviceUpdateConfiguration -Filter "site:*" | Remove-CsDeviceUpdateConfiguration

In Example 3, all the device update configuration settings that have been configured at the site scope are removed.
To do this, the Get-CsDeviceUpdateConfiguration cmdlet and the Filter parameter are used to return all the settings
that have an Identity that begins with the string value "site:"; by definition, these will all be settings that were
configured at the site scope. That collection is then piped to the Remove-CsDeviceUpdateConfiguration cmdlet, which
removes each of the items in the collection.
-------------------------- Example 4 ------------------------

Get-CsDeviceUpdateConfiguration | Where-Object {$_.MaxLogFileSize -lt 1024000} | Remove-


CsDeviceUpdateConfiguration

In Example 4, all the device update configuration settings that have a MaxLogFileSize property greater than
1024000 bytes are deleted. To accomplish this task, the Get-CsDeviceUpdateConfiguration cmdlet is first called in
order to return a collection of all the device update configuration settings. This collection is piped to the
Where-Object cmdlet, which selects only those configuration settings where the MaxLogFileSize property is greater
than 1024000 bytes. That filtered collection is then piped to the Remove-CsDeviceUpdateConfiguration cmdlet, which
deletes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the device update configuration settings to be removed. To refer to the global settings, use
this syntax: -Identity global . To refer to site settings, use syntax similar to this: -Identity site:Redmond . Note that
you cannot use wildcards when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration object. The
Remove-CsDeviceUpdateConfiguration cmdlet accepts pipelined instances of the device update configuration object.

Outputs
None. Instead, the Remove-CsDeviceUpdateConfiguration cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration object.

Related Links
Get-CsDeviceUpdateConfiguration
New -CsDeviceUpdateConfiguration
Set-CsDeviceUpdateConfiguration
minutes to read • Edit Online

Remove-CsDeviceUpdateRule
In ths Article

Removes a device update rule configured for use in your organization. Device update rules are used to associate
firmware updates with devices that run Skype for Business Phone Edition. This cmdlet was introduced in Lync
Server 2010.

Syntax
Remove-CsDeviceUpdateRule [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server uses device update rules as a way to provide firmware updates to devices that run Skype
for Business Phone Edition. Periodically, administrators upload a set of device update rules to Skype for Business
Server; after those rules have been tested and approved, they are then automatically downloaded and applied to
the appropriate devices as those devices connect to the system. By default devices check for new update rules each
time they turn on and connect to Skype for Business Server. Devices also check for updates every 24 hours after
that initial sign on.
Administrators cannot create their own device update rules; update rules can be created only by downloading and
importing rule sets from the Microsoft website. This means that, over time, you are likely to collect rules that are
outdated or are of no use in your organization. (For example, if your organization no longer uses LG -Nortel phones,
then you no longer need the firmware updates for those devices.) Although these unneeded rules do not create any
problems, they can complicate administration: it can be confusing to run the Get-CsDeviceUpdateRule cmdlet to
return a collection of all your device update rules, only to discover that many of those rules are not applicable in
your organization. To help lessen this confusion, the Remove-CsDeviceUpdateRule cmdlet can be used to remove any
device update rule (or set of rules) that has been imported for use.

Examples
-------------------------- Example 1 ------------------------

Remove-CsDeviceUpdateRule -Identity service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-420a-82ac-


dc2d9b1222ff9

Example 1 deletes the device update rule with the Identity service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-
2588-420a-82ac-dc2d9b1222ff9. After the rule has been deleted, the corresponding firmware update will no
longer be available for use.
-------------------------- Example 2 ------------------------

Get-CsDeviceUpdateRule | Remove-CsDeviceUpdateRule
The command shown in Example 2 removes all the device update rules that have been configured for use in your
organization. This is done by calling the Get-CsDeviceUpdateRule cmdlet (without any parameters) in order to return
a collection of all the device update rules currently in use. That collection is then piped to the
Remove-CsDeviceUpdateRule cmdlet, which, in turn, deletes each rule in the collection.

-------------------------- Example 3 ------------------------

Get-CsDeviceUpdateRule -Filter service:WebServer:atl-cs-001.litwareinc.com* | Remove-CsDeviceUpdateRule

In Example 3, all the device update rules that have been imported to the service WebServer:atl-cs-
001.litwareinc.com are removed. To do this, the command first uses the Get-CsDeviceUpdateRule cmdlet and the
Filter parameter to retrieve all the device update rules that have an Identity that begins with the string value
"service:WebServer:atl-cs-001.litwareinc.com". This collection is then piped to the Remove-CsDeviceUpdateRule
cmdlet, which deletes each rule in that collection.
-------------------------- Example 4 ------------------------

Get-CsDeviceUpdateRule | Where-Object {$_.Brand -eq "LG-Nortel"} | Remove-CsDeviceUpdateRule

Example 4 deletes all the device update rules that have a Brand equal to "LG -Nortel". To do this, the cmdlet calls the
Get-CsDeviceUpdateRule cmdlet without any parameters in order to retrieve a collection of all the device update
rules in use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only those
rules where the Brand is equal to "LG -Nortel". The filtered collection is then piped to the Remove-CsDeviceUpdateRule
cmdlet, which removes each rule in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the device update rule. The Identity of a device update rule is composed of two parts: The
service scope where the rule has been applied (for example, service:WebServer:atl-cs-001.litwareinc.com) and the
globally unique identifier (GUID ) that was pre-assigned to the rule (for example, d5ce3c10-2588-420a-82ac-
dc2d9b1222ff9). Based on this, the Identity for a given device update rule will look something like this:
"service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-420a-82ac-dc2d9b1222ff9".
Wildcards are not allowed when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdate.Rule object. The
Remove-CsDeviceUpdateRule cmdlet accepts pipelined instances of the device update rule object.

Outputs
The Remove-CsDeviceUpdateRule cmdlet does not return a value or object. Instead, the cmdlet deletes instances of
the Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Rule object.

Related Links
Approve-CsDeviceUpdateRule
Get-CsDeviceUpdateRule
Reset-CsDeviceUpdateRule
Restore-CsDeviceUpdateRule
minutes to read • Edit Online

Remove-CsDiagnosticConfiguration
In ths Article

Removes one or more of the diagnostic configuration settings collections currently in use in your organization.
Diagnostic configuration settings are used to determine whether traffic to or from a given domain or Uniform
Resource Identifier (URI) is recorded in your Skype for Business Server log files. This cmdlet was introduced in
Lync Server 2010.

Syntax
Remove-CsDiagnosticConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
If you enable logging for Skype for Business Server, then, by default, traffic traveling to or from any domain or URI
is included in those log files. This ensures that as much information as possible is recorded in the log files.
However, this can occasionally result in too much information. For example, if you are experiencing connectivity
problems with a particular domain, you might want to limit logging to traffic between your network and that
domain; that makes it easier for you to identify the relevant records and, in turn, might make it easier for you to
diagnose and correct the problem.
Diagnostic configuration settings make it possible for you to specify the domains or URIs that will be recorded in
the log files; if a diagnostic filter is enabled then only traffic to or from the specified domains will be logged. Skype
for Business Server enables you to create diagnostic configuration settings and apply diagnostic filters, at the site
scope. In turn, this enables you to apply filtering to, say, the Redmond site while leaving filtering disabled on your
other sites.
You can use the Remove-CsDiagnosticConfiguration cmdlet to remove any of the diagnostic configuration settings
you have created at the site scope. The Remove-CsDiagnosticConfiguration cmdlet can also be run against the global
diagnostic configuration settings. In that case, however, the collection will not be deleted; that's because Skype for
Business Server does not allow you to delete global collections. Instead, removing a global collection causes the
properties in that collection to be reset to their default values. That means that all the filters added to that collection
will be removed.

Examples
-------------------------- Example 1 ------------------------

Remove-CsDiagnosticConfiguration -Identity site:Redmond

Example 1 deletes the diagnostic configuration settings that have the Identity site:Redmond.
-------------------------- Example 2 ------------------------
Get-CsDiagnosticConfiguration -Filter site:* | Remove-CsDiagnosticConfiguration

The command shown in Example 2 deletes all the diagnostic configuration settings that have been configured at
the site scope. To do this, the command calls the Get-CsDiagnosticConfiguration cmdlet along with the Filter
parameter; the filter value "site:*" limits the returned data to settings where the Identity begins with the characters
"site:". The filtered collection is then piped to the Remove-CsDiagnosticConfiguration cmdlet, which removes each
item in that collection.
-------------------------- Example 3 ------------------------

Get-CsDiagnosticConfiguration | Remove-CsDiagnosticConfiguration

In Example 3, the command deletes all the diagnostic configuration settings currently in use in the organization. To
perform this task, the Get-CsDiagnosticConfiguration cmdlet is first called without any parameters in order to
return a collection of all the diagnostic configuration settings currently in use in the organization. These items are
then piped to the Remove-CsDiagnosticConfiguration cmdlet, which removes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the diagnostic configuration settings to be removed. To remove settings configured at the site
scope, use syntax similar to this: -Identity "site:Redmond" .

The Remove-CsDiagnosticConfiguration cmdlet can also be run against the global configuration settings; in that case,
use this syntax: -Identity global . However, the global settings will not actually be removed; instead, the properties
found in the global settings will be reset to their default values.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings object. The
Remove-CsDiagnosticConfiguration cmdlet accepts pipelined instances of the diagnostic filter settings object.

Outputs
None. Instead, the Remove-CsDiagnosticConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings object.

Related Links
Get-CsDiagnosticConfiguration
New -CsDiagnosticConfiguration
Set-CsDiagnosticConfiguration
minutes to read • Edit Online

Remove-CsDiagnosticHeaderConfiguration
In ths Article

Removes one or more of the diagnostic header configuration setting collections currently in use in your
organization. Diagnostic header configuration settings determine whether SIP messages are accompanied by
header information that can be useful in troubleshooting and error reporting. This cmdlet was introduced in Lync
Server 2010.

Syntax
Remove-CsDiagnosticHeaderConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Administrators have the option of attaching an ms-diagnostic header to each SIP message sent in their
organization. This message (which is not visible to end users) contains information that might be useful in
troubleshooting connection problems or in reporting errors. For example, the diagnostic header might contain
error codes that enable the client application to take a predetermined course of action should a specific situation
arise.
For SIP messages sent within your internal network, there's little reason not to include these diagnostic headers:
they have a minimal impact on message size and can be an invaluable tool for administrators trying to
troubleshoot connectivity problems. However, diagnostic headers also contain information -- such as the fully
qualified domain names (FQDNs) of your SIP servers -- that you might not want to make available to people
outside the internal network. Because of this, the diagnostic header configuration settings enable you to decide
whether you want diagnostic headers sent to users on external networks (such as users in a federated domain)
and/or to outside users. (Outside users are users who have connected from outside the internal network and have
not yet been authenticated.)
Alternatively, you can create custom settings at the site scope or at the service scope (for the Edge Server or
Registrar service). That way, you can choose to include diagnostic headers on messages sent from one site, or
through one Edge Server, while disallowing headers on messages sent from other sites or through other Edge
Servers.
Any new collections you create (at either the site or the service scope) can later be removed by using the
Remove-CsDiagnosticHeaderConfiguration cmdlet. You can also run this cmdlet against the global collection. In that
case, however, the global collection will not be removed because you can't remove the global collection. Instead, the
two properties contained in the global collection -- SendToExternalNetworks and
SendToOutsideUnauthenticatedUsers -- will be reset to their default values (which, in each case, is False).

Examples
-------------------------- Example 1 ------------------------
Remove-CsDiagnosticHeaderConfiguration -Identity site:Redmond

In Example 1, the diagnostic header configuration settings that have the Identity site:Redmond are removed.
-------------------------- Example 2 ------------------------

Get-CsDiagnosticHeaderConfiguration -Filter service:* | Remove-CsDiagnosticHeaderConfiguration

The command shown in Example 2 deletes all the diagnostic header configuration settings that have been applied
at the service scope. To do this, the command first calls the Get-CsDiagnosticHeaderConfiguration cmdlet and the
Filter parameter. The filter value "service:*" limits the returned data to those settings where the Identity begins with
the characters "service:". This filtered collection is then piped to the Remove-CsDiagnosticHeaderConfiguration cmdlet,
which deletes each item in the collection.
-------------------------- Example 3 ------------------------

Get-CsDiagnosticHeaderConfiguration | Where-Object {$_.SendToExternalNetworks -eq $True} | Remove-


CsDiagnosticHeaderConfiguration

Example 3 deletes all the diagnostic header configuration settings that allow sending to external networks. To do
this, the command first uses the Get-CsDiagnosticHeaderConfiguration cmdlet to return a collection of all the
diagnostic header settings currently in use. This collection is piped to the Where-Object cmdlet, which picks out only
those settings where the SendToExternalNetworks property is equal to True. These settings are then piped to the
Remove-CsDiagnosticHeaderConfiguration cmdlet, which deletes each setting that allows sending to external
networks.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the diagnostic header configuration settings to be removed. To remove settings configured at
the site scope, use syntax similar to this: -Identity "site:Redmond" . To remove settings configured at the service
scope, use syntax similar to this: -Identity "service:EdgeServer:atl-edge-001.litwareinc.com" .

The Remove-CsDiagnosticHeaderConfiguration cmdlet can also be run against the global configuration settings; in
that case, use this syntax: -Identity global . Note, however, that the global settings will not actually be removed;
instead, the properties found in the global settings will be reset to their default values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings object. The
Remove-CsDiagnosticHeaderConfiguration cmdlet accepts pipelined instances of the diagnostic header settings object.

Outputs
None. Instead, the Remove-CsDiagnosticHeaderConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings object.

Related Links
Get-CsDiagnosticHeaderConfiguration
New -CsDiagnosticHeaderConfiguration
Set-CsDiagnosticHeaderConfiguration
minutes to read • Edit Online

Remove-CsDialInConferencingAccessNumber
In ths Article

Removes an existing dial-in conferencing access number. Dial-in conferencing provides a way for users to use a
"regular" telephone or mobile phone (that is, a device on the public switched telephone network (PSTN )) to join the
audio portion of a conference. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsDialInConferencingAccessNumber [-Identity] <UserIdParameter> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Dial-in conferencing enables users to use any kind of telephone (such as a standard "land line," a mobile phone, or
a Voice over Internet Protocol phone) to join the audio portion of a conference. This enables users to participate in
the meeting even if they do not have a computer or an Internet connection. Users have full audio capabilities: they
can speak to other participants and hear everything that takes place. They just aren't able to see shared slides, video
feeds, or other visual elements.
In order to provide users with dial-in conferencing capabilities, you must create dial-in conferencing access
numbers: phone numbers users can call in order to be connected to a meeting. Dial-in conferencing access
numbers are created by using the New-CsDialInConferencingAccessNumber cmdlet. When you create a new dial-in
conferencing access number, you actually create a new contact object in Active Directory Domain Services; this
contact object is used to represent the access number and all its properties. The
Remove-CsDialInConferencingAccessNumber cmdlet enables you to delete any of the dial-in conferencing numbers
created by using the New-CsDialInConferencingAccessNumber cmdlet. When you run the
Remove-CsDialInConferencingAccessNumber cmdlet, the cmdlet not only deletes the number from the collection of
dial-in conferencing access numbers but also deletes the Active Directory contact object that represents the given
access number.

Examples
-------------------------- Example 1 ------------------------

Remove-CsDialInConferencingAccessNumber -Identity sip:RedmondDialIn@litwareinc.com

The command shown in Example 1 deletes the dial-in conferencing access number that has the Identity
sip:RedmondDialIn@litwareinc.com.
-------------------------- Example 2 ------------------------

Get-CsDialInConferencingAccessNumber -Filter {LineUri -like "tel:+1800*"} | Remove-


CsDialInConferencingAccessNumber
Example 2 deletes all the toll free dial-in conferencing access numbers; in this example, that means any numbers
that have a LineUri that begins with "tel:+1800". To do this, the command uses the
Get-CsDialInConferencingAccessNumber cmdlet and the Filter parameter to return a collection of all the toll free
access numbers configured for use in the organization; the filter value {LineUri -like "tel:+1800*"} limits the
returned data to those numbers where the LineUri property begins with the string value "tel:+1800". This filtered
collection is then piped to the Remove-CsDialInConferencingAccessNumber cmdlet, which deletes each number in the
collection.
-------------------------- Example 3 ------------------------

Get-CsDialInConferencingAccessNumber -Region "Redmond" | Remove-CsDialInConferencingAccessNumber

In Example 3, all the dial-in conferencing access numbers for the Redmond region are deleted. To carry out this
task, the Get-CsDialInConferencingAccessNumber cmdlet and the Region parameter are first called in order to return a
collection of all the access numbers for the Redmond region. (That is, any access number that includes Redmond in
its list of regions.) This collection is then piped to the Remove-CsDialInConferencingAccessNumber cmdlet, which
deletes all the access numbers in the collection.
-------------------------- Example 4 ------------------------

Get-CsDialInConferencingAccessNumber -Region $Null | Remove-CsDialInConferencingAccessNumber

In Example 4, all the dial-in conferencing access numbers that are not associated with a region are deleted. To do
this, the Get-CsDialInConferencingAccessNumber cmdlet is called along with the Region parameter and the parameter
value $Null; this returns a collection of access numbers where the Regions property is empty. That collection is then
piped to the Remove-CsDialInConferencingAccessNumber cmdlet, which deletes all the numbers in the collection.
-------------------------- Example 5 ------------------------

Get-CsDialInConferencingAccessNumber | Where-Object {$_.PrimaryLanguage -ne "it-IT"} | Remove-


CsDialInConferencingAccessNumber

The command shown in Example 5 deletes any dial-in conferencing access numbers where the primary language is
not set to Italian. To do this, the Get-CsDialInConferencingAccessNumber cmdlet is first called without any parameters
in order to return a collection of all the dial-in conferencing access numbers configured for use in the organization.
That collection is then piped to the Where-Object cmdlet, which picks out any numbers where the
PrimaryLanguage property is not equal to Italian ("it-IT"). Finally, the filtered collection is piped to the
Remove-CsDialInConferencingAccessNumber cmdlet, which deletes all the access numbers in the collection.

-------------------------- Example 6 ------------------------

Get-CsDialInConferencingAccessNumber -Filter {DisplayName -eq "Default Dial-In Access Number"} | Remove-


CsDialInConferencingAccessNumber

In Example 6, the dial-in conferencing access number with the display name "Default Dial-In Access Number" is
deleted. To accomplish this task, the Get-CsDialInConferencingAccessNumber cmdlet is called along with the Filter
parameter and the filter value {DisplayName -eq "Default Dial-In Access Number"}; this filter value limits the
returned data to the access number where the DisplayName property is equal to "Default Dial-In Access Number".
The returned object is then piped to the Remove-CsDialInConferencingAccessNumber cmdlet, which deletes the
corresponding access number.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
SIP address of the dial-in conferencing access number (that is, the contact object that represents that number) to be
removed. You must include the sip: prefix when specifying the Identity; for example:
-Identity "sip:RedmondDialIn@litwareinc.com" .

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.AccessNumber object. The Remove-CsDialInConferencingAccessNumber cmdlet
accepts pipelined input of the access number object.

Outputs
The Remove-CsDialInConferencingAccessNumber cmdlet deletes instances of the
Microsoft.Rtc.Management.Xds.AccessNumber object.

Related Links
Get-CsDialInConferencingAccessNumber
New -CsDialInConferencingAccessNumber
Set-CsDialInConferencingAccessNumber
minutes to read • Edit Online

Remove-CsDialInConferencingConfiguration
In ths Article

Removes one or more collections of dial-in conferencing configuration settings. These settings determine how
Skype for Business Server responds when users join or leave a dial-in conference. This cmdlet was introduced in
Lync Server 2010.

Syntax
Remove-CsDialInConferencingConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
When users join (or leave) a dial-in conference, Skype for Business Server can respond in different ways. For
example, participants might be asked to record their name before they can enter the conference itself. Likewise,
administrators can decide whether they want to have Skype for Business Server announce that dial-in participants
have either left or joined a conference.
These conference "join behaviors" are managed using dial-in conferencing configuration settings; these settings can
be configured at the global scope or at the site scope. (Settings configured at the site scope take precedence over
settings configured at the global scope.) When you install Skype for Business Server, a global collection of dial-in
conferencing configuration settings will be created for you. If you want to have different settings for a site (or set of
sites), you can create those collections by using the New-CSDialInConferencingConfiguration cmdlet.

The Remove-CSDialInConferencingConfiguration cmdlet deletes any dial-in conferencing settings that have been
configured at the site scope. When these site-specific settings are deleted, users in the affected sites will have their
dial-in conferencing behaviors governed by the global settings.
You can also run the Remove-CSDialInConferencingConfiguration cmdlet against the global dial-in conferencing
settings. If you do that, the global settings will not be removed; that's because the global settings cannot be
removed. Instead, all the properties within that collection of settings will be reset to their default values.

Examples
-------------------------- Example 1 ------------------------

Remove-CSDialInConferencingConfiguration -Identity "site:Redmond"

In Example 1, the dial-in conferencing configuration settings for the Redmond site are deleted.
-------------------------- Example 2 ------------------------

Get-CSDialInConferencingConfiguration -Filter "site:*" | Remove-CSDialInConferencingConfiguration


In Example 2, all the dial-in conferencing settings that have been configured at the site scope are deleted. To do this,
the command first uses the Get-CSDialInConferencingConfiguration cmdlet and the Filter parameter to return a
collection of all the dial-in conferencing settings that have been configured at the site scope. (The filter value "site:*"
ensures that only settings that have an Identity that begins with the string value "site:" are returned.) This filtered
collection is then piped to the Remove-CSDialInConferencingConfiguration cmdlet, which removes each item in the
collection.
-------------------------- Example 3 ------------------------

Get-CSDialInConferencingConfiguration | Where-Object {$_.EnableNameRecording -eq $False} | Remove-


CSDialInConferencingConfiguration

In Example 3, all the dial-in conferencing configuration settings that do not use name recording are deleted. To
carry out this task, the command first calls the Get-CSDialInConferencingConfiguration cmdlet without any
parameters in order to return a collection of all the dial-in conferencing configuration settings currently in use in
the organization. This collection is then piped to the Where-Object cmdlet, which picks out only those settings
where the EnableNameRecording property is equal to False. In turn, this filtered collection is piped to the
Remove-CSDialInConferencingConfiguration cmdlet, which deletes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the dial-in conferencing configuration settings to be removed. To refer to the global
settings, use this syntax: -Identity global . To refer to site settings, use syntax similar to this:
-Identity site:Redmond . Note that you cannot use wildcards when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfiguration
object. The Remove-CSDialInConferencingConfiguration cmdlet accepts pipelined instances of the dial-in conferencing
configuration object.

Outputs
None. Instead, the Remove-CSDialInConferencingConfiguration cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfiguration
object.

Related Links
Get-CsDialInConferencingConfiguration
New -CsDialInConferencingConfiguration
Set-CsDialInConferencingConfiguration
minutes to read • Edit Online

Remove-CsDialInConferencingDtmfConfiguration
In ths Article

Removes an existing collection of dual-tone multifrequency (DTMF ) signaling settings used for dial-in conferencing.
DTMF enables users who dial in to a conference to control conference settings (such as muting and unmuting
themselves or locking and unlocking the conference) by using the keypad on their telephone. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsDialInConferencingDtmfConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Skype for Business Server enables users to join conferences by dialing in over the telephone. Dial-in users are not
able to view video or exchange instant messages with other conference attendees, but they are able to fully
participate in the audio portion of the meeting.
In addition to being able to join a conference, users are also able to manage selected portions of that conference by
using their telephone keypad. (The specific conference settings users can and cannot manage depend on whether
or not the user is a presenter.) For example, by default users can press the 6 key on their keypad to mute or unmute
themselves. Participants can privately play the names of all the other people attending the meeting, while
presenters can do such things as mute and unmute all the meeting participants and enable/disable the
announcement that is played any time someone joins or leaves a conference.
The ability to make selections like these by using a telephone keypad is known as dual-tone multifrequency (DTMF )
signaling: if you have ever dialed a phone number and been instructed to do something along the order of "Press 1
for English or press 2 for Spanish," then you have used DTMF signaling.
When you install Skype for Business Server, a global collection of DTMF settings is created for you. In addition to
those global settings, you can use the New-CSDialInConferencingDtmfConfiguration cmdlet to create custom settings
on a site-by-site basis. Settings you create at the site scope can later be removed by using the
Remove-CSDialInConferencingDtmfConfiguration cmdlet. When you remove DTMF settings applied at the site scope,
users in the affected site will automatically fall under the jurisdiction of the global DTMF configuration settings.
You can also run the Remove-CSDialInConferencingDtmfConfiguration cmdlet against the global settings. If you do
that, however, the global settings will not be removed; that's because you cannot remove the global DTMF settings.
Instead, the properties in the global settings will be reset to their default values. For example, suppose you have
modified the global settings to make the 4 key the mute/unmute key. If you now run the
Remove-CSDialInConferencingDtmfConfiguration cmdlet against the global settings, the value of the mute/unmute key
will be reset to the default value 6.

Examples
-------------------------- Example 1 ------------------------
Remove-CSDialInConferencingDtmfConfiguration -Identity site:Redmond

Example 1 deletes the collection of DTMF configuration settings that has the Identity site:Redmond.
-------------------------- Example 2 ------------------------

Get-CSDialInConferencingDtmfConfiguration -Filter "site:*" | Remove-CSDialInConferencingDtmfConfiguration

The command shown in Example 2 deletes all the DTMF settings that have been configured at the site scope. To
perform this task, the command first uses the Get-CSDialInConferencingDtmfConfiguration cmdlet and the Filter
parameter to return a collection of all the DTMF settings that have been configured at the site scope; the filter value
"site:*" ensures that only settings that have an Identity that begins with the string value "site:" are returned. This
filtered collection is then piped to the Remove-CSDialInConferencingConfiguration cmdlet, which removes each item
in that collection.
-------------------------- Example 3 ------------------------

Get-CSDialInConferencingDtmfConfiguration | Where-Object {$_.PrivateRollCallCommand -eq $Null} | Remove-


CSDialInConferencingDtmfConfiguration

In Example 3, the Remove-CSDialInConferencingDtmfConfiguration cmdlet is used to delete all the DTMF settings
where the PrivateRollCallCommand property is equal to a null value. (That is, where the private roll call command
has been disabled.) To do this, the command first uses the Get-CSDialInConferencingDtmfConfiguration cmdlet to
return a collection of all the DTMF settings currently in use in the organization. This collection is then piped to the
Where-Object cmdlet, which selects only those settings where PrivateRollCallCommand is equal to a null value. The
filtered collection is then piped to the Remove-CSDialInConferencingDtmfConfiguration cmdlet, which deletes each
item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of DTMF settings to be removed. To "remove" the global settings, use this syntax:
-Identity global . ( As noted earlier, you cannot actually remove the global setting; all you can do is reset the
properties to their default values.) To remove a collection configured at the site scope, use syntax similar to this:
-Identity site:Redmond . You cannot use wildcards when specifying an Identity

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfiguration
object. The Remove-CsDialInConferencingDtmfConfiguration cmdlet accepts pipelined instances of the dial-in
conference DTMF configuration object.

Outputs
None. Instead, the Remove-CSDialInConferencingDtmfConfiguration cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfiguration
object.

Related Links
Get-CsDialInConferencingDtmfConfiguration
New -CsDialInConferencingDtmfConfiguration
Set-CsDialInConferencingDtmfConfiguration
minutes to read • Edit Online

Remove-CsDialPlan
In ths Article

Removes the specified dial plan. This cmdlet can also be used to remove the global dial plan. If you remove the
global dial plan, however, the dial plan will not actually be removed; instead, the settings will simply be reset to their
default values. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsDialPlan [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet removes an existing dial plan (also known as a location profile). Dial plans provide information required
to enable Enterprise Voice users to make telephone calls. Dial plans are also used by the Conferencing Attendant
application for dial-in conferencing. A dial plan determines such things as which normalization rules are applied
and whether a prefix must be dialed for external calls.
Note: Removing a dial plan will also remove any associated normalization rules. If the global dial plan is removed,
any associated normalization rules will also be removed, but a default global normalization rule will be created.

Examples
-------------------------- Example 1 --------------------------

Remove-CsDialPlan -Identity RedmondDialPlan

Example 1 uses the Remove-CsDialPlan cmdlet to delete the per-user dial plan with the Identity RedmondDialPlan.
Note that when you delete a dial plan, you do not necessarily have to assign a new plan to users who were assigned
the now -deleted plan. Instead, those users will use the dial plan assigned to their service or site, or the global plan.
-------------------------- Example 2 --------------------------

Get-CsDialPlan | Where-Object {$_.Description -match "Redmond"} | Remove-CsDialPlan

In Example 2 all the dial plans that include the word Redmond in their description are deleted. To do this, the
command first calls the Get-CsDialPlan cmdlet to return a collection of all the dial plans configured for use within
the organization. That collection is then piped to the Where-Object cmdlet, which applies a filter that limits the
returned data to profiles that include the word Redmond in their description. After that's done, the filtered collection
is passed to the Remove-CsDialPlan cmdlet, which removes all the dial plans in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the dial plan you want to remove.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile object. The Remove-CsDialPlan cmdlet
accepts pipelined input of dial plan objects.

Outputs
This cmdlet removes instances of the Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile
object.

Related Links
New -CsDialPlan
Set-CsDialPlan
Get-CsDialPlan
Grant-CsDialPlan
Test-CsDialPlan
Remove-CsVoiceNormalizationRule
Get-CsVoiceNormalizationRule
minutes to read • Edit Online

Remove-CsEnhancedEmergencyServiceDisclaimer
In ths Article

Removes the disclaimer text that is used globally to prompt for location information for an Enhanced 9-1-1 (E9-1-
1) implementation. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsEnhancedEmergencyServiceDisclaimer [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
In order for an Enterprise Voice implementation to provide E9-1-1 service, locations must be mapped to ports,
subnets, switches and wireless access points to identify the caller's location. When the caller is connecting from
outside one of these mapped points, he must enter his location manually for it to be received by emergency
services. This cmdlet removes the text string that will be displayed to users who choose not to enter their location
information. This message will be displayed only if the LocationRequired property of the user's location policy is set
to Disclaimer. (You can retrieve location policy settings by calling the Get-CsLocationPolicy cmdlet.) After calling
this cmdlet, a blank message will be displayed to users in this case.

Examples
-------------------------- Example 1 --------------------------

Remove-CsEnhancedEmergencyServiceDisclaimer -Identity global

This command removes the text of the enhanced emergency service disclaimer. Note that this does not remove the
global disclaimer; it still exists. It simply sets the Body property to an empty string.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This value is required and must be set to Global.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Location.EnhancedEmergencyServiceDisclaimer object. Accepts
pipelined input of an enhanced emergency service disclaimer object.

Outputs
This cmdlet does not return a value or an object. It modifies an object of type
Microsoft.Rtc.Management.WritableConfig.Policy.Location.EnhancedEmergencyServiceDisclaimer.

Related Links
Set-CsEnhancedEmergencyServiceDisclaimer
Get-CsEnhancedEmergencyServiceDisclaimer
Get-CsLocationPolicy
minutes to read • Edit Online

Remove-CsExternalAccessPolicy
In ths Article

Enables you to remove an existing external access policy. External access policies determine whether or not your
users can: 1) communicate with users who have Session Initiation Protocol (SIP ) accounts with a federated
organization; 2) communicate with users who have SIP accounts with a public instant messaging (IM ) provider
such as Windows Live and 3) access Skype for Business Server over the Internet, without having to log on to your
internal network. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsExternalAccessPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
When you install Skype for Business Server your users are only allowed to exchange instant messages and
presence information among themselves: by default, they can only communicate with other people who have SIP
accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business
Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on
to Skype for Business Server.
1. That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external
access policies to extend the ability of your users to communicate and collaborate. External access policies can grant
(or revoke) the ability of your users to do any or all of the following:

2. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation
alone will not provide users with this capability. Instead, you must enable federation and then assign users an
external access policy that gives them the right to communicate with federated users.
3. Communicate with people who have SIP accounts with a public instant messaging service such as Windows
Live.
Access Skype for Business Server over the Internet, without having to first log on to your internal network. This
enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or
other remote location.
When you install Skype for Business Server, a global external access policy is automatically created for you. In
addition to the global policy, you can use the New-CsExternalAccessPolicy cmdlet to create external access policies
configured at the site or per-user scopes.
The Remove-CsExternalAccessPolicy cmdlet enables you to delete any policies that were created by using the
New-CsExternalAccessPolicy cmdlet; that means you can delete any policies assigned to the site scope or the per -
user scope. You can also run the Remove-CsExternalAccessPolicy cmdlet against the global external access policy. In
that case, however, the global policies will not be deleted; by design, global policies cannot be deleted. Instead, the
properties of the global policy will simply be reset to their default values.
Examples
-------------------------- Example 1 ------------------------

Remove-CsExternalAccessPolicy -Identity site:Redmond

In Example 1, the external access policy with the Identity site:Redmond is deleted. After the policy is removed, users
in the Redmond site will have their external access permissions governed by the global policy.
-------------------------- Example 2 ------------------------

Get-CsExternalAccessPolicy -Filter site:* | Remove-CsExternalAccessPolicy

Example 2 deletes all the external access policies that have been configured at the site scope. To carry out this task,
the command first uses the Get-CsExternalAccessPolicy cmdlet and the Filter parameter to return a collection of
policies configured at the site scope; the filter value "site:*" limits the returned data to external access policies that
have an Identity that begins with the string value "site:". The filtered collection is then piped to the
Remove-CsExternalAccessPolicy cmdlet, which deletes each policy in the collection.

-------------------------- Example 3 ------------------------

Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True} | Remove-CsExternalAccessPolicy

In Example 3, all the external access policies that allow federation access are deleted. To do this, the command first
calls the Get-CsExternalAccessPolicy cmdlet to return a collection of all the external access policies configured for
use in the organization. This collection is then piped to the Where-Object cmdlet, which picks out only those policies
where the EnableFederationAccess property is equal to True. This filtered collection is then piped to the
Remove-CsExternalAccessPolicy cmdlet, which deletes each policy in the collection.

-------------------------- Example 4 ------------------------

Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True -or $_.EnablePublicCloudAccess -


eq $True} | Remove-CsExternalAccessPolicy

Example 4 deletes all the external access policies that meet at least one of two criteria: federation access is allowed,
public cloud access is allowed, or both are allowed. To carry out this task, the command first uses the
Get-CsExternalAccessPolicy cmdlet to return a collection of all the external access policies configured for use in the
organization. This collection is then piped to the Where-Object cmdlet, which selects only those policies that meet
the following criteria: either EnableFederationAccess is equal to True and/or EnablePublicCloudAccess is equal to
True. Policies meeting one (or both) of those criteria are then piped to and removed by, the
Remove-CsExternalAccessPolicy cmdlet.

To delete all the policies where both EnableFederationAccess and EnablePublicCloudAccess are True use the -and
operator when calling the Where-Object cmdlet:

Where-Object {$_.EnableFederationAccess -eq $True -and $_.EnablePublicCloudAccess -eq $True}

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the external access policy to be removed. External access policies can be configured at the
global, site, or per-user scopes. To "remove" the global policy, use this syntax: -Identity global . (Note that the
global policy cannot actually be removed. Instead, all the properties in the global policy will be reset to their default
values.) To remove a site policy, use syntax similar to this: -Identity site:Redmond . To remove a per-user policy, use
syntax similar to this: -Identity SalesAccessPolicy .
Note that wildcards are not allowed when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the external access
policy is being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. The
Remove-CsExternalAccessPolicy cmdlet accepts pipelined input of the external access policy object.

Outputs
None. Instead, the Remove-CsExternalAccessPolicy cmdlet does not return a value or object. Instead, the cmdlet
deletes instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy
object.

Related Links
Get-CsExternalAccessPolicy
Grant-CsExternalAccessPolicy
New -CsExternalAccessPolicy
Set-CsExternalAccessPolicy
minutes to read • Edit Online

Remove-CsExternalUserCommunicationPolicy
In ths Article

{{Fill in the Synopsis}}

Syntax
Remove-CsExternalUserCommunicationPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
{{Fill in the Description}}

Examples
-------------------------- Example 1 ------------------------

PS C:\> {{ Add example code here }}

{{ Add example description here }}

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
{{Fill Force Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
{{Fill Identity Description}}

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object
minutes to read • Edit Online

Remove-CsExUmContact
In ths Article

Removes an Auto Attendant or Subscriber Access contact object for hosted Exchange Unified Messaging (UM ).
This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsExUmContact [-Identity] <UserIdParameter> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server works with Exchange UM to provide several voice-related capabilities, including Auto
Attendant and Subscriber Access. When Exchange UM is provided as a hosted service (rather than on-premises),
contact objects must be created by using Windows PowerShell to apply the Auto Attendant and Subscriber Access
functionality. Any of the objects that are created can be removed with the Remove-CsExUmContact cmdlet.

Examples
-------------------------- Example 1 --------------------------

Remove-CsExUmContact -Identity sip:exumsa1@fabrikam.com

This example removes the Exchange UM contact with the SIP address exumsa1@fabrikam.com.
-------------------------- Example 2 --------------------------

Get-CsExUmContact -Filter {LineURI -like "tel:425*"} | Remove-CsExUmContact

This example removes all Exchange UM contacts with LineURI values beginning with tel:425. The first part of this
command calls the Get-CsExUmContact cmdlet with the Filter parameter, using this expression as the filter: LineURI -
like "tel:425". That filter specifies that we want to retrieve the Exchange UM contact objects that have a LineURI
matching the wildcard string tel:425. In other words, all line URIs that start with the string tel:425 and end with any
set of characters. Once we have that collection of objects, we pipe the collection to the Remove-CsExUmContact
cmdlet, which removes all the items in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the contact object you want to remove. Contact identities can be specified using one of four
formats: 1) The contact's SIP address; 2) the contact's user principal name (UPN ); 3) the contact's domain name and
logon name, in the form domain\logon (for example, litwareinc\exum1) and 4) the contact's Active Directory
display name (for example, Team Auto Attendant).
Full data type: Microsoft.Rtc.Management.AD.UserIdParameter

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact object. Accepts pipelined input of Exchange
UM contact objects.

Outputs
This cmdlet does not return an object. It removes an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact.

Related Links
New -CsExUmContact
Set-CsExUmContact
Get-CsExUmContact
Move-CsExUmContact
minutes to read • Edit Online

Remove-CsFileTransferFilterConfiguration
In ths Article

Removes the specified instant message file transfer filter configuration. (Instant message file transfer filter settings
are used to block a user's ability to transfer certain types of files within an instant message.) This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsFileTransferFilterConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
When sending instant messages, users can attach and send files to the other participants in the conversation. Skype
for Business Server can be configured so that files with certain extensions--typically extensions of file types that
could potentially prove harmful--are not allowed to be sent using a Skype for Business Server client.
The Remove-CsFileTransferFilterConfiguration cmdlet enables you to delete a file transfer filter configuration. For
configurations at the site scope, the Remove-CsFileTransferFilterConfiguration cmdlet will remove the
configuration; in turn, the users on the site will automatically inherit the global file transfer filter configuration. The
Remove-CsFileTransferFilterConfiguration cmdlet can also be run against the global configuration. In that case,
however, the global configuration will not be removed; instead, all the property values in that configuration will be
reset to their default values.

Examples
-------------------------- Example 1 --------------------------

Remove-CsFileTransferFilterConfiguration -Identity site:Redmond

In Example 1, the Remove-CsFileTransferFilterConfiguration cmdlet is used to remove the file transfer filter
configuration that has the Identity site:Redmond.
-------------------------- Example 2 --------------------------

Get-CsFileTransferFilterConfiguration -Filter site:* | Remove-CsFileTransferFilterConfiguration

In Example 2, all the file transfer filter configurations at the site scope are removed. To carry out this task, the
command first uses the Get-CsFileTransferFilterConfiguration cmdlet and the Filter parameter to return all the
configurations at the site scope. The filter value "site:*" tells the Get-CsFileTransferFilterConfiguration cmdlet to
return only those configurations that have an Identity that begins with the string value "site:". The filtered collection
of configurations is then piped to the Remove-CsFileTransferFilterConfiguration cmdlet, which deletes each item in
the collection.
-------------------------- Example 3 --------------------------

Get-CsFileTransferFilterConfiguration | Where-Object {$_.Enabled -eq $False} | Remove-


CsFileTransferFilterConfiguration

Example 3 shows you how you can remove all the file transfer filter configurations that are currently disabled. To do
this, the command first uses the Get-CsFileTransferFilterConfiguration cmdlet to return a collection of all the file
transfer filter configurations currently in use in the organization. That information is then piped to the
Where-Object cmdlet, which selects only those file transfer filter configurations where the Enabled property is equal
to (-eq) False ($False). That filtered collection is then piped to the Remove-CsFileTransferFilterConfiguration cmdlet,
which proceeds to remove each item in the filtered collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the file transfer configuration to be removed. To refer to the global configuration, use this
syntax: -Identity global . To refer to a configuration at the site scope, use syntax similar to this:
-Identity site:Redmond . Note that you cannot use wildcard values when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration object. Accepts
pipelined input of file transfer filter configuration objects.

Outputs
This cmdlet does not return a value or object. Instead, it removes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration object.

Related Links
New -CsFileTransferFilterConfiguration
Set-CsFileTransferFilterConfiguration
Get-CsFileTransferFilterConfiguration
minutes to read • Edit Online

Remove-CsFIPSConfiguration
In ths Article

Removes one or more collections of Federal Information Processing Standards (FIPS ) configuration settings. The
FIPS standards are a set of United States government security standards required for use in computers maintained
by non-military government agencies and by government contractors. This cmdlet was introduced in Lync Server
2013.

Syntax
Remove-CsFIPSConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-Tenant <Guid>] [-WhatIf]
[<CommonParameters>]

Description
The Federal Information Processing Standards (FIPS ) are a series of standards and guidelines used by computers
engaged in work for the United States government; for example, there are FIPS standards that govern the use of
such things as cryptography, encryption, and digital signatures. (See http://www.itl.nist.gov/fipspubs/by-num.htm
(http://www.itl.nist.gov/fipspubs/by-num.htm) for more information.) Skype for Business Server provides an option
that enables the software to use only algorithms that meet the FIPS standards. If you need to work with the United
States government (or with other entities that follow FIPS ) then you can enable FIPS compliance in Skype for
Business Server.
Keep in mind, however, that, for the on-premises version of Skype for Business Server, you have only a single,
global collection of FIPS configuration settings: FIPS compliance can only be enabled or disabled for your entire
Skype for Business Server implementation. You cannot selectively enable or disable FIPS compliance on, say, an
individual site or an individual Registrar pool. If you do enable FIPS compliance, you could potentially encounter
problems when trying to communicate with organizations that do not fully adhere to the FIPS standards.
By default, FIPS compliance is disabled in Skype for Business Server.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsFIPSConfiguration cmdlet are
not available in Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsFIPSConfiguration -Identity "Global"

Example 1 resets the properties in the global collection of FIPS configuration settings to their default values.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the FIPS configuration settings to be removed. Because Skype for Business Server only
supports a single, global collection of FIPS settings, the only collection that can be deleted is the global collection:
-Identity global

Note that, in this case, the global collection will not actually be removed from the system; Skype for Business
Server does not support the deletion of the global settings. Instead, the lone property in that collection -
RequireFIPSCompliantMedia - will be reset to its default value of False.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Server tenant account for the FIPS configuration
settings being deleted. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsFIPSConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.FIPSConfiguration.FIPSConfiguration object

Outputs
None. Instead, the Remove-CsFIPSConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.FIPSConfiguration.FIPSConfiguration object.

Related Links
Get-CsFIPSConfiguration
New -CsFIPSConfiguration
Set-CsFIPSConfiguration
minutes to read • Edit Online

Remove-CsGroupPickupUserOrbit
In ths Article

Use the `Remove-CsGroupPickupUserOrbit` cmdlet to remove the associated group pickup orbit number for an
Enterprise Voice user. This effectively disables the user for group call pickup.

Syntax
Remove-CsGroupPickupUserOrbit [-User] <String> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
This cmdlet will throw an exception if the user does not have an assigned group pickup orbit number.

Examples
-------------------------- Example 1 --------------------------

Remove-CsGroupPickupUserOrbit sip:ken.myer@contoso.com

This example removes the group pickup orbit number and disables group pickup for a user specified by the SIP
address. User is a positional parameter. The first parameter after the cmdlet is assumed to be the User parameter
value.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-User
Specifies the user whose group pickup orbit number will be removed. Because User is a positional parameter, the -
User syntax is not required. The first parameter after the cmdlet is assumed to be the User parameter value.
Users can be specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN );
3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the
user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the
user's Active Directory distinguished name.

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
This cmdlet supports pipelined input from the Get-CsUser cmdlet.

Outputs
None.
minutes to read • Edit Online

Remove-CsHealthMonitoringConfiguration
In ths Article

Removes an existing collection of health monitoring configuration settings. These settings enable administrators to
run quality assurance tests without having to supply the user names and passwords for the required test accounts.
This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsHealthMonitoringConfiguration [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
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 Microsoft System Center Operations Manager (formerly
Microsoft Operations Manager).
Synthetic transactions can be conducted in two different ways. Many administrators will use the
CsHealthMonitoringConfiguration cmdlets to set up test accounts for each of their Registrar pools. These test
accounts are a pair of user accounts that have been preconfigured for use with synthetic transactions. (Typically
these are test accounts and not accounts that belong to actual users.) When these test accounts are configured for a
pool, administrators can run a synthetic transaction against that pool without having to specify the identities of (and
supply the credentials for) the user accounts involved in the test. Instead, the synthetic transaction will automatically
use the preconfigured test accounts when performing its checks.
Alternatively, administrators can run a synthetic transaction using actual user accounts. For example, if two users
are unable to exchange instant messages, an administrator can run a synthetic transaction using the two user
accounts in question (as opposed to a pair of test accounts). If you decide to conduct a synthetic transaction using
actual user accounts you will have to supply the credentials for each user.
The Remove-CsHealthMonitoringConfiguration cmdlet provides a way for you to remove any of the health monitoring
configuration settings that have been configured for use in your organization.

Examples
-------------------------- Example 1 ------------------------

Remove-CsHealthMonitoringConfiguration -Identity atl-cs-001.litwareinc.com

The command shown in Example 1 deletes the collection of health monitoring configuration settings with the
Identity atl-cs-001.litwareinc.com. Because identities must be unique, this command will delete, at most, a single
collection of settings.
-------------------------- Example 2 ------------------------

Get-CsHealthMonitoringConfiguration | Remove-CsHealthMonitoringConfiguration

Example 2 deletes all the health monitoring configuration settings currently in use. To do this, the command first
calls the Get-CsHealthMonitoringConfiguration cmdlet without any parameters; this returns a collection of all the
health monitoring configuration settings in the organization. This collection is then piped to the
Remove-CsHealthMonitoringConfiguration cmdlet, which deletes each item in the collection.

-------------------------- Example 3 ------------------------

Get-CsHealthMonitoringConfiguration -Filter *.litwareinc.com | Remove-CsHealthMonitoringConfiguration

Example 3 deletes all the health monitoring configuration settings that have been created for the domain
litwareinc.com. To do this, the Get-CsHealthMonitoringConfiguration cmdlet is called along with the Filter parameter;
the filter value "*.litwareinc.com" ensures that only those settings that have an Identity that ends with the string
value ".litwareinc.com" will be returned. The filtered collection is then piped to the
Remove-CsHealthMonitoringConfiguration cmdlet, which deletes each item in the collection.

-------------------------- Example 4 ------------------------

(Get-CsHealthMonitoringConfiguration | Where-Object {$_.FirstTestUserSipUri -eq "sip:kenmyer@litwareinc.com" -


or $_.SecondTestUserSipUri -eq " sip:kenmyer@litwareinc.com"}) | Remove-CsHealthMonitoringConfiguration

The command shown in Example 4 deletes all the health monitoring configuration settings that include the user
with the SIP address sip:kenmyer@litwareinc.com as one of the test users. To perform this task, the command
starts off by calling the Get-CsHealthMonitoringConfiguration cmdlet without any parameters; this returns a
collection of all the health monitoring configuration settings currently in use in the organization. This collection is
then piped to the Where-Object cmdlet, which picks out only those settings where the FirstTestUserSipUri property
is equal to "sip:kenmyer@litwareinc.com" or where the SecondTestUserSipUri property is equal to
"sip:kenmyer@litwareinc.com". In turn, those settings are piped to and removed by, the
Remove-CsHealthMonitoringConfiguration cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the pool hosting the health monitoring configuration settings that are to
be deleted. For example: -Identity atl-cs-001.litwareinc.com.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.HealthMonitoringSettings object. The
Remove-CsHealthMonitoringConfiguration cmdlet accepts pipelined instances of the health monitoring configuration
object.

Outputs
None. Instead, the Remove-CsHealthMonitoringConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.HealthMonitoringSettings object.

Related Links
Get-CsHealthMonitoringConfiguration
New -CsHealthMonitoringConfiguration
Set-CsHealthMonitoringConfiguration
minutes to read • Edit Online

Remove-CsHostedVoicemailPolicy
In ths Article

Removes a hosted voice mail policy. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsHostedVoicemailPolicy [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>]
[<CommonParameters>]

Description
This cmdlet removes a policy that specifies how to route unanswered calls to the user to a hosted Exchange Unified
Messaging (UM ) service.

Examples
-------------------------- Example 1 --------------------------

Remove-CsHostedVoicemailPolicy -Identity ExRedmond

This command removes the hosted voice mail policy for the ExRedmond per-user policy.
-------------------------- Example 2 --------------------------

Get-CsHostedVoicemailPolicy -Filter tag* | Remove-CsHostedVoicemailPolicy

The command in Example 2 removes all per-user hosted voice mail policies. The command starts by calling the
Get-CsHostedVoicemailPolicy cmdlet with a Filter of tag*, which will retrieve all policies defined as per -user policies.
That set of policies is then piped to the Remove-CsHostedVoicemailPolicy cmdlet, which deletes each one.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the hosted voice mail policy that you want to remove. This identifier includes the scope (in
the case of global), the scope and site (for a site policy, such as site:Redmond), or the policy name (for a per-user
policy, such as HVUserPolicy).

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the hosted voicemail policy
being deleted. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.HostedVoicemailPolicy object. Accepts pipelined input of
hosted voice mail policy objects.
Outputs
This cmdlet does not return an object. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.HostedVoicemailPolicy.

Related Links
New -CsHostedVoicemailPolicy
Set-CsHostedVoicemailPolicy
Get-CsHostedVoicemailPolicy
Grant-CsHostedVoicemailPolicy
minutes to read • Edit Online

Remove-CsHostingProvider
In ths Article

Removes one or more of the hosting providers currently in use in your organization. A hosting provider is a third-
party organization that provides instant messaging, presence and related services for a domain that you would like
to federate with. Hosting providers differ from public providers (such as Yahoo!, MSN and AOL ) in that their
services are not offered to the general public. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsHostingProvider [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When a federation has been established, users in the two organizations can send each
other instant messages, subscribe for presence notifications and otherwise communicate with one another using
SIP applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1)
direct federation between your organization and another; 2) federation between your organization and a public
provider and 3) federation between your organization and a third-party hosting provider.
A hosting provider is an organization which provides SIP communication services for other organizations; for
example, Fabrikam, Inc. might host users from Contoso, Northwind Traders and Wingtip Toys. When you establish
a federation relationship with a hosting provider, you effectively establish federation with any organization hosted
by that provider. For example, if you federate with Fabrikam, your users will be able to exchange instant messages
and presence information with users from Contoso, Northwind Traders and Wingtip Toys.
Hosting providers are also used in split domain scenarios. In a split domain scenario, some of your users have
accounts hosted on-premises (that is, hosted on your local implementation of Skype for Business Server). Other
users have their accounts maintained off-premises by the third-party hosting provider. Federating with the hosting
provider enables on-premises and off-premises users to communicate with one another.
In order to federate with a third-party hosting provider, you need to create and enable a new hosting provider. (In
addition, the third-party provider will need to create a federation relationship with you.) If you decide later to
terminate this relationship, you can use the Remove-CsHostingProvider cmdlet to delete the hosting provider. When
you delete a hosting provider, the provider is removed from your list of federated partners; at that point, the only
way to re-establish the relationship is to recreate the provider. If you want to temporarily suspend a relationship,
use the Disable-CsHostingProvider cmdlet instead. When a hosting provider is disabled, the provider is not deleted
from the list of federated partners; instead, the provider is simply marked as disabled and communication between
your organization and that provider is disabled. To re-establish the relationship, you can use the
Enable-CsHostingProvider cmdlet to re-enable the provider.

Examples
-------------------------- Example 1 ------------------------

Remove-CsHostingProvider -Identity "Fabrikam.com"

The command show in Example 1 deletes the hosting provider with the Identity Fabrikam.com. After the hosting
provider has been deleted, federation with Fabrikam.com (and any domains associated with Fabrikam.com) will be
terminated.
-------------------------- Example 2 ------------------------

Get-CsHostingProvider | Remove-CsHostingProvider

Example 2 deletes all of the hosting providers configured for use in the organization. To do this, the command first
uses the Get-CsHostingProvider cmdlet to return a collection of all the hosting providers currently in use. That
collection is then piped to the Remove-CsHostingProvider cmdlet, which deletes each item in the collection. When
this command completes there will no longer be any hosting providers configured for use.
-------------------------- Example 3 ------------------------

Get-CsHostingProvider -Filter "*Fabrikam*" | Remove-CsHostingProvider

Example 3 deletes any hosting providers where the string value "Fabrikam" appears somewhere in the provider
Identity. To carry out this task, the command first calls the Get-CsHostingProvider cmdlet and the Filter parameter;
the filter value "Fabrikam" limits the returned data to any hosting providers that have "Fabrikam" somewhere in the
Identity. For example, this command returns such providers as Fabrikam.com, Fabrikam.net and
FabrikamUsers.com. The filtered collection is then piped to the Remove-CsHostingProvider cmdlet, which deletes
each item in the collection.
-------------------------- Example 4 ------------------------

Get-CsHostingProvider | Where-Object {$_.VerificationLevel -ne "AlwaysVerifiable"} | Remove-CsHostingProvider

In Example 4, all the hosting providers where the verification level is set to anything other than AlwaysVerifiable are
deleted. This is done by first calling the Get-CsHostingProvider cmdlet without any additional parameters; that
returns a collection of all the hosting providers configured for use in the organization. The resulting collection is
then piped to the Where-Object cmdlet, which picks out only those providers where the VerificationLevel property
is not equal to AlwaysVerifiable. The filtered collection is then piped to the Remove-CsHostingProvider cmdlet, which
removes each provider in that collection.
-------------------------- Example 5 ------------------------

Get-CsHostingProvider | Where-Object {$_.Enabled -eq $False} | Remove-CsHostingProvider

Example 5 removes all the hosting providers that are current disabled. To do this, the command first uses the
Get-CsHostingProvider cmdlet to return a collection of all the hosting providers configured for use in the
organization. This collection is piped to the Where-Object cmdlet, which picks out only those providers that are
disabled; that is, only those providers where the Enabled property is equal to False. The filtered collection is then
piped to the Remove-CsHostingProvider cmdlet, which deletes each of the disabled hosting providers.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the hosting provider to be removed. The Identity is a string value; the Identity might be the
fully qualified domain name (FQDN ) of the hosting provider (for example, fabrikam.com) or perhaps the name of
the company providing the services (Fabrikam, Inc.).

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider object. The
Remove-CsHostingProvider cmdlet accepts pipelined instances of the hosting provider object.

Outputs
None. Instead, the cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider object.

Related Links
Disable-CsHostingProvider
Enable-CsHostingProvider
Get-CsHostingProvider
New -CsHostingProvider
Set-CsHostingProvider
minutes to read • Edit Online

Remove-CsHuntGroup
In ths Article

The Remove-CsHuntGroup cmdlet deletes an existing Call Queue.

Syntax
Remove-CsHuntGroup -PrimaryUri <System.Uri> [<CommonParameters>]

Description
The Remove-CsHuntGroup cmdlet deletes an existing Call Queue specified by the PrimaryUri parameter.
The Remove-CsHuntGroup cmdlet may suggest additional steps required to complete the Call Queue setup.

Examples
-------------------------- Example 1 --------------------------

Remove-CsHuntGroup -PrimaryUri "sip:hg_a82e2406b9b5474a9878e9659f32dbc3@litwareinc.com"

This example deletes the Call Queue with the primary uri
"sip:hg_a82e2406b9b5474a9878e9659f32dbc3@litwareinc.com".

Parameters
-AsJob
This parameter is reserved for Microsoft internal use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BypassDualWrite
This parameter is reserved for Microsoft internal use only.
Type: System.Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing, and requires confirmation to proceed. This
parameter is reserved for Microsoft internal use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for Microsoft internal use only.
PARAMVALUE: Fqdn

Type: Object
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
This parameter is reserved for Microsoft internal use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
The PrimaryUri parameter represents the SIP address for the Call Queue. It must start with "sip:".

Type: System.Uri
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for Microsoft internal use only.
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes. This parameter is reserved for Microsoft internal use only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.Uri

Outputs
Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroup
minutes to read • Edit Online

Remove-CsHybridApplicationEndpoint
In ths Article

Removes the specified hybrid application endpoint. This cmdlet was introduced in the July 2017 cumulative update
for the Lync Server 2013 and May 2017 cumulative update for Skype Business Server 2015.

Syntax
Remove-CsHybridApplicationEndpoint [-Identity] <UserIdParameter> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet removes an existing hybrid application endpoint user object in Active Directory Domain Services. A
hybrid application endpoint is an Active Directory user object that enables a trusted application endpoint like bots
in hybrid environments.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Remove-CsHybridApplicationEndpoint -Identity "CN={4f6c99fe-7999-4088-ac4d-


e88e0b3d3820},OU=Redmond,DC=litwareinc,DC=com"

This example removes the specified hybrid application endpoint including the Active Directory user object.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The ApplicationId for the endpoint that is being deleted.
Type: UserIdParameter
Required: True
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.AD.UserIdParameter

Outputs
System.Object

Related Links
New -CsHybridApplicationEndpoint
Get-CsHybridApplicationEndpoint
Set-CsHybridApplicationEndpoint
minutes to read • Edit Online

Remove-CsHybridPSTNSite
In ths Article

Use the `Remove-CsHybridPSTNSite` cmdlet to remove a previously specified hybrid public switched telephone
network (PSTN ) site.

Syntax
Remove-CsHybridPSTNSite [-Tenant <Guid>] [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
Use the Remove-CsHybridPSTNSite cmdlet to remove a previously specified hybrid public switched telephone
network (PSTN ) site.
Specifying a site for removal that is currently handling PSTN traffic will produce a dialogue asking for confirmation.
If the removal is confirmed, the hybrid PSTN site will be deleted and marked invalid in the associated voice routing
policy.
Hybrid PSTN sites are created, retrieved, modified, and deleted by the CsHybridPSTNSite cmdlet group (New, Get,
Set and Remove .) The hybrid PSTN sites can be reviewed in your hybrid configuration by using the
Get-CsTenantHybridConfiguration cmdlet. However, you can't create or modify hybrid PSTN sites through the
CsTenantHybridConfiguration cmdlets, you must use the CsHybridPSTNSite cmdlets to manage hybrid PSTN
sites.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned, run the following
command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<CmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Remove-CsHybridPSTNSite -Identity "SeattlePSTN"

This example removes the "SeattlePSTN" hybrid public switched telephone network (PSTN ) site.

Parameters
-Confirm
The Confirm switch causes the command to pause processing and requires confirmation to proceed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the hybrid public switched telephone network (PSTN ) site. For example:
-Identity "SeattlePSTN" .

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the global unique identifier (GUID ) of the Skype for Business Online tenant account on which the cmdlet
will operate. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" .

You can find the tenant ID for your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will be determined by your connection and
credentials. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
None.
minutes to read • Edit Online

Remove-CsImConfiguration
In ths Article

Use the Remove-CsImConfiguration cmdlet to remove a new Instant Messaging (IM ) configuration. This cmdlet
was introduced in Skype for Business June 2016 Cumulative Update.

Syntax
Remove-CsImConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-Tenant <Guid>] [-WhatIf]
[<CommonParameters>]

Description
Use the Remove-CsImConfiguration cmdlet to remove a new Instant Messaging (IM ) configuration.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Remove-CsImConfiguration -Identity "Site:Redmond"

This example removes the existing Redmond site IM configuration.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
A unique identifier specifying the scope and, in some cases the name, of the IM configuration.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object

Related Links
Get-CsImConfiguration
New -CsImConfiguration
Set-CsImConfiguration
minutes to read • Edit Online

Remove-CsImFilterConfiguration
In ths Article

Removes the specified instant messaging (IM ) filter configuration. (IM filter settings are used to prevent users from
sending instant messages that contain hyperlinks.) This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsImFilterConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
When sending instant messages, users can embed a Uniform Resource Identifier (URI) within the text of that
message to refer other participants in the conversation to a particular website or share. Skype for Business Server
can be configured so that hyperlinks with certain prefixes are blocked or are not active. (In other words, the
participants can't simply click the link and be taken to the site the URI refers to; they must copy and paste the link
manually into a browser.)
The Remove-CsImFilterConfiguration cmdlet removes the IM filter configuration for a specified identity (such as a
specific site). Running this cmdlet against the Global identity will simply reset the global configuration to the default
settings.

Examples
-------------------------- Example 1 --------------------------

Remove-CsImFilterConfiguration -Identity site:Redmond

In Example 1, the Remove-CsImFilterConfiguration cmdlet is used to remove the IM filter configuration with the
Identity site:Redmond. When an IM filter configuration is removed from a site, that site will automatically begin
using the global settings in its place.
-------------------------- Example 2 --------------------------

Get-CsImFilterConfiguration -Filter site:* | Remove-CsImFilterConfiguration

In Example 2, all the IM filter configurations at the site scope are removed. To carry out this task, the command first
uses the Get-CsImFilterConfiguration cmdlet and the Filter parameter to return all the configurations at the site
scope; the wildcard string site:* tells the Get-CsImFilterConfiguration cmdlet to return only those configurations
that have an Identity that begins with the string value site:. The filtered collection of configurations is then piped to
the Remove-CsImFilterConfiguration cmdlet, which deletes each configuration in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identity of the configuration to be removed. This will be either Global or Site:<site name> (where <site
name> represents the name of the site to which the settings apply).
Full Data Type: Microsoft.Rtc.Management.Xds.XdsIdentity

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.ImFilterConfiguration object. Accepts pipelined input
of IM filter configuration objects.

Outputs
Removes an object of type Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.ImFilterConfiguration.
Related Links
New -CsImFilterConfiguration
Set-CsImFilterConfiguration
Get-CsImFilterConfiguration
minutes to read • Edit Online

Remove-CsImTranslationConfiguration
In ths Article

This cmdlet is reserved for internal Microsoft use.

Syntax
Remove-CsImTranslationConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
This cmdlet is reserved for internal Microsoft use.

Examples
-------------------------- Example 1 --------------------------

This cmdlet is reserved for internal Microsoft use.

This cmdlet is reserved for internal Microsoft use.

Parameters
-Confirm
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Remove-CsKerberosAccountAssignment
In ths Article

Removes one or more Kerberos account assignments. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsKerberosAccountAssignment [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
In Microsoft Office Communications Server 2007 and Microsoft Office Communications Server 2007 R2, IIS ran
under a standard user account. This had the potential to cause issues: if that password expired you could lose your
Web Services, an issue that was often difficult to diagnose. To help avoid the issue of expiring passwords, Skype for
Business Server enables you to create a computer account (for a computer that doesn't actually exist) that can serve
as the authentication principal for all the computers in a site that are running IIS. Because these accounts use the
Kerberos authentication protocol, the accounts are referred to as Kerberos accounts and the new authentication
process is known as Kerberos web authentication. This enables you to manage all your IIS servers by using a single
account.
To run your servers under this new authentication principal, you must first create a computer account (which, again,
is not tied to an actual computer) by using the New-CsKerberosAccount cmdlet; this account is then assigned to one
or more sites. After the assignment has been made, the association is enabled by running the Enable-CsTopology
cmdlet; among other things, this creates the required service principal name (SPN ) in Active Directory Domain
Services. SPNs provide a way for client applications to locate a particular service.
Each Skype for Business Server site can be associated with, at most, a single Kerberos account. (However, each
account can be associated with multiple sites.) At any time you can use the Remove-CsKerberosAccountAssignment
cmdlet to remove the association between a site and an account. This cmdlet does not delete the account in
question; it simply severs the association between the account and the site, effectively disabling Kerberos web
authentication in that site.
Note that, after running the Remove-CsKerberosAccountAssignment cmdlet you must then run the Enable-CsTopology
cmdlet. This removes the account's service principal name from Active Directory and complete disables Kerberos
web authentication.

Examples
-------------------------- Example 1 ------------------------

Remove-CsKerberosAccountAssignment -Identity "site:Redmond"

Enable-CsTopology

The commands shown in Example 1 remove the Kerberos account assignment from the Redmond site, then call the
Enable-CsTopology cmdlet to finish disabling Kerberos web authentication.
-------------------------- Example 2 ------------------------

Get-CsKerberosAccountAssignment | Remove-CsKerberosAccountAssignment

Enable-CsTopology

In Example 2, all the Kerberos account assignments currently in use are deleted. To do this, the first command calls
the Get-CsKerberosAccountAssignment cmdlet (without any parameters) in order to return a collection of all the
Kerberos account assignments. This collection is then piped to the Remove-CsKerberosAccountAssignment cmdlet,
which deletes each assignment in the collection. When that's done, the second command in the example calls the
Enable-CsTopology cmdlet to finish disabling Kerberos web authentication.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
When present, suppresses all error messages except for fatal errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the site where the Kerberos account assignment is to be removed. (This is the Identity of the
site, not of the Kerberos account.) For example: -Identity "site:Redmond" .

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccountAssignment object. The
Remove-CsKerberosAccountAssignment cmdlet accepts pipelined instances of the Kerberos account assignment object.

Outputs
None. The Remove-CsKerberosAccountAssignment cmdlet does not return any objects or values. Instead, the cmdlet
deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccountAssignment object.

Related Links
Get-CsKerberosAccountAssignment
New -CsKerberosAccountAssignment
Set-CsKerberosAccountAssignment
minutes to read • Edit Online

Remove-CsLisLocation
In ths Article

Removes a location from the location configuration database for Enhanced 9-1-1 (E9-1-1). This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsLisLocation -City <String> -CompanyName <String> -Country <String> -HouseNumber <String>
-HouseNumberSuffix <String> -Location <String> -PostalCode <String> -PostDirectional <String>
-PreDirectional <String> -State <String> -StreetName <String> -StreetSuffix <String> [-WhatIf] [-Confirm]
[<CommonParameters>]

Remove-CsLisLocation [-City <String>] [-CompanyName <String>] [-Country <String>] [-HouseNumber <String>]


[-HouseNumberSuffix <String>] [-Location <String>] [-PostalCode <String>] [-PostDirectional <String>]
[-PreDirectional <String>] [-State <String>] [-StreetName <String>] [-StreetSuffix <String>] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
E9-1-1 enables those who answer emergency calls to determine the caller's geographic location without having to
ask the caller for that information. In Skype for Business Server the location is determined based on mapping the
caller's port, subnet, switch, or wireless access point to a specific location. This cmdlet removes a location from the
location configuration database. All properties of a location combined make the location unique, so you must enter
all non-null properties of the location to remove it. If you do not enter all non-null properties of the location you
want to remove (and no other location contains only the properties you specified), no locations will be removed.
You won't receive an error in this case, but no action will occur.
This cmdlet will not remove locations that are associated with a Location Information Server (LIS ) port, subnet,
switch, or wireless access point. If you attempt to remove a location referenced by any of these devices, you'll
receive an error. You must remove all references before removing the location. You can use the Remove-CsLisPort
cmdlet, the Remove-CsLisSubnet cmdlet, the Remove-CsLisSwitch cmdlet and the Remove-CsLisWirelessAccessPoint
cmdlet to remove these references.

Examples
-------------------------- Example 1 --------------------------

Remove-CsLisLocation -Location Bldg30NEWing -HouseNumber 1000 -StreetName Main -City Redmond -State WA -Country
US

Example 1 removes a location named Bldg30NEWing. This command specifies values for the parameters Location,
HouseNumber, StreetName, City, State and Country. This means that those are the only properties of the location
to be deleted that contain non-null values. If you don't supply parameter values for all non-null properties, the
location will not be deleted. You will be prompted for any parameter that you haven't specified in the command, but
if they contain null values you can simply press Enter at each prompt.
-------------------------- Example 2 --------------------------

Get-CsLisLocation -Unreferenced | Remove-CsLisLocation

This example will remove all locations that are not referenced by a LIS port, subnet, switch, or wireless access point.
The command begins with a call to the Get-CsLisLocation cmdlet, specifying the Unreferenced parameter. This will
return a collection of all locations that are not referenced by a LIS port, subnet, switch, or wireless access point. This
collection is then piped to the Remove-CsLisLocation cmdlet, which removes each location in the collection.

Parameters
-City
The location city.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-City
The location city.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-CompanyName
The name of the company at this location.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-CompanyName
The name of the company at this location.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Country
The country/region this location is in. This value will contain two characters or less.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Country
The country/region this location is in. This value will contain two characters or less.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-HouseNumber
The house number of the location. For a company this is the number on the street where the company is located.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-HouseNumber
The house number of the location. For a company this is the number on the street where the company is located.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-HouseNumberSuffix
Additional information for the house number, such as 1/2 or A. For example, 1234 1/2 Oak Street or 1234 A Elm
Street.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-HouseNumberSuffix
Additional information for the house number, such as 1/2 or A. For example, 1234 1/2 Oak Street or 1234 A Elm
Street.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Location
The name for this location.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Location
The name for this location.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-PostalCode
The postal code associated with this location.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-PostalCode
The postal code associated with this location.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-PostDirectional
The directional designation of a street name. For example, NE or NW for Main Street NE or 7th Avenue NW.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-PostDirectional
The directional designation of a street name. For example, NE or NW for Main Street NE or 7th Avenue NW.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-PreDirectional
The directional designation for a street name that precedes the name of the street. For example, NE or NW for NE
Main Street or NW 7th Avenue.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-PreDirectional
The directional designation for a street name that precedes the name of the street. For example, NE or NW for NE
Main Street or NW 7th Avenue.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-State
The state or province associated with this location. This value will be two characters or less.
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-State
The state or province associated with this location. This value will be two characters or less.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-StreetName
The name of the street for this location.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-StreetName
The name of the street for this location.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-StreetSuffix
The type of street designated in a street name, such as Street, Avenue, or Court.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-StreetSuffix
The type of street designated in a street name, such as Street, Avenue, or Court.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Accepts pipelined input of LIS location objects.

Outputs
This cmdlet does not return a value or object. It removes an object of type
System.Management.Automation.PSCustomObject.

Related Links
Set-CsLisLocation
Get-CsLisLocation
Remove-CsLisPort
Remove-CsLisSubnet
Remove-CsLisSwitch
Remove-CsLisWirelessAccessPoint
Get-CsLisCivicAddress
minutes to read • Edit Online

Remove-CsLisPort
In ths Article

Removes an association between a Location Information Server (LIS ) port and a location. This association is used
in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the
caller's location. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsLisPort -ChassisID <String> -PortID <String> -PortIDSubType <PortIDSubType> [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for
that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP ) connection, that
information must be extracted based on various connection factors. The VoIP administrator must configure a
location map (called a wiremap) that will determine a caller's location. This cmdlet removes an association between
a physical location and a port through which calls will be routed by removing the port from the location
configuration database.
Removing a port location will not remove the actual location of the port; it removes only the port. To remove the
location, call the Remove-CsLisLocation cmdlet. Removing the port will also not remove the switch with the given
ChassisID; to remove the switch, call the Remove-CsLisSwitch cmdlet.

If you attempt to remove a port that does not exist, no action will be taken and you will not receive an error or a
warning message.

Examples
-------------------------- Example 1 --------------------------

Remove-CsLisPort -ChassisID 99-99-99-99-99-99 -PortID 4200 -PortIDSubType 1

Example 1 removes the LIS port with the MAC address (ChassisID ) 99-99-99-99-99-99, the PortID 4200 and the
PortIDSubType 1. (Note that a value of 1 for PortIDSubType translates into a value of InterfaceAlias. This
parameter and value could also have been entered like this: -PortIDSubType InterfaceAlias )
If this port was associated with a location, that location will not be removed, only the port will be removed from the
location mapping.
-------------------------- Example 2 --------------------------

Get-CsLisPort | Where-Object {$_.HouseNumber -eq ""} | Remove-CsLisPort


This example removes all port locations that do not have a house number. The example begins with a call to the
Get-CsLisPort cmdlet, which returns a collection of all LIS ports. This collection is piped to the Where-Object
cmdlet, which finds the items in that collection that have a HouseNumber property that is empty; in other words, a
HouseNumber that is equal to (-eq) an empty string (""). Finally, we pipe this collection of port locations that don't
have house numbers to the Remove-CsLisPort cmdlet, which removes everything in that collection.
Note that, as in example 1, no locations are removed from the location configuration database, only the ports that
reference those locations are removed. In this case that means there will be invalid locations (they're invalid
because HouseNumber is a required property for a location) in the location database that should also be removed.
You can remove locations by calling the Remove-CsLisLocation cmdlet.

Parameters
-ChassisID
The Media Access Control (MAC ) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn,
such as 12-34-56-78-90-ab.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PortID
The ID of the port you want to remove.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-PortIDSubType
The subtype of the port you want to remove. This value can be entered as a numeric value or a string, but it must
be a valid subtype. Valid subtypes are:
1: InterfaceAlias
5: InterfaceName
7: LocallyAssigned
Type: PortIDSubType
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Accepts pipelined input of LIS port objects.

Outputs
This cmdlet does not return a value. It removes an object of type
System.Management.Automation.PSCustomObject.

Related Links
Set-CsLisPort
Get-CsLisPort
Remove-CsLisLocation
Remove-CsLisSwitch
minutes to read • Edit Online

Remove-CsLisServiceProvider
In ths Article

Removes an object containing information about the web service provided by the Enhanced 9-1-1 (E9-1-1)
Network Routing Provider to verify locations. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsLisServiceProvider [-WhatIf] [-Confirm] [<CommonParameters>]

Description
In an Enterprise Voice implementation with E9-1-1, emergency calls must first be routed through an E9-1-1
Network Routing Provider to ensure that the calls are routed to the appropriate Public Safety Answering Point
(PSAP ). (A PSAP is the agency in the United States that directs the calls to the nearest emergency services, such as
police, fire and ambulance services.) In order to do this, the provider must have a list of locations from the
organization that it can then match against the Master Street Address Guide to ensure all locations are valid. This
cmdlet removes an entry for a provider; after running this cmdlet there will be no web service access to the
provider.

Examples
-------------------------- Example 1 --------------------------

Remove-CsLisServiceProvider

This example removes the service provider web service from the E9-1-1 implementation. There will only be, at
most, one service provider defined, which will be removed by this cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Accepts pipelined input of a Location Information Server (LIS ) service provider object.

Outputs
This cmdlet does not return an object or a value. It removes an object of type
System.Management.Automation.PSCustomObject.

Related Links
Set-CsLisServiceProvider
Get-CsLisServiceProvider
minutes to read • Edit Online

Remove-CsLisSubnet
In ths Article

Removes a Location Information Server (LIS ) subnet. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsLisSubnet -Subnet <String> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Enhanced 9-1-1 (E9-1-1) allows an emergency operator to identify the location of a caller without having to ask the
caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP )
connection, that information must be extracted based on various connection factors. The VoIP administrator must
configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a subnet
from the location configuration database. Removing the subnet will not remove the location associated with that
subnet. Use the Remove-CsLisLocation cmdlet to remove a location.
If you attempt to remove a subnet that does not exist, no action will be taken and you will not receive an error or a
warning message.

Examples
-------------------------- Example 1 --------------------------

Remove-CsLisSubnet -Subnet 192.10.10.0

Example 1 removes the LIS subnet location entry for the subnet with the IP address 192.10.10.0. The command in
this example includes only one (required) parameter: Subnet. The value of the Subnet in this example is an IPv4
address, 192.10.10.0.
If this subnet is associated with a location, that location will not be removed, only the subnet will be removed from
the location mapping.
-------------------------- Example 2 --------------------------

Get-CsLisSubnet | Where-Object {$_.Location -eq "Bldg30/Room1000"} | Remove-CsLisSubnet

This example removes all subnets that are associated with the location Bldg30/Room1000. The example begins
with a call to the Get-CsLisSubnet cmdlet, which returns a collection of all LIS subnets. This collection is piped to
the Where-Object cmdlet, which finds the items in that collection that have a Location property that is equal to (-eq)
the string Bldg30/Room1000. Finally, we pipe this collection of subnets with that Location to the
Remove-CsLisSubnet cmdlet, which removes everything in that collection.

Note that, as in Example 1, no locations are removed from the location configuration database, only the subnets
that reference those locations are removed. You can remove locations by calling the Remove-CsLisLocation cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Subnet
The IP address of the subnet you want to remove. This value will be an IPv4 address (digits separated by periods,
such as 192.0.2.0).

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Accepts pipelined input of Location Information Server (LIS ) subnet objects.

Outputs
This cmdlet removes an object of type System.Management.Automation.PSCustomObject.

Related Links
Set-CsLisSubnet
Get-CsLisSubnet
Remove-CsLisLocation
minutes to read • Edit Online

Remove-CsLisSwitch
In ths Article

Removes a Location Information Server (LIS ) network switch. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsLisSwitch -ChassisID <String> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Enhanced 9-1-1 (E9-1-1) allows an emergency operator to identify the location of a caller without having to ask the
caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP )
connection, that information must be extracted based on various connection factors. The VoIP administrator must
configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a switch
from the location configuration database. Removing a switch will not remove the actual location; it removes only
the switch. To remove the location, call the Remove-CsLisLocation cmdlet.
You cannot remove a switch if the ChassisID of the switch is in use by a port. (Run the following command to find
out which ChassisIDs are in use by ports: Get-CsLisPort | Select-Object ChassisID .) You must first remove all
ports with the given ChassisID before you can remove the switch.
If you attempt to remove a switch that does not exist, no action will be taken and you will not receive an error or a
warning message.

Examples
-------------------------- Example 1 --------------------------

Remove-CsLisSwitch -ChassisID 99-99-99-99-99-99

Example 1 removes the LIS switch with the MAC address (ChassisID ) 99-99-99-99-99-99.
This command will not succeed if the ChassisID is referenced by a port. Also, if this switch was associated with a
location, that location will not be removed, only the switch will be removed from the location mapping.
-------------------------- Example 2 --------------------------

Get-CsLisSwitch | Where-Object {$_.City -eq ""} | Remove-CsLisSwitch

This example removes all switches that do not have a city. The example begins with a call to the Get-CsLisSwitch
cmdlet, which returns a collection of all switches. This collection is piped to the Where-Object cmdlet, which finds
the items in that collection that have a City property that is empty; in other words, a City that is equal to (-eq) an
empty string (""). Finally, we pipe this collection of switches that don't have cities to the Remove-CsLisSwitch cmdlet,
which removes everything in that collection.
Note that, as in Example 1, no locations are removed from the location database, only the switches that reference
those locations are removed. In this case that means there will be invalid locations (they're invalid because City is a
required property for a location) in the location database that should also be removed. You can remove locations by
calling the Remove-CsLisLocation cmdlet.

Parameters
-ChassisID
The Media Access Control (MAC ) address of the network switch. This value will be in the form nn-nn-nn-nn-nn-nn,
such as 12-34-56-78-90-ab.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Accepts pipelined input of LIS switch objects.

Outputs
This cmdlet does not return a value. It removes an object of type
System.Management.Automation.PSCustomObject.

Related Links
Set-CsLisSwitch
Get-CsLisSwitch
Remove-CsLisLocation
Get-CsLisPort
minutes to read • Edit Online

Remove-CsLisWirelessAccessPoint
In ths Article

Removes a Location Information Server (LIS ) wireless access point (WAP ). This cmdlet was introduced in Lync
Server 2010.

Syntax
Remove-CsLisWirelessAccessPoint -BSSID <String> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for
that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP ) connection, that
information must be extracted based on various connection factors. The VoIP administrator must configure a
location map (called a wiremap) that will determine a caller's location. This cmdlet removes a WAP from the
location configuration database. Removing the WAP will not remove the location associated with that WAP. Use
the Remove-CsLisLocation cmdlet to remove a location.
If you attempt to remove a WAP that does not exist, no action will be taken and you will not receive an error or a
warning message.

Examples
-------------------------- Example 1 --------------------------

Remove-CsLisWirelessAccessPoint -BSSID 99-99-99-99-99-99

Example 1 removes the LIS WAP location with the BSSID 99-99-99-99-99-99.
If this WAP was associated with a location, that location will not be removed, only the WAP will be removed from
the location mapping.
-------------------------- Example 2 --------------------------

Get-CsLisWirelessAccessPoint | Where-Object {$_.Location -like "*Bldg30*"} | Remove-CsLisWirelessAccessPoint

This example removes all WAPs in building 30. The example begins with a call to the Get-CsLisWirelessAccessPoint
cmdlet, which returns a collection of all WAPs. This collection is piped to the Where-Object cmdlet, which finds the
items in that collection that have a Location property that contains the string Bldg30 anywhere in the value; in other
words, a Location that is like (-like) Bldg30. Finally, we pipe this collection of WAPs in building 30 to the
Remove-CsLisWirelessAccessPoint cmdlet, which removes everything in that collection.

Note that, as in Example 1, no locations are removed from the location configuration database, only the WAPs that
reference those locations are removed.
Parameters
-BSSID
The Basic Service Set Identifier (BSSID ) of the wireless access point you want to remove. This value will be in the
form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Accepts pipelined input of LIS wireless access point objects.

Outputs
This cmdlet removes an object of type System.Management.Automation.PSCustomObject.

Related Links
Set-CsLisWirelessAccessPoint
Get-CsLisWirelessAccessPoint
Remove-CsLisLocation
minutes to read • Edit Online

Remove-CsLocationPolicy
In ths Article

Removes the specified location policy. (Location policies are used with the Enhanced 9-1-1 service to enable those
who answer 911 calls to determine the caller's geographic location based on the phone number of the telephone or
device used to make the call.) This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsLocationPolicy [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>]
[<CommonParameters>]

Description
The location policy is used to apply settings that relate to E9-1-1 functionality. The location policy determines
whether a user is enabled for E9-1-1, and if so what the behavior is of an emergency call. For example, you can use
the location policy to define what number constitutes an emergency call (911 in the United States), whether
corporate security should be automatically notified and how the call should be routed. This cmdlet removes an
existing location policy.
In addition to removing site and per-user location policies, this cmdlet can also be used to remove the global
location policy. In that case, however, the policy will not actually be removed; instead, the policy settings will simply
be reset to their default values.
If this cmdlet is run against a per-user location policy that is assigned to user, you will be prompted to confirm the
deletion.

Examples
-------------------------- Example 1 --------------------------

Remove-CsLocationPolicy -Identity Reno

The command shown in Example 1 uses the Remove-CsLocationPolicy cmdlet to delete the location policy with the
Identity Reno. When a per-user policy is removed, users or groups who were assigned that policy will automatically
use the policy configured for their site instead. If no policy has been configured for their site, then these users and
groups will use the global location policy.
-------------------------- Example 2 --------------------------

Get-CsLocationPolicy | Where-Object {$_.EnhancedEmergencyServicesEnabled -eq $false} | Remove-CsLocationPolicy

Example 2 deletes all the location policies where the EnhancedEmergencyServicesEnabled property is False. (In
other words, it deletes all location policies that don't enable E9-1-1.) To do this, the command first uses the
Get-CsLocationPolicy cmdlet to retrieve all the location policies currently in use in the organization. This collection
is then piped to the Where-Object cmdlet, which applies a filter that limits the retrieved data to those policies where
the EnhancedEmergencyServicesEnabled property is equal to (-eq) False ($False). Finally, this filtered collection is
passed to the Remove-CsLocationPolicy cmdlet, which proceeds to delete each policy in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Specifying this parameter will bypass any confirmation prompts and the deletion will occur without any warning
notice. For example, if a per-user location policy is assigned to one or more users, a confirmation prompt will be
displayed before deletion if this parameter is not included in the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the location policy you want to remove. To remove the global location policy (which simply
resets that policy to its default values), use a value of Global. For a policy created at the site scope, this value will be
in the form site:<site name>, where site name is the name of a site defined in the Skype for Business Server
deployment (for example, site:Redmond). For a policy created at the per-user scope, this value will simply be the
name of the policy, such as Bldg30Floor3Sector1.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the location policy is
being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Location.LocationPolicy object. Accepts pipelined input of
location policy objects.

Outputs
This cmdlet does not return a value or object. Instead, the cmdlet removes instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Location.LocationPolicy object.

Related Links
New -CsLocationPolicy
Set-CsLocationPolicy
Get-CsLocationPolicy
Grant-CsLocationPolicy
Test-CsLocationPolicy
minutes to read • Edit Online

Remove-CsManagementConnection
In ths Article

Resets the management connection to the Active Directory service control point for the Central Management store.
This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsManagementConnection [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Configuration data for Skype for Business Server is stored in the Central Management store; it is crucial that both
Windows PowerShell and the management replication services be able to locate this database. When you install
Skype for Business Server, a service control point is created in Active Directory Domain Services that provides
location information for this database. Typically, computers rely on this service control point in order to connect to
the Central Management store. To see the details behind this connection (that is, if you want to know which
computer the Central Management store is running on, as well information about the SQL Server connection to
that Central Management store), you can run the Get-CsManagementConnection cmdlet.
As a general rule, you will not need to change your management connection. However, it is possible that you might
need to temporarily use a new management connection. When you are ready to switch back to the default
connection all you need to do is run the Remove-CsManagementConnection cmdlet; this cmdlet erases the current
connection information and replaces it with the connection information stored in the Active Directory service
control point. This means you do not have to recreate the original connection information; the
Remove-CsManagementConnection cmdlet will do that for you.

Note that no problems will occur if you call this cmdlet while using the default connection. If you do so, you will
simply continue to use the default connection information stored in Active Directory. Note, too that this cmdlet only
affects the management connection information for your current Windows PowerShell session: any changes to the
management connection are limited to your local computer and local instance of Windows PowerShell.

Examples
------------------------- Example 1 ------------------------

Remove-CsManagementConnection

The command shown in Example 1 removes the existing management connection information and replaces it with
the default connection information stored in Active Directory.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Remove-CsManagementConnection cmdlet does not accept pipelined input.

Outputs
None. Instead, the Remove-CsManagementConnection cmdlet deletes instances of the
Microsoft.Rtc.Management.Xds.ManagementConnection object.

Related Links
Get-CsManagementConnection
Remove-CsConfigurationStoreLocation
Set-CsManagementConnection
minutes to read • Edit Online

Remove-CsMcxConfiguration
In ths Article

Removes the specified collection of Skype for Business Server Mobility Service configuration settings. The Mobility
Service enables users of mobile phones such as iPhones and Windows Phones to do such things as exchange
instant messages and presence information; store and retrieve voice mail internally instead of with their wireless
provider and take advantage of Skype for Business Server capabilities such as Call via Work and dial-out
conferencing. This cmdlet was introduced in the cumulative update for Lync Server 2010: November 2011.

Syntax
Remove-CsMcxConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The Mobility Service extends many of the capabilities of Skype for Business Server to mobile devices such as Apple
iPhones, Windows Phone, Android phones and Nokia phones. Among other things, users can use these phones to
exchange instant message and presence information and to receive notifications of new voice mails. Thanks to the
push notification service (Apple Push Notification Service and Microsoft Push Notification Service), users with
iPhones or Windows Phones can receive these notifications even if Skype for Business Server is running in the
background. The Mobility Service also provides the opportunity for organizations to enable Call via Work. With
Call via Work, users can make a call from their mobile phone and have it appear as though the call originated from
their work phone; for example, Caller ID systems will display the user's work number instead of his or her mobile
phone number.
The Mobility Service itself is managed by using Mobility Service configuration settings that can be applied to the
global scope, the site scope, or the service scope (for the Web server service only). These settings control such
things as the maximum length of time for a Mobility Service session; whether or not the Autodiscovery Service
(which directs Mobility Service users to the appropriate Registrar pool) is available to users who log on outside the
organization's firewall) and the location of the push notification service provider.
When you install Skype for Business Server, a single collection of Mobility Service configuration settings is created
at the global scope; however, administrators can create custom configuration settings at either the site or the
service scope. Later, these custom settings can be removed by using the Remove-CsMcxConfiguration cmdlet. If you
remove service settings, Mobility Service servers formerly managed by those settings will be managed by the site
settings (if they exist) or by the global settings. If you remove site settings, servers will be managed by the global
settings.
Note that you can also run the Remove-CsMcxConfiguration cmdlet against the global settings. If you do that,
however, the global settings will not be removed. Instead, the properties in the global collection will simply be reset
to their default values.

Examples
-------------------------- Example 1 --------------------------
Remove-CsMcxConfiguration -Identity "site:Redmond"

The command shown in Example 1 deletes the collection of Mobility Service configuration settings assigned to the
Redmond site.
-------------------------- Example 2 --------------------------

Get-CsMcxConfiguration -Filter "service:*" | Remove-CsMcxConfiguration

In Example 2, all the Mobility Service configuration settings assigned to the service scope are removed. To do this,
the Get-CsMcxConfiguration cmdlet is used along with the Filter parameter; the filter value "service:*" ensures that
only settings that have an Identity that begins with the string value "service:" will be returned. That filtered
collection is then piped to and deleted by, the Remove-CsMcxConfiguration cmdlet.
-------------------------- Example 3 --------------------------

Get-CsMcxConfiguration | Where-Object {$_.ExposedWebURL -eq "Internal"} | Remove-CsMcxConfiguration

Example 3 deletes all the Mobility Service configuration settings where the ExposedWebURL property has been set
to Internal. To perform this task, the command first calls the Get-CsMcxConfiguration cmdlet without any
parameters; that returns a collection of all the Mobility Service configuration settings currently in use in the
organization. This collection is then piped to the Where-Object cmdlet, which picks out only those settings where
ExposedWebURL is equal to (-eq) Internal. In turn, that filtered collection is piped to the Remove-CsMcxConfiguration
cmdlet, which deletes each item in that filtered collection.
-------------------------- Example 4 --------------------------

Get-CsMcxConfiguration | Where-Object {$_.PushNotificationProxyUri -eq $Null} | Remove-CsMcxConfiguration

In Example 4, all the Mobility Service configuration settings that do not have an assigned push notification proxy
URI are removed from Skype for Business Server. To do this, the command first uses the Get-CsMcxConfiguration
cmdlet (without any parameters) to return a collection of all the Mobility Service configuration settings currently in
use. This collection is then piped to the Where-Object cmdlet, which picks out any settings where the
PushNotificationProxyUri property is equal to (-eq) a Null value. Any settings that meet that criterion are then
piped to and deleted by, the Remove-CsMcxConfiguration cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the Mobility Service configuration settings to be removed. To "remove" the global settings, use
this syntax:
-Identity global

Note that you cannot actually remove the global settings; all you can do is reset the properties to their default
values.
To remove settings from the site scope, use syntax similar to this:
-Identity site:Redmond

To remove settings configured at the service scope, use syntax like this:
-Identity service:WebServer:atl-cs-001.litwareinc.com

You cannot use wildcards when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WriteableConfig.Settings.McxConfiguration.McxConfiguration. The
Remove-CsMcxConfiguration cmdlet accepts pipelined input of McxConfiguration objects.

Outputs
None. Instead, the cmdlet deletes instances of the
Microsoft.Rtc.Management.WriteableConfig.Settings.McxConfiguration.McxConfiguration object.
minutes to read • Edit Online

Remove-CsMediaConfiguration
In ths Article

Removes the specified collection of media configuration settings. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsMediaConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
This cmdlet removes a collection of media settings. These settings relate to audio and video calls between client
endpoints.
This cmdlet can also be used to remove the global media settings. In that case, however, the settings will not
actually be removed; instead, they will simply be reset to their default values.

Examples
-------------------------- Example 1 --------------------------

Remove-CsMediaConfiguration -Identity site:Redmond1

In Example 1, the Remove-CsMediaConfiguration cmdlet is used to delete the media configuration collection with the
Identity site:Redmond1. When media settings are removed from the site scope, that site will automatically begin to
use the global media settings.
-------------------------- Example 2 --------------------------

Get-CsMediaConfiguration | Where-Object {$_.EncryptionLevel -eq "RequireEncryption"} | Remove-


CsMediaConfiguration

In Example 2, three cmdlets--the Get-CsMediaConfiguration cmdlet, the Where-Object cmdlet and the
Remove-CsMediaConfiguration cmdlet--are used to remove all the media configuration collections where encryption
is required of all parties involved in the conversation. To do this, the Get-CsMediaConfiguration cmdlet is first used
to return all the media configuration collections in the organization. That information is then piped to the
Where-Object cmdlet, which applies a filter that restricts the pipeline data to those collections where the
EncryptionLevel property is equal to (-eq) RequireEncryption. Finally, that filtered set of data is passed to the
Remove-CsMediaConfiguration cmdlet, which deletes each item in the set.

-------------------------- Example 3 --------------------------

Get-CsMediaConfiguration -Filter service:* | Remove-CsMediaConfiguration


In this example all media configurations defined at the service scope (meaning the configuration applies to a
specific service) are removed. This is accomplished by first calling the Get-CsMediaConfiguration cmdlet using the
Filter service:*. This filter retrieves all media configuration collections with an Identity starting with service, which
means all collections at the service scope. That set of collections is then piped the Remove-CsMediaConfiguration
cmdlet, which removes them all.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the media configuration settings you want to remove. This identifier specifies the scope at
which this configuration is applied (global, site, or service).

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Media.MediaSettings object. Accepts pipelined input of media
configuration objects.

Outputs
Removes an object of type Microsoft.Rtc.Management.WritableConfig.Settings.Media.MediaSettings.

Related Links
New -CsMediaConfiguration
Set-CsMediaConfiguration
Get-CsMediaConfiguration
minutes to read • Edit Online

Remove-CsMeetingConfiguration
In ths Article

The `Remove-CsMeetingConfiguration` cmdlet enables you to delete an existing collection of meeting


configuration settings. Meeting configuration settings help dictate the type of meetings (also called "conferences")
that users can create, as well as control how (or even if) anonymous users and dial-in conferencing users can join
these meetings. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsMeetingConfiguration [-Identity] <XdsIdentity> [-Force] [-Tenant <Guid>] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Online meetings (also called conferences) are an integral part of Skype for Business Server. The
CsMeetingConfiguration cmdlets enable administrators to control the type of meetings that users can create as
well as determine how meetings deal with anonymous users and dial-in conferencing users. For example, you can
configure meetings so that anyone dialing in over the public switched telephone network (PSTN ) is automatically
admitted to the meeting. Alternatively, you can configure meetings so that dial-in users are not automatically
admitted the meeting, but are instead routed to the meeting lobby. These dial-in users remain on hold in the lobby
until a presenter admits them to the meeting.
Meeting configuration settings can be assigned to the global, site, or service scopes. If you create new settings at
the site or service scope, those settings can later be removed by using the Remove-CsMeetingConfiguration cmdlet.
The Remove-CsMeetingConfiguration cmdlet can also be run against the global meeting settings. In that case,
however, the settings will not be removed; that's because the global settings cannot be removed. Instead, all the
properties in the global collection will be reset to their default values.

Examples
-------------------------- Example 1 ------------------------

Remove-CsMeetingConfiguration -Identity site:Redmond

In Example 1, the meeting configuration settings that have the Identity site:Redmond are removed. When these
settings are removed from the Redmond site users in that site will automatically inherit the global meeting
configuration settings.
-------------------------- Example 2 ------------------------

Get-CsMeetingConfiguration -Filter "site:*" | Remove-CsMeetingConfiguration

The command shown in Example 2 removes all the meeting settings that have been configured at the site scope. To
do this, the command first calls the Get-CsMeetingConfiguration cmdlet along with the Filter parameter; the filter
value "site:*" ensures that only settings that have an Identity that begins with the characters "site:" are selected. This
filtered collection is then piped to the Remove-CsMeetingConfiguration cmdlet, which deletes each item in the
collection.
-------------------------- Example 3 ------------------------

Get-CsMeetingConfiguration | Where-Object {$_.AdmitAnonymousUsersByDefault -eq $True} | Remove-


CsMeetingConfiguration

Example 3 deletes each collection of meeting configuration settings where the AdmitAnonymousUsersByDefault
property is True. To carry out this task, the command first calls the Get-CsMeetingConfiguration cmdlet in order to
return a collection of all the meeting configuration settings currently in use. This collection is then piped to the
Where-Object cmdlet, which picks out only those settings where the AdmitAnonymousUsersByDefault property is
equal to True. The filtered collection is then piped to the Remove-CsMeetingConfiguration cmdlet, which proceeds to
remove each item in that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the meeting configuration settings to be removed. To "remove" the global settings, use this
syntax: -Identity global . (As noted previously, you cannot actually remove the global settings; all you can do is
reset the properties to their default values.) To remove settings from the site scope, use syntax similar to this:
-Identity site:Redmond. Service settings can be removed using this syntax:
-Identity service:UserServer:atl-cs-001.litwareinc.com .

Note that you cannot use wildcards when specifying an Identity.


Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the meeting configuration
settings being deleted. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.MeetingConfiguration object. The
Remove-CsMeetingConfiguration cmdlet accepts pipelined instances of the meeting configuration object.

Outputs
None. Instead, the Remove-CsMeetingConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.MeetingConfiguration object.

Related Links
Get-CsMeetingConfiguration
New -CsMeetingConfiguration
Set-CsMeetingConfiguration
minutes to read • Edit Online

Remove-CsMobilityPolicy
In ths Article

Removes an existing mobility policy. Mobility policies determine whether or not a user can use Call via Work, a
feature that enables users to make and receive phone calls on their mobile phone by using their work phone
number instead of their mobile phone number. Mobility policies can also be used to require Wi-Fi connections
when making or receiving calls. This cmdlet was introduced in the cumulative update for Lync Server 2010:
November 2011.

Syntax
Remove-CsMobilityPolicy [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[-Tenant <Guid>] [<CommonParameters>]

Description
Skype for Business Mobile is a client application that enables users to run Skype for Business on their mobile
phones. Call via Work provides a way for users to make calls on their mobile phone and yet have it appear as
though the call originated from their work phone number instead of their mobile phone number. Users who have
been enabled for Call via Work can achieve this either by dialing directly from their mobile phone or by using the
dial-out conferencing option. With dial-out conferencing, a user effectively asks the Mobility Service server to make
a call for them. The server will set up the call, and then call the user back on their mobile phone. After the user has
answered, the server will then dial the party being called. Both of these capabilities can be managed by using
mobility policies.
With Skype for Business Server, mobile devices can make or receive phone calls by using either the standard
cellular phone network. or by using Wi-Fi connections. Mobility policies can be used to require Wi-Fi connections
and prevent calls over the cellular network.
When you install Skype for Business Server, you will have a single, global mobility policy that applies to all your
users. However, administrators can use the New-CsMobilityPolicy cmdlet to create custom policies at either the site
or the per-user scope.
If you do create custom policies at either the site or the per-user scope you can later delete those policies by using
the Remove-CsMobilityPolicy cmdlet. If you delete a per-user policy, then any users assigned that policy will be
managed by the appropriate site policy (if one exists) or by the global policy. If you remove a site policy, users
governed by that policy will then be managed by the global policy.
Note that you can also run the Remove-CsMobilityPolicy cmdlet against the global policy. If you do that, however,
the global policy will not actually be deleted; instead, the properties in that policy will be reset to their default
values. In this case, that means enabling Call via Work.

Examples
-------------------------- Example 1 --------------------------
Remove-CsMobilityPolicy -Identity "site:Redmond"

The command shown in Example 1 removes the mobility policy configured for the Redmond site. When the policy
is removed, users previously managed by the Redmond site policy will now be managed by the global policy.
-------------------------- Example 2 --------------------------

Get-CsMobilityPolicy -Filter "tag:*" | Remove-CsMobilityPolicy

In Example 2, all the mobility policies configured at the per-user scope are removed. To do this, the command first
uses the Get-CsMobilityPolicy cmdlet and the Filter parameter to retrieve all the policies that have an Identity that
begins with the string value "Tag:"; by definition, any policy meeting that criterion will be a per-user policy. That
collection of per-user policies is then piped to the Remove-CsMobilityPolicy cmdlet, which deletes each policy in the
collection.
-------------------------- Example 3 --------------------------

Get-CsMobilityPolicy | Where-Object {$_.EnableOutsideVoice -eq $False} | Remove-CsMobilityPolicy

Example 3 demonstrates a way to delete all the mobility policies where Call via Work has been enabled. To do this,
the command first uses the Get-CsMobilityPolicy cmdlet to retrieve a collection of all the mobility policies currently
in use in the organization. That collection is then piped to the where-Object cmdlet, which picks out only those
policies where the EnableOutsideVoice property is set to False. Any policies where EnableOutsideVoice is False are
then piped to and removed by, the Remove-CsMobilityPolicy cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If this parameter is present, the policy will be removed even if it is currently assigned to at least one user. If this
parameter is not present, then the Remove-CsMobilityPolicy cmdlet will not automatically remove a per-user policy
that is assigned to at least one user. Instead, a confirmation prompt will appear asking if you are sure that you want
to remove the policy. You must answer yes (by pressing the Y key) before the command will continue and the policy
is removed.
This parameter applies only to per-user policies.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax:
-Identity global

Note, however, that the global policy cannot actually be removed. Instead, all the properties in that policy will be
reset to their default values.
To remove a site policy, use syntax similar to this:
-Identity "site:Redmond"

To remove a per-user policy, use syntax similar to this:


-Identity "SalesDepartmentPolicy"

You cannot use wildcards when specifying a policy Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the mobility policy is
being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WriteableConfig.Policy.Mobility.Mobility. The Remove-CsMobilityPolicy cmdlet accepts
pipelined instances of the Mobility object.

Outputs
None. Instead, the Remove-CsMobilityPolicy cmdlet deletes instances of the
Microsoft.Rtc.Management.WriteableConfig.Policy.Mobility.Mobility object.
minutes to read • Edit Online

Remove-CsNetworkBandwidthPolicyProfile
In ths Article

Removes a network bandwidth policy profile. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsNetworkBandwidthPolicyProfile [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
As part of call admission control (CAC ), a bandwidth policy is used to define bandwidth limitations for certain
modalities. (In Skype for Business Server, only audio and video modalities can be assigned bandwidth limitations.)
This cmdlet removes a container profile for these policies.
IMPORTANT: If a profile has been assigned to a site (by using the New-CsNetworkSite cmdlet or the
Set-CsNetworkSite cmdlet), to an inter -site policy (by using the New-CsNetworkInterSitePolicy cmdlet or the
Set-CsNetworkInterSitePolicy cmdlet), or to a network region link (by using the New-CsNetworkRegionLink cmdlet or
the Set-CsNetworkRegionLink cmdlet) it cannot be removed. You will receive an error if you try to remove the profile
by calling the Remove-CsNetworkBandwidthPolicyProfile cmdlet. You must first remove the profile from all sites, inter-
site policies and network region links, and then you can remove the profile.

Examples
-------------------------- Example 1 --------------------------

Remove-CsNetworkBandwidthPolicyProfile -Identity LowBWProfile

This example removes the bandwidth policy profile with the Identity LowBWProfile. Because identities must be
unique this will remove, at most, one profile.
-------------------------- Example 2 --------------------------

Get-CsNetworkSite | Where-Object {$_.BWPolicyProfileID -eq "LowBWProfile"} | Set-CsNetworkSite -


BWPolicyProfileID $null

Remove-CsNetworkBandwidthPolicyProfile -Identity LowBWProfile

Example 2 removes all references to the bandwidth policy profile with the Identity LowBWProfile from all sites to
which it has been assigned and then removes that profile. The first line of this example begins with a call to the
Get-CsNetworkSite cmdlet to retrieve all sites configured for call admission control ( CAC ). This collection of sites is
then piped to the Where-Object cmdlet, which looks for only those sites with a BWPolicyProfileID that is equal to (-
eq) LowBWProfile. This narrowed-down collection, containing only sites with a BWPolicyProfileID value of
LowBWProfile, is piped to the Set-CSNetworkSite cmdlet, which modifies each of these sites to change the
BWPolicyProfileID to Null ($null). What we've just done is to find all sites with a BWPolicyProfileID of
LowBWProfile and set that value to Null. At this point there are no sites using the LowBWProfile profile. We now
call the Remove-CsNetworkBandwidthPolicyProfile cmdlet on the profile LowBWProfile to remove the profile,
knowing that the profile is not in use by any sites.
To ensure that the profile is not in use anywhere in the network configuration, perform the same steps in Line 1
against inter-site policies and network region links.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string value that uniquely identifies the bandwidth policy profile you want to remove. Specifying an Identity will
remove, at most, one profile.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType object. Accepts
pipelined input of network bandwidth policy profile objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType.

Related Links
New -CsNetworkBandwidthPolicyProfile
Set-CsNetworkBandwidthPolicyProfile
Get-CsNetworkBandwidthPolicyProfile
minutes to read • Edit Online

Remove-CsNetworkConfiguration
In ths Article

Resets all the network configuration settings for a Skype for Business Server deployment to the default values. This
deletes an entire call admission control (CAC ) deployment and related E9-1-1 configuration. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsNetworkConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
WARNING: Running this cmdlet will delete an entire network configuration, including CAC, E9-1-1 regions and
sites, and media bypass.

Examples
-------------------------- Example 1 --------------------------

Remove-CsNetworkConfiguration -Identity Global -Confirm

This example removes all CAC, location, E9-1-1 network and media bypass settings. The Confirm parameter is used
so you'll be prompted to verify you really want to do this before everything is deleted.

Parameters
-Confirm
Prompts you for confirmation before executing the command. It is recommended that you always use this
parameter with this cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This will always be Global.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkConfigurationSettings object.
Accepts pipelined input of a network configuration object.

Outputs
This cmdlet does not return an object. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkConfigurationSettings object.

Related Links
Set-CsNetworkConfiguration
Get-CsNetworkConfiguration
Get-CsNetworkSite
Get-CsNetworkRegionLink
Get-CsNetworkInterSitePolicy
Get-CsNetworkInterRegionRoute
Get-CsNetworkRegion
Get-CsNetworkSubnet
Get-CsNetworkBandwidthPolicyProfile
minutes to read • Edit Online

Remove-CsNetworkInterRegionRoute
In ths Article

Removes a route that connects network regions within a call admission control (CAC ) configuration. This cmdlet
was introduced in Lync Server 2010.

Syntax
Remove-CsNetworkInterRegionRoute [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Every region within a CAC configuration must have some way to access every other region. While region links set
bandwidth limitations on the connections between regions and also represent the physical links, a route determines
which linked path the connection will traverse from one region to another. This cmdlet removes one of these route
associations.

Examples
-------------------------- Example 1 --------------------------

Remove-CsNetworkInterRegionRoute -Identity NA_APAC_Route

Example 1 removes the route with the Identity NA_APAC_Route.


-------------------------- Example 2 --------------------------

Get-CsNetworkInterRegionRoute | Where-Object {$_.NetworkRegionID1 -eq "NorthAmerica" -or $_.NetworkRegionID2 -


eq "NorthAmerica"} | Remove-CsNetworkInterRegionRoute

Example 2 removes all region routes that include the NorthAmerica region. The first part of the command is a call
to the Get-CsNetworkInterRegionRoute cmdlet. This cmdlet, called with no parameters, will retrieve all region routes.
Next, this collection of routes is piped to the Where-Object cmdlet. The Where-Object cmdlet will narrow the
collection down to only those routes that have NorthAmerica defined as one of the regions in the route. It does this
by checking to see if the route has a NetworkRegionID1 value equal to (-eq) NorthAmerica, or (-or) a
NetworkRegionID2 value equal to NorthAmerica. Once the collection contains only the routes that include the
NorthAmerica region, we pipe the collection to the Remove-CsNetworkInterRegionRoute cmdlet, which removes each
of those routes.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier for the network region route you want to remove. Network region routes are created only at
the global scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique
name that identifies that route.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType object.
Accepts pipelined input of network inter-region route objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType.

Related Links
New -CsNetworkInterRegionRoute
Set-CsNetworkInterRegionRoute
Get-CsNetworkInterRegionRoute
minutes to read • Edit Online

Remove-CsNetworkInterSitePolicy
In ths Article

Removes a network inter-site policy that defines bandwidth limitations between sites that are directly linked within
a call admission control (CAC ) configuration. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsNetworkInterSitePolicy [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
When network sites share a direct link, bandwidth limitations for audio and video connections can be defined
between those two sites. This cmdlet removes a network site policy that associates a bandwidth limitation policy
with two directly connected sites.

Examples
-------------------------- Example 1 --------------------------

Remove-CsNetworkInterSitePolicy -Identity Reno_Portland

This example removes the network site policy with the Identity Reno_Portland.
-------------------------- Example 2 --------------------------

Get-CsNetworkInterSitePolicy | Remove-CsNetworkInterSitePolicy

In Example 2, we remove all network site policies defined within the CAC configuration. We begin by calling the
Get-CsNetworkInterSitePolicy cmdlet to retrieve a collection of all network site policies. That collection is then
piped to the Remove-CsNetworkInterSitePolicy cmdlet, which removes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the network site policy you want to remove. Network site policies are created only at the
global scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique name
that identifies that site policy.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType object.
Accepts pipelined input of network inter-site policy objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType.

Related Links
New -CsNetworkInterSitePolicy
Set-CsNetworkInterSitePolicy
Get-CsNetworkInterSitePolicy
minutes to read • Edit Online

Remove-CsNetworkRegion
In ths Article

Removes an existing network region. Network regions represent network hubs or backbones in an enterprise
network. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsNetworkRegion [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
A network region interconnects various parts of a network across multiple geographic areas. Every network region
must be associated with a central site. The central site is the data center site on which the bandwidth policy service
is running. Use this cmdlet to remove a network region.
Note that a network region cannot be removed if it is associated with a network site (in other words, the
NetworkRegionID of any site is equal to the Identity of the region). If you attempt to remove a region associated
with a site you'll receive an error message.

Examples
-------------------------- Example 1 --------------------------

Remove-CsNetworkRegion -Identity NorthAmerica

Example 1 removes the network region with the Identity NorthAmerica. Because identities are unique this
command removes only one network region.
-------------------------- Example 2 --------------------------

Get-CsNetworkRegion | Where-Object {$_.CentralSite -eq "site:Redmond"} | Remove-CsNetworkRegion

This example removes all network regions associated with the central site Redmond. The command begins by
calling the Get-CsNetworkRegion cmdlet, with no parameters, to retrieve a collection of all network regions defined
for the Skype for Business Server deployment. This collection is then piped to the Where-Object cmdlet. The
Where-Object cmdlet filters this collection to return only those items (network regions) where the CentralSite value
is equal to (-eq) site:Redmond. After narrowing the collection down to those items, this new collection is piped to
the Remove-CsNetworkRegion cmdlet, which removes every item in that collection.
-------------------------- Example 3 --------------------------
Get-CsNetworkSite | Where-Object {$_.NetworkRegionID -eq "NorthAmerica"} | Set-CsNetworkSite -NetworkRegionID
$null -BypassID $null

Remove-CsNetworkRegion -Identity "NorthAmerica"

This example removes the network region with the Identity NorthAmerica. However, a region cannot be removed if
it is associated with a site. So this example first removes any association between the NorthAmerica region and a
site.
The example begins by calling the Get-CsNetworkSite cmdlet, with no parameters, to retrieve a collection of all
network sites defined for the Skype for Business Server deployment. This collection is then piped to the
Where-Object cmdlet. The Where-Object cmdlet filters this collection to return only those items (network sites)
where the NetworkRegionID value is equal to (-eq) NorthAmerica. After narrowing the collection down to those
items, this new collection is piped to the Set-CsNetworkSite cmdlet. For each site containing the NetworkRegionID
NorthAmerica, we set the NetworkRegionID to Null ($null). This removes the reference to the region on that site.
However, a site can't have a bypass ID if it isn't associated with a site. So in addition to removing the reference to
the region by setting the NetworkRegionID to Null, we must also remove the bypass association by setting
BypassID to Null.
After line 1 completes, any site that was associated with the NorthAmerica region is no longer tied to a region or to
any bypass settings. At this point we can call line 2, which removes the network region.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the network region you want to remove. The Identity will be in the form of a string that
uniquely identifies that region.
Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType object. Accepts
pipelined input of network region objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType.

Related Links
New -CsNetworkRegion
Set-CsNetworkRegion
Get-CsNetworkRegion
minutes to read • Edit Online

Remove-CsNetworkRegionLink
In ths Article

Removes a link between two regions configured for call admission control (CAC ). This cmdlet was introduced in
Lync Server 2010.

Syntax
Remove-CsNetworkRegionLink [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Regions within a network are linked through physical WAN connectivity. This cmdlet does not impact any physical
connections, but it does remove the link from the CAC configuration.

Examples
-------------------------- Example 1 --------------------------

Remove-CsNetworkRegionLink -Identity NA_EMEA

This first example removes the network region link with the Identity NA_EMEA.
-------------------------- Example 2 --------------------------

Get-CsNetworkRegionLink | Where-Object {$_.BWPolicyProfileID -eq "HighBWLimits"} | Remove-CsNetworkRegionLink

Example 2 removes all network region links that are using the bandwidth policy profile named HighBWLimits. The
first cmdlet called in the example is the Get-CsNetworkRegionLink cmdlet (with no parameters), which will retrieve all
region links. This collection of links is then piped to the Where-Object cmdlet. The Where-Object cmdlet looks
through each member of the collection one-by-one, checking the value of the BWPolicyProfileID property. If this
property is equal to (-eq) HighBWLimits, we pipe that member to the Remove-CsNetworkRegionLink cmdlet, which
removes the link.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the network region link you want to remove. Network region links are created only at the
global scope, so this identifier does not need to specify a scope. Instead, it contains a string that is a unique name
that identifies that link.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType object.
Accepts pipelined input of network region link objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType.

Related Links
New -CsNetworkRegionLink
Set-CsNetworkRegionLink
Get-CsNetworkRegionLink
minutes to read • Edit Online

Remove-CsNetworkSite
In ths Article

Removes a network site that has been defined for call admission control (CAC ) or Enhanced 9-1-1 (E9-1-1). This
cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsNetworkSite [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Network sites are the offices or locations configured within each region of a CAC or E9-1-1 deployment. This
cmdlet removes a site from the CAC or E9-1-1 configuration.

Examples
-------------------------- Example 1 --------------------------

Remove-CsNetworkSite -Identity Vancouver

This example removes the site with the Identity Vancouver from the CAC or E9-1-1 configuration.
-------------------------- Example 2 --------------------------

Get-CsNetworkSite | Where-Object {$_.BWPolicyProfileID -eq "LowBWProfile"} | Remove-CsNetworkSite

Example 2 removes all sites that are using the bandwidth policy profile named LowBWProfile from the CAC or E9-
1-1 configuration. The example first calls the Get-CsNetworkSite cmdlet to retrieve all network sites. This collection
of sites is piped to the Where-Object cmdlet, which narrows the collection to only those sites that have a
BWPolicyProfileID equal to (-eq) LowBWProfile. This new collection is then piped to the Remove-CsNetworkSite
cmdlet to remove those sites.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the network site you want to remove. Sites are created only at the global scope, so you do
not need to specify a scope. Instead, you need to specify only the site ID.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.DisplayNetworkSiteType object.
Accepts pipelined input of network site objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.DisplayNetworkSiteType.

Related Links
New -CsNetworkSite
Set-CsNetworkSite
Get-CsNetworkSite
minutes to read • Edit Online

Remove-CsNetworkSubnet
In ths Article

Removes an existing network subnet. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsNetworkSubnet [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Each subnet must be associated with a network site for the purposes of determining the geographic location of the
host belonging to this subnet. Use this cmdlet to remove a network subnet.

Examples
-------------------------- Example 1 --------------------------

Remove-CsNetworkSubnet -Identity 172.11.15.0

This example removes the subnet with the Identity (the Subnet ID ) 172.11.15.0.
-------------------------- Example 2 --------------------------

Get-CsNetworkSubnet | Where-Object {$_.NetworkSiteID -eq "Vancouver"} | Remove-CsNetworkSubnet

Example 2 removes all subnets associated with the Vancouver site. To do this, we begin by calling the
Get-CsNetworkSubnet cmdlet. This will retrieve a collection of all subnets defined within the Skype for Business
Server deployment. This collection of subnets is then piped to the Where-Object cmdlet. The Where-Object cmdlet
takes that collection and narrows it down to only those subnets with a NetworkSiteID equal to (-eq) Vancouver.
Now that the collection consists only of subnets associated with the Vancouver site, we pipe the collection to the
Remove-CsNetworkSubnet cmdlet, which removes every item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique subnet ID of the subnet you want to remove. This value will be an IP address (such as 174.11.12.0).

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType object. Accepts pipelined
input of network subnet objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType.

Related Links
New -CsNetworkSubnet
Set-CsNetworkSubnet
Get-CsNetworkSubnet
minutes to read • Edit Online

Remove-CsOAuthServer
In ths Article

Removes an existing Open Authorization (OAuth) server. OAuth servers, also known as security token servers,
issue security tokens used in server-to-server authentication and authorization. This cmdlet was introduced in Lync
Server 2013.

Syntax
Remove-CsOAuthServer [-Identity] <XdsGlobalRelativeIdentity> [-Confirm] [-Force] [-Tenant <Guid>] [-WhatIf]
[<CommonParameters>]

Description
In Skype for Business Server, server-to-server authentication (for example, the authentication that enables Skype
for Business Server and Exchange to share information) is carried out using the OAuth security protocol. This type
of authentication typically requires three servers: the two servers that need to communicate with one another
(Server A and B ) and a third-party security token server. If Servers A and B need to communicate with one another,
the two servers contact the token server (also known as an OAuth server) and obtain mutually-trusted security
tokens that the two servers can exchange in order to prove their identities.
If you are using an on-premises version of Skype for Business Server and you need to communicate with another
server product that fully supports the OAuth protocol then you typically do not need to use a token server; that's
because these server products are able to issue their own security tokens. However, if you need to communicate
with another server product (including server products found on Office 365) then you will need to use a token
servers. These token servers can be managed by using the CsOAuthServer cmdlets.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsOAuthServer cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOAuthServer -Identity "Office365"

The command shown in Example 1 deletes a single OAuth server: the server with the identity "Office 365".
-------------------------- Example 2 --------------------------

Get-CsOAuthServer | Remove-CsOAuthServer

Example 2 deletes all the OAuth servers configured for use in the organization. To carry out this task, the command
first calls the Get-CsOAuthServer cmdlet without any parameters in order to return all the OAuth servers. These
servers are then piped to, and removed by, the Remove-CsOAuthServer cmdlet.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the OAuth server to be deleted. For example:
-Identity "Office 365"

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the OAuth server being
deleted. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsOAuthServer cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer#Decorated object.

Outputs
None. Instead, the Remove-CsOAuthServer cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer#Decorated object.

Related Links
Get-CsOAuthServer
New -CsOAuthServer
Set-CsOAuthServer
minutes to read • Edit Online

Remove-CsOnlineApplicationEndpoint
In ths Article

Provide the topic introduction here.

Syntax
Remove-CsOnlineApplicationEndpoint [-Uri] <String> [-Audience <String>] [-Ring <String>]
[-PhoneNumber <String>] [-IsInternalRun <Boolean>] [-Tenant <Guid>]
[-RunFullProvisioningFlow <Boolean>] [-DomainController <Fqdn>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
The following parameters are not applicable to Skype for Business Online: AsJob, Audience, DomainController,
Force, IsInternalRun, PhoneNumber, PipelineVariable, Ring, and RunFullProvisioningFlow

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Audience
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
PARAMVALUE: Fqdn

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IsInternalRun
{{Fill IsInternalRun Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PhoneNumber
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Ring
{{Fill Ring Description}}
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RunFullProvisioningFlow
{{Fill RunFullProvisioningFlow Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Uri
PARAMVALUE: String

Type: String
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Remove-CsOnlineApplicationInstanceAssociation
In ths Article

Use the Remove-CsOnlineApplicationInstanceAssociation cmdlet to remove the association between an application


instance and the associated application configuration.

Syntax
Remove-CsOnlineApplicationInstanceAssociation -Identities <String[]> [-Tenant <Guid>] [<CommonParameters>]

Description
Use the Remove-CsOnlineApplicationInstanceAssociation cmdlet to remove the association between an application
instance and the associated application configuration.
This is useful when you want to associate this application instance with another application configuration for
handling incoming calls.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOnlineApplicationInstanceAssociation -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093"

This example removes the configuration association for the application instance that has the identity of "f7a821dc-
2d69-5ae8-8525-bcb4a4556093".

Parameters
-Identities
The identities for the application instances whose configuration associations are to be removed.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String[]
The Remove-CsOnlineApplicationInstanceAssociation cmdlet accepts a string array as the Identities parameter.

Outputs
Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput

Related Links
Get-CsOnlineApplicationInstanceAssociation
Get-CsOnlineApplicationInstanceAssociationStatus
New -CsOnlineApplicationInstanceAssociation
minutes to read • Edit Online

Remove-CsOnlineDialInConferencingTenantSettings
In ths Article

Use the `Remove-CsOnlineDialInConferencingTenantSettings` cmdlet to revert the tenant level dial-in conferencing
settings to their original defaults.

Syntax
Remove-CsOnlineDialInConferencingTenantSettings [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
There is always a single instance of the dial-in conferencing settings per tenant. You can modify the settings using
Set-CsOnlineDialInConferencingTenantSettings and revert those settings to their defaults by using
Remove-CsOnlineDialInConferencingTenantSettings .

Examples
-------------------------- Example 1 --------------------------

Remove-CsOnlineDialInConferencingTenantSettings

This example reverts the tenant level dial-in conferencing settings to their original defaults.

Parameters
-Confirm
The Confirm switch causes the command to pause processing and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
minutes to read • Edit Online

Remove-CsOnlineLisCivicAddress
In ths Article

Use the `Remove-CsOnlineLisCivicAddress` cmdlet to delete an existing civic address from the Location
Information Server (LIS.) You can't remove a civic address if any of its associated locations are assigned to users.

Syntax
Remove-CsOnlineLisCivicAddress -CivicAddressId <Guid> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOnlineLisCivicAddress -CivicAddressId ee38d9a5-33dc-4a32-9fb8-f234cedb91ac

This example removes the emergency civic address with the specified identification.
-------------------------- Example 2 --------------------------

Get-CsOnlineLisCivicAddress -City Redmond | Remove-CsOnlineLisCivicAddress

This example removes all the emergency civic addresses in the city of Redmond.

Parameters
-CivicAddressId
Specifies the unique identifier of the civic address to be deleted. You can find civic address identifiers by using the
Get-CsOnlineLisCivicAddress cmdlet.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing and requires confirmation to proceed.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
This cmdlet accepts pipelined input from the Get-CsOnlineLisCivicAddress cmdlet.

Outputs
None
minutes to read • Edit Online

Remove-CsOnlineLisLocation
In ths Article

Use the `Remove-CsOnlineLisLocation` cmdlet to remove an existing emergency location from the Location
Information Service (LIS.) You can only remove locations that have no assigned users.

Syntax
Remove-CsOnlineLisLocation -LocationId <Guid> [-Tenant <Guid>] [-DomainController <Fqdn>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
If the location specified for removal is assigned to users, the cmdlet will fail until the users assignments are
removed.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOnlineLisLocation -LocationId 788dd820-c136-4255-9f61-24b880ad0763

This example removes the location specified by its identity.

Parameters
-Confirm
The Confirm switch causes the command to pause processing and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationId
Specifies the unique identifier of the location to be deleted. Location identities can be discovered by using the
Get-CsOnlineLisLocation cmdlet.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
This cmdlet supports pipelined input from the Get-CsOnlineLisLocation cmdlet.

Outputs
None
minutes to read • Edit Online

Remove-CsOnlineNumberPortInOrder
In ths Article

This cmdlet is reserved for Microsoft internal use only. New third party provider ports should be provisioned
through the Skype for Business Online admin center.

Syntax
Remove-CsOnlineNumberPortInOrder [-Tenant <Guid>] -PortInOrderId <String> [-DomainController <Fqdn>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Confirm
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PortInOrderId
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
This parameter is reserved for internal Microsoft use.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Remove-CsOnlinePSTNGateway
In ths Article

Removes the configuration of the previously defined Session Border Controller(s) (SBC (s)) that describes the
settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing.

Syntax
Remove-CsOnlinePSTNGateway -Identity <SBCFQDN>

Description
Use this cmdlet to remove the configuration of the previously created Session Border Controller(s) (SBC (s))
configuration. Note the SBC must be removed from all voice routes before executing this cmdlet.

Examples
Example 1

PS C:\> Remove-CsOnlinePSTNGateway -Identity sbc.contoso.com

This example removes SBC with Identity (and FQDN ) sbc.contoso.com.


Example 2

PS C:\> Removes-CsOnlinePSTNGateway | ?{$_.Identity -like "*.contoso.com"}

This example removes the SBCs with identities (and FQDNs) matching the pattern *.contoso.com. For example:
sbc1.contoso.com, sbc2.contoso.com etc.

Parameters
-Identity
The parameter is mandatory for the cmdlet. The Identity is the same as the SBC FQDN.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsGlobalRelativeIdentity

Outputs
System.Object

Related Links
Set-CsOnlinePSTNGateway
New -CsOnlinePSTNGateway
Get-CsOnlinePSTNGateway
minutes to read • Edit Online

Remove-CsOnlineSchedule
In ths Article

Use the Remove-CsOnlineSchedule cmdlet to remove a schedule.

Syntax
Remove-CsOnlineSchedule -Id <String> [-Tenant <Guid>] [-CommonParameters]

Description
The Remove-CsOnlineSchedule cmdlet deletes a schedule that is specified by using the Id parameter.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOnlineSchedule -Id "fa9081d6-b4f3-5c96-baec-0b00077709e5"

This example deletes the schedule that has a Id of fa9081d6-b4f3-5c96-baec-0b00077709e5.

Parameters
-Id
The Id for the schedule to be removed.

Type: System.String
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
The Remove-CsOnlineSchedule cmdlet accepts a string as the Id parameter.

Outputs
System.Void

Related Links
New -CsOnlineSchedule
Set-CsOnlineSchedule
minutes to read • Edit Online

Remove-CsOnlineTelephoneNumber
In ths Article

Use the `Remove-CsOnlineTelephoneNumber` cmdlet to remove a telephone number from the Business Voice
Directory.

Syntax
Remove-CsOnlineTelephoneNumber -TelephoneNumber <String[]> [-Tenant <Guid>] [-DomainController <Fqdn>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOnlineTelephoneNumber -TelephoneNumber +14258884567

This example removes the specified telephone number from the Business Voice Directory.

Parameters
-Confirm
The Confirm switch causes the command to pause processing and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumber
Specifies the target telephone number. For example: -TelephoneNumber tel:+18005551234, or -TelephoneNumber
+14251234567

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
minutes to read • Edit Online

Remove-CsOnlineVoiceRoute
In ths Article

Removes an online voice route. Online voice routes contain instructions that tell Skype for Business Online how to
route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN ) or a private
branch exchange (PBX).

Syntax
Remove-CsOnlineVoiceRoute [-Tenant <Guid>] [[-Identity] <XdsGlobalRelativeIdentity>] [-Force] [-WhatIf] [-
Confirm]

Description
Use this cmdlet to remove an existing online voice route. Online voice routes are associated with online voice
policies through online PSTN usages, so removing an online voice route does not change any values relating to an
online voice policy, it simply changes the routing for the numbers that had matched the pattern for the deleted
online voice route.
This cmdlet is used when configuring Microsoft Phone System Direct Routing.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Remove-CsOnlineVoiceRoute -Identity Route1

Removes the settings for the online voice route with the identity Route1.
-------------------------- Example 2 --------------------------

PS C:\ Get-CsOnlineVoiceRoute | Remove-CsOnlineVoiceRoute

This command removes all online voice routes from the organization. First all online voice routes are retrieved by
the Get-CsOnlineVoiceRoute cmdlet. These online voice routes are then piped to the Remove-CsOnlineVoiceRoute
cmdlet, which removes each one.
-------------------------- Example 3 --------------------------

PS C:\ Get-CsOnlineVoiceRoute -Filter *Redmond* | Remove-CsOnlineVoiceRoute

This command removes all online voice routes with an identity that includes the string "Redmond". First the
Get-CsOnlineVoiceRoute cmdlet is called with the Filter parameter. The value of the Filter parameter is the string
Redmond surrounded by wildcard characters (*), which specifies that the string can be anywhere within the Identity.
After all of the online voice routes with identities that include the string Redmond are retrieved, these online voice
routes are piped to the Remove-CsOnlineVoiceRoute cmdlet, which removes each one.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must
enclose the full string in parentheses.)

Type: XdsGlobalRelativeIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.
Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsGlobalRelativeIdentity

Outputs
System.Object

Related Links
Get-CsOnlineVoiceRoute
New -CsOnlineVoiceRoute
Set-CsOnlineVoiceRoute
minutes to read • Edit Online

Remove-CsOnlineVoiceRoutingPolicy
In ths Article

Deletes an existing online voice routing policy. Online voice routing policies manage online PSTN usages for Phone
System users.

Syntax
Remove-CsOnlineVoiceRoutingPolicy [[-Identity] <XdsIdentity>] [-Tenant <Guid>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Skype
for Business Online users an online voice routing policy enables those users to receive and to place phones calls to
the public switched telephone network by using your on-premises SIP trunks.
Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Skype
for Business Online or Teams. Among other things, you will also need to enable those users for Phone System and
will need to assign them an appropriate online voice policy.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Remove-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy"

The command shown in Example 1 deletes the online voice routing policy RedmondOnlineVoiceRoutingPolicy.
-------------------------- Example 2 --------------------------

PS C:\> Get-CsOnlineVoiceRoutingPolicy -Filter "tag:*" | Remove-CsOnlineVoiceRoutingPolicy

In Example 2, all the online voice routing policies configured at the per-user scope are removed. To do this, the
command first calls the Get-CsOnlineVoiceRoutingPolicy cmdlet along with the Filter parameter; the filter value
"tag:*" limits the returned data to online voice routing policies configured at the per-user scope. Those per-user
policies are then piped to and removed by, the Remove-CsOnlineVoiceRoutingPolicy cmdlet.
-------------------------- Example 3 --------------------------

PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Long Distance"} | Remove-


CsOnlineVoiceRoutingPolicy

In Example 3, all the online voice routing polices that include the online PSTN usage "Long Distance" are removed.
To carry out this task, the Get-CsOnlineVoiceRoutingPolicy cmdlet is first called without any parameters in order to
return a collection of all the available online voice routing policies. That collection is then piped to the Where-
Object cmdlet, which picks out only those policies where the OnlinePstnUsages property includes (-contains) the
usage "Long Distance". Policies that meet that criterion are then piped to the Remove-CsOnlineVoiceRoutingPolicy ,
which removes each online voice routing policy that includes the online PSTN usage "Long Distance".

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier assigned to the policy when it was created.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the tenant account whose external user communication policy are being
created. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"
You can return your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID
If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object

Related Links
New -CsOnlineVoiceRoutingPolicy
Get-CsOnlineVoiceRoutingPolicy
Set-CsOnlineVoiceRoutingPolicy
Grant-CsOnlineVoiceRoutingPolicy
minutes to read • Edit Online

Remove-CsOrganizationalAutoAttendant
In ths Article

Use the Remove-CsOrganizationalAutoAttendant cmdlet to delete an Auto Attendant (AA).

Syntax
Remove-CsOrganizationalAutoAttendant [-PrimaryUri] <Uri> [-ApplicationId <Guid>] [-Tenant <Guid>]
[<CommonParameters>]

Description
The Remove-CsOrganizationalAutoAttendant cmdlet deletes an OAA that is specified by using the PrimaryUri
parameter.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOrganizationalAutoAttendant -PrimaryUri "sip:mainoaa@contoso.com"

This example deletes the OAA that has a Primary URI of sip:mainoaa@contoso.com.

Parameters
-ApplicationId
Specifies a custom application ID to use for OAAs. This parameter is reserved for Microsoft internal use only.

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryUri
The PrimaryUri parameter represents the SIP address for the OAA to be removed.

Type: System.Uri
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String
The Remove-CsOrganizationalAutoAttendant cmdlet accepts a string as the PrimaryUri parameter.

Outputs
None

Related Links
New -CsOrganizationalAutoAttendant
Get-CsOrganizationalAutoAttendant
Set-CsOrganizationalAutoAttendant
minutes to read • Edit Online

Remove-CsOutboundCallingNumberTranslationRule
In ths Article

Removes an existing outbound calling number translation rule. An outbound calling number translation rule
converts the E.164 phone numbers used by Skype for Business Server to a format that can be used by trunking
peers that do not support E.164 numbers. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsOutboundCallingNumberTranslationRule [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
Outbound calling number translation rules convert the E.164 phone numbers used by Skype for Business to a
format that can be used by trunking peers that do not support E.164 numbers; when you create a translation rule
you supply a regular expression representing the outbound E.164 number (the Pattern) as well as a regular
expression representing the converted number (the Translation).
Outbound calling number translation rules must be bound to a collection of trunk configuration settings; when you
create a new translation rule you must specify both the Identity of the trunking configuration settings and a name
for the new rule (for example, site:Redmond/RedmondTranslationRule). Note that the trunking configuration
settings do not necessarily have to exist at the time you create a new rule. For example, suppose you create the rule
site:Redmond/RedmondTranslationRule but no trunk configuration settings have been created for the Redmond
site. If the Redmond site is a valid site, trunk configuration settings will automatically be created for the site and the
new translation rule will be assigned to that collection of settings. However, your command will fail if the Redmond
site does not exist.
Skype for Business Server Control Panel: To remove an outbound calling number translation rule using the Skype
for Business Server Control Panel, click Voice Routing and then click Trunk Configuration. Double-click the
appropriate item in the Name column and then, in the Edit Trunk Configuration dialog box, scroll down to the
section labeled Calling number translation roles. Select the rule to be deleted and then click Remove.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOutboundCallingNumberTranslationRule -Identity "site:Redmond/SevenDigit"

The command shown in Example 1 removes the outbound calling number translation rule that has the Identity
site:Redmond/SevenDigit.
-------------------------- Example 2 --------------------------
Remove-CsOutboundCallingNumberTranslationRule -Identity "site:Redmond"

In Example 2, all the outbound calling number translation rules configured for the Redmond site are removed. To
do this, the command calls the Remove-CsOutboundCallingNumberTranslationRule cmdlet along with the Identity
parameter; the parameter value "site:Redmond" ensures that all the translation rules configured for the Redmond
site will be removed.
-------------------------- Example 3 --------------------------

Get-CsOutboundCallingNumberTranslationRule | Where-Object {$_.Pattern -eq '^\+1425(\d{7})$'} | Remove-


CsOutboundCallingNumberTranslationRule

Example 3 deletes all the outbound calling number translation rules that use the Pattern "^+1425(\d{7})$". To do
this, the command first uses the Get-CsOutboundCallingNumberTranslationRule cmdlet to return a collection of all the
translation rules used in the organization. This collection is then piped to the Where-Object cmdlet, which picks out
only those rules where the Pattern property is equal to "^+1425(\d{7})$". That filtered collection is then piped to
the Remove-CsOutboundCallingNumberTranslationRule cmdlet, which deletes each rule in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the outbound translation rule you want to remove. The Identity consists of the scope
followed by a unique name within each scope. For example:
-Identity "site:Redmond/OutboundRule1"
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsOutboundCallingNumberTranslationRule cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule#Decorated
object.

Outputs
None. Instead, the Remove-CsOutboundCallingNumberTranslationRule cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule#Decorated
object.

Related Links
Get-CsOutboundCallingNumberTranslationRule
New -CsOutboundCallingNumberTranslationRule
Set-CsOutboundCallingNumberTranslationRule
minutes to read • Edit Online

Remove-CsOutboundTranslationRule
In ths Article

Removes an existing outbound translation rule. An outbound translation rule converts phone numbers to the local
dialing format for interaction with private branch exchange (PBX) systems. This cmdlet was introduced in Lync
Server 2010.

Syntax
Remove-CsOutboundTranslationRule [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call this cmdlet to remove an existing outbound translation rule. Skype for Business Server normalizes phone
numbers to E.164 format. However, many private branch exchange (PBX) systems aren't able to work with this
format. Outbound translations rules translate the number to the local dialing format prior to sending the number to
the Mediation Server or gateway.
Each outbound translation rule is associated with a trunk configuration. That means that using this cmdlet to
remove a rule will remove it from the trunk configuration at the corresponding scope.

Examples
-------------------------- Example 1 --------------------------

Remove-CsOutboundTranslationRule -Identity "site:Redmond/Prefix Redmond"

This example removes an existing outbound translation rule for site Redmond named Prefix Redmond. Identities
are unique, so this command will delete a single rule.
-------------------------- Example 2 --------------------------

Get-CsOutboundTranslationRule -Filter site:* | Remove-CsOutboundTranslationRule

This example removes all site-level outbound translation rules. The first part of the command is a call to the
Get-CsOutboundTranslationRule cmdlet with a Filter of site:*, which will return a collection of all rules with Identity
values beginning with site:. This collection is then piped to the Remove-CsOutboundTranslationRule cmdlet, which
removes each rule in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the outbound translation rule you want to remove. The Identity consists of the scope
followed by a unique name within each scope. For example, site:Redmond/OutboundRule1 .

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule object. Accepts pipelined
input of outbound translation rule objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule.

Related Links
New -CsOutboundTranslationRule
Set-CsOutboundTranslationRule
Get-CsOutboundTranslationRule
minutes to read • Edit Online

Remove-CsPartnerApplication
In ths Article

Removes an existing partner application. A partner application is any application that Skype for Business Server
can directly exchange security tokens with, without having to go through a third-party security token server. This
cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsPartnerApplication [-Identity] <XdsGlobalRelativeIdentity> [-Confirm] [-Force] [-Tenant <Guid>]
[-WhatIf] [<CommonParameters>]

Description
In Skype for Business Server, server-to-server authentication (for example, the authentication that enables Skype
for Business Server and Exchange to share information) is carried out using the OAuth security protocol. This type
of authentication typically requires three servers: the two servers that need to communicate with one another
(Server A and B ) and a third-party security token server. If Servers A and B need to communicate with one another,
the two servers contact the token server (also known as an OAuth server) and obtain mutually-trusted security
tokens that the two servers can exchange in order to prove their identities.
If you are using an on-premises version of Skype for Business Server and you need to communicate with another
server product that fully supports the OAuth protocol (for example, Exchange or SharePoint) then you typically do
not need to use a token server; that's because these server products are able to issue their own security tokens.
However, you will need to configure the other server product (e.g., Exchange) as a partner application. (You will also
need to configure Skype for Business Server as a partner application for the other server product.) In Skype for
Business Server, partner applications are managed by using the CsPartnerApplication cmdlets.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsPartnerApplication cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPartnerApplication -Identity "MicrosoftExchange"

The command shown in Example 1 deletes the partner application with the Identity "MicrosoftExchange".
-------------------------- Example 2 --------------------------

Get-CsPartnerApplication | Remove-CsPartnerApplication

In Example 2, all the partner applications configured for use in the organization are deleted. To do this, the
command first uses the Get-CsPartnerApplication cmdlet in order to return a collection of all the partner
applications. This collection is then piped to the Remove-CsPartnerApplication cmdlet, which deletes each application
in the collection.
-------------------------- Example 3 --------------------------

Get-CsPartnerApplication | Where-Object {$_.ApplicationTrustLevel -ne "Full"} | Remove-CsPartnerApplication

In Example 3, all the partner applications where the trust level is set to anything other than Full are deleted. To carry
out this task, the command first calls the Get-CsPartnerApplication cmdlet without any parameters in order to
return a collection of all the partner applications configured for use in the organization. This collection is then piped
to the Where-Object cmdlet, which selects only those applications where the ApplicationTrustLevel property is not
equal to (-ne) "Full". The applications that meet that criterion are then piped to and removed by, the
Remove-CsPartnerApplication cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the partner application to be removed. For example:
-Identity "MicrosoftExchange"

Note that you cannot use wildcard characters when specifying an Identity.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the partner application being
deleted. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPartnerApplication cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication#Decorated object.

Outputs
None. Instead, the Remove-CsPartnerApplication cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication#Decorated object.

Related Links
Get-CsPartnerApplication
New -CsPartnerApplication
Set-CsPartnerApplication
minutes to read • Edit Online

Remove-CsPersistentChatAddin
In ths Article

Removes an existing Persistent Chat add-in. A Persistent Chat add-in is a customized web page that can be
embedded within a Persistent Chat client. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsPersistentChatAddin [-Identity] <String> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Remove-CsPersistentChatAddin [-Instance] <Addin> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics, and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Add-ins serve as extensions to a Persistent Chat chat room. Add-ins are external applications (that is, items not built
into Persistent Chat itself) that are associated with a particular chat room. For example, a help desk chat room
might include a URL that links to a Web page or to a Silverlight application that shows the status of the day's help
requests. The Skype for Business Server Windows PowerShell command-line interface cmdlets do not provide the
ability to create these add-ins. Instead, the CsPersistentChatAddin cmdlets are used to associate (or disassociate) an
add-in from a chat room.
Skype for Business Server Control Panel: To remove a Persistent Chat add-in using the Skype for Business Server
Control Panel, click Persistent Chat and then click Add-in. Select the add-in to be removed, click Edit and then click
Delete.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPersistentChatAddin -Identity "atl-cs-001.litwareinc.com\ITChatAddin"

Example 1 removes the Persistent Chat add-in ITChatAddin found on the pool atl-cs-001.litwareinc.com .
-------------------------- Example 2 --------------------------

Get-CsPersistentChatAddin | Remove-CsPersistentChatAddin
The command shown in Example 2 removes all the Persistent Chat add-ins currently in use in the organization. To
do this, the command first uses the Get-CsPersistentChatAddin cmdlet to return a collection of all the Persistent
Chat add-ins currently in use. This collection is piped to the Remove-CsPersistentChatAddin cmdlet, which then
deletes each add-in in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command; for example,
attempting to remove an add-in that is currently associated with one or more chat rooms.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat add-in to be removed. The Identity is composed of the fully qualified
domain name of the Persistent Chat pool where the add-in is located, a "" character and the add-in name. For
example:
-Identity "atl-gc-001.litwareincom\ITPersistentChatAddin"

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet.

Type: Addin
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPersistentChatAddin cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.AddinObject object. The cmdlet will also accept a string value
representing the Identity of an existing add-in.

Outputs
None. Instead, the Remove-CsPersistentChatAddin cmdlet deletes existing instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.AddinObject object.

Related Links
Get-CsPersistentChatAddin
New -CsPersistentChatAddin
Set-CsPersistentChatAddin
minutes to read • Edit Online

Remove-CsPersistentChatCategory
In ths Article

Removes an existing Persistent Chat category. A Persistent Chat category represents a collection of Persistent Chat
chat rooms and each chat room must be associated with a category. This cmdlet was introduced in Lync Server
2013. Note that categories cannot be removed unless they are empty (that is, all the rooms within that category
must be removed before you can remove the category).

Syntax
Remove-CsPersistentChatCategory [-Identity] <String> [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-CsPersistentChatCategory [-Instance] <Category> [-Confirm] [-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Persistent Chat categories provide a way for administrators to organize and manage, Persistent Chat chat rooms.
Categories provide a way for administrators to group related chat rooms; for example, all chat rooms used by the
finance department can be grouped in the same category. Likewise, categories provide a way for administrators to
manage permissions to these rooms, dictating which users are allowed access to the rooms, which users are denied
access to the rooms and which users are allowed to create new chat rooms within the category.
Note that all chat rooms must belong to a category; you cannot create a chat room without assigning that room to
a category. That means that you must create at least one category before you can add any chat rooms to your
Persistent Chat implementation.
The Remove-CsPersistentChatCategory cmdlet provides a way to remove Persistent Chat categories. Keep in mind
that categories cannot be removed unless they are empty. That means that all the rooms within that category must
be removed before you can remove the category itself.
Skype for Business Server Control Panel: To remove a Persistent Chat category using the Skype for Business
Server Control Panel, click Persistent Chat and then click Category. Select the category to be removed, click Edit
and then click Delete.

Examples
-------------------------- Example 1 --------------------------
Remove-CsPersistentChatCategory -Identity "atl-cs-001.litwareinc.com\helpdesk"

The command shown in Example 1 removes the Persistent Chat category that has the Identity
"atl-cs-001.litwareinc.com\helpdesk" .

-------------------------- Example 2 --------------------------

Get-CsPersistentChatCategory | Remove-CsPersistentChatCategory

In Example 2, all the Persistent Chat categories currently in use in the organization are removed. To do this, the
command first uses the Get-CsPersistentChatCategory cmdlet to retrieve a collection of all the Persistent Chat
categories. This collection is piped to the Remove-CsPersistentChatCategory cmdlet, which then deletes each
category in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat category to be removed. An Identity consists of the PoolFqdn plus the
category Name; for example:
-Identity "atl-cs-001.litwareinc.com\helpdesk"

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet.

Type: Category
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPersistentChatCategory cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.CategoryObject object. The cmdlet will also accept string values
representing the Identity of an existing Persistent Chat category.

Outputs
None. Instead, the Remove-CsPersistentChatCategory cmdlet deletes existing instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.CategoryObject object.

Related Links
Get-CsPersistentChatCategory
New -CsPersistentChatCategory
Set-CsPersistentChatCategory
minutes to read • Edit Online

Remove-CsPersistentChatComplianceConfiguration
In ths Article

Removes an existing collection of Persistent Chat compliance configuration settings. Persistent Chat compliance
enables administrators to maintain an archive of Persistent Chat items and activities including: new messages; new
events (for example, a user entering or existing a chat room); file uploads and downloads and searches run against
the chat history. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsPersistentChatComplianceConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Many organizations (including organizations involved in health care and organizations involved in the financial
industry) are required to maintain archives of all their electronic communications; this includes conversations that
might take place using the Persistent Chat service. Skype for Business Server allows you to create a separate
compliance database that keeps a detailed of archive of everything that happens in your Persistent Chat chat
rooms. Persistent Chat compliance can be enabled or disabled at the site scope or at the service scope (that is,
compliance can be enabled or disabled for a given Persistent Chat pool). In addition, Persistent Chat compliance
can only be managed using the Windows PowerShell command-line interface; there are no options available in the
Skype for Business Server Control Panel for managing Persistent Chat compliance.
Skype for Business Server Control Panel: The functions carried out by the
Remove-CsPersistentChatComplianceConfiguration cmdlet are not available in the Skype for Business Server Control
Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPersistentChatComplianceConfiguration -Identity "site:Redmond"

Example 1 removes the Persistent Chat compliance configuration settings applied to the Redmond site.
-------------------------- Example 2 --------------------------
Get-CsPersistentChatComplianceConfiguration -Filter "site:*" | Remove-CsPersistentChatComplianceConfiguration

In Example 2, all the Persistent Chat compliance configuration settings applied to the site scope are removed. To do
that, the command first uses the Get-CsPersistentChatComplianceConfiguration cmdlet and the Filter parameter to
retrieve all the settings assigned to the site scope; that task is performed by using the filter value "site:*". After the
site-scoped settings have been retrieved, they are then piped to and removed by, the
Remove-CsPersistentChatComplianceConfiguration cmdlet.

-------------------------- Example 3 --------------------------

Get-CsPersistentChatComplianceConfiguration | Where-Object {$_.AddUserDetals -eq $True -and


$_.AddChatRoomDetails -eq $True} | Remove-CsPersistentChatComplianceConfiguration

Example 3 shows how you can remove all the Persistent Chat compliance configuration settings where both the
AddUserDetails and AddChatRoomDetails properties are set to True. To carry out this task, the command first uses
the Get-CsPersistentChatComplianceConfiguration cmdlet to return a collection of all the Persistent Chat compliance
configuration settings. That collection is then piped to the Where-Object cmdlet, which picks out only those settings
where the AddUserDetails property and the AddChatRoomDetails properties are equal to True ($True). This filtered
collection is then piped to the Remove-CsPersistentChatComplianceConfiguration cmdlet, which proceeds to delete
each item in that filtered collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat compliance settings to be removed. To remove a collection of settings
configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To remove a collection configured at the service scope, use syntax like this:
-Identity "service:PersistentChatServer:atl-gc-001.litwareinc.com"
Note that you cannot use wildcards with the Identity parameter.
You can also run the Remove-CsPersistentChatComplianceConfiguration cmdlet against the global settings collection.
In that case, however, the global collection will not be removed. Instead, all the properties within that collection will
be reset to their default values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPersistentChatComplianceConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatComplianceConfiguration object.

Outputs
None. Instead, the Remove-CsPersistentChatComplianceConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatComplianceConfiguration object.

Related Links
Get-CsPersistentChatComplianceConfiguration
New -CsPersistentChatComplianceConfiguration
Set-CsPersistentChatComplianceConfiguration
minutes to read • Edit Online

Remove-CsPersistentChatConfiguration
In ths Article

Removes an existing collection of Persistent Chat configuration settings. Persistent Chat configuration settings are
used to manage the Persistent Chat service. For example, these settings allow you to specify the maximum number
of users who can participate in a chat room. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsPersistentChatConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
The Persistent Chat service is managed, in part, by Persistent Chat configuration settings, which dictate such things
as the number of previously-posted chat messages immediately available when you log on to a chat room (the chat
history) or the maximum size of a file that can be uploaded to (or downloaded from) the service. These settings can
be configured at the global or the site scope, or at the service scope (that is, you can have a custom collection of
settings assigned to an individual Persistent Chat pool).
Skype for Business Server Control Panel: To remove a collection of Persistent Chat configuration settings using the
Skype for Business Server Control Panel, click Persistent Chat and then click Persistent Chat Configuration. Select
the collection to be removed, click Edit and then click Delete.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPersistentChatConfiguration -Identity "site:Redmond"

The command shown in Example 1 deletes the Persistent Chat configuration settings for the Redmond site.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatConfiguration -Filter "site:*" | Remove-CsPersistentChatConfiguration

In Example 2, all the Persistent Chat configuration settings applied to the site scope are removed. To do this, the
command first employs the Get-CsPersistentChatConfiguration cmdlet and the -Filter parameter; the filter value
"site:*" limits the returned data to settings applied at the site scope. These settings are then piped to the
Remove-CsPersistentChatConfiguration cmdlet, which deletes all the settings applied to the site scope.

-------------------------- Example 3 --------------------------

Get-CsPersistentChatConfiguration | Where-Object {$_.DefaultChatHistory -gt 30} | Remove-


CsPersistentChatConfiguration

Example 3 deletes all the Persistent Chat configuration settings where the default chat history is greater than 30. To
carry out this task the command first uses the Get-CsPersistentChatConfiguration cmdlet to return a collection of all
the Persistent Chat configuration settings. This collection is then piped to the Where-Object cmdlet, which picks out
only those settings where the DefaultChatHistory property is greater than (-gt) 30. The filtered collection is then
piped to the Remove-CsPersistentChatConfiguration cmdlet, which deletes each item in the filtered collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat configuration settings to be removed. To remove a collection of settings
configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

To remove a collection configured at the service scope, use syntax like this:
-Identity "service:PersistentChatServer:atl-gc-001.litwareinc.com"

Note that you cannot use wildcards with the Identity parameter.
You can also run the Remove-CsPersistentChatConfiguration against cmdlet the global settings collection. In that
case, however, the global collection will not be removed. Instead, all the properties within that collection will be
reset to their default values.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPersistentChatConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatConfiguration object.

Outputs
None. Instead, the Remove-CsPersistentChatConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatConfiguration object.

Related Links
Get-CsPersistentChatConfiguration
New -CsPersistentChatConfiguration
Set-CsPersistentChatConfiguration
minutes to read • Edit Online

Remove-CsPersistentChatEndpoint
In ths Article

Removes an existing Persistent Chat endpoint. A Persistent Chat endpoint is an Active Directory contact object
provides a friendly URL for a Skype for Business Server Persistent Chat pool. This cmdlet was introduced in Lync
Server 2013.

Syntax
Remove-CsPersistentChatEndpoint [-Identity] <UserIdParameter> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
However, if you have users running legacy clients (such as Microsoft Lync 2010 these users might find the default
Persistent Chat URIs difficult to work with and difficult to use when pointing their legacy client towards the pool.
Because of this, administrators can use the New-CsPersistentChatEndpoint cmdlet to create an additional contact
object for the pool, a contact object that provides a friendlier, easier-to-use URI. These endpoints can later be
removed by using the Remove-CsPersistentChatEndpoint cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsPersistentChatEndpoint cmdlet
are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPersistentChatEndpoint -Identity "sip:pce@litwareinc.com"

The command shown in Example 1 deletes the Persistent Chat endpoint that has the Identity
"sip:pce@litwareinc.com". In this example, the SIP address is used for the Identity
-------------------------- Example 2 --------------------------

Get-CsPersistentChatEndpoint -PersistentChatPoolFqdn "atl-pcpool-001.litwareinc.com" | Remove-


CsPersistentChatEndpoint

Example 2 deletes all the Persistent Chat endpoints configured for the pool atl-pcpool-001.litwareinc.com . To carry
out this task, the command first uses the Get-CsPersistentChatEndpoint cmdlet and the PoolFqdn parameter to
return all the endpoints for the pool atl-pcpool-001.litwareinc.com . The endpoints in that collection are then piped
to and removed by, the Remove-CsPersistentChatEndpoint cmdlet.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatEndpoint | Remove-CsPersistentChatEndpoint

The command shown in Example 3 deletes all the Persistent Chat endpoints configured for use in the organization.
To do this, the command first calls the Get-CsPersistentChatEndpoint cmdlet to return a collection of all the
Persistent Chat endpoints. This collection is then piped to the Remove-CsPersistentChatEndpoint cmdlet, which
deletes each endpoint in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Persistent Chat endpoint to be removed. Endpoint Identities are typically specified using
the endpoint's SIP address or display name; for example:
-Identity "sip:pcEndpoint1@litwareinc.com"

However, you can also use the full Identity of the endpoint; for example:
-Identity "CN={33e5014b-dcba-46b5-9bf7-48f4d5fca69d}, CN=Application Contacts,CN=RTC
Service,CN=Services,CN=Configuration,DC=litwareinc,DC=com"

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPersistentChatEndpoint cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSPersistentChatContact class.

Outputs
None. The Remove-CsPersistentChatEndpoint cmdlet does not return objects or data.

Related Links
Get-CsPersistentChatEndpoint
New -CsPersistentChatEndpoint
minutes to read • Edit Online

Remove-CsPersistentChatMessage
In ths Article

Replaces one or more Persistent Chat messages in the Persistent Chat database with a default message or with an
administrator-provided message. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsPersistentChatMessage -Identity <String> [-Remove] [-CaseSensitive <Boolean>] [-Confirm]
[-EndDate <DateTime>] [-Filter <String>] [-MatchClause <AndOr>] [-StartDate <DateTime>] [-UserUri <String>]
[-WhatIf] [<CommonParameters>]

Remove-CsPersistentChatMessage -Identity <String> -ReplaceMessage <String> [-CaseSensitive <Boolean>]


[-Confirm] [-EndDate <DateTime>] [-Filter <String>] [-MatchClause <AndOr>] [-StartDate <DateTime>]
[-UserUri <String>] [-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Persistent Chat discussions take the form of messages posted in individual chat rooms; chat rooms are discussion
forums based on specific topics. By design, messages posted in a chat room remain there forever; at any time, users
can return to the room and review all the messages that have been previously posted.
However, there might be times when administrators need to remove messages from a chat room; for example,
perhaps a user posted a series of messages with erroneous information regarding the forthcoming company
meeting. The Remove-CsPersisentChatMessage cmdlet enables administrators to remove a single chat message, or to
remove an entire set of chat messages based on criteria such as the user who posted the message or keywords
found in that message.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsPersistentChatMessage cmdlet
are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPersistentChatMessage -Identity "atl-persistentchat-001.litwareinc.com\ITChatRoom" -EndDate "4/1/2012"

The command shown in Example 1 removes all the Persistent Chat messages posted on or before April 1, 2012
from the ITChatRoom chat room on the server atl-persistentchat-001.litwareinc.com.
-------------------------- Example 2 --------------------------

Remove-CsPersistentChatMessage -Identity "atl-persistentchat-001.litwareinc.com\ITChatRoom" -UserUri


"sip:kenmyer@litwareinc.com"

In Example 2, all Persistent Chat messages posted by the user kenmyer@litwareinc.com are removed from the
ITChatRoom chat room on the server atl-persistentchat-001.litwareinc.com.

Parameters
-CaseSensitive
When present, indicates that case sensitivity should be used when searching for messages to be removed. (In other
words, an uppercase "A" will be treated as a different character than a lowercase "a".) By default, searches are not
case sensitive.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EndDate
Enables you to filter for messages that were posted on or before the specified date.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Keywords that can be used to help identify the messages to be deleted. For example, to search for all messages that
include the keyword "Fabrikam" use this syntax:
-Filter "Fabrikam"

To search for multiple keywords, put all the keywords in a single string, separated by using blank spaces:
-Filter "Fabrikam Contoso TailspinToys"
By default, the Remove-CsPersistentChatMessage cmdlet will look for messages using all the specified keywords. To
look for messages using any one of the provided keywords, use the MatchClause parameter and set the parameter
value to "Or".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the chat room containing the message to be deleted. For example:
-Identity "atl-persistentchat-001.litwareinc.com\ITChatRoom"

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MatchClause
Specifies how the Remove-CsPersistentChatMessage cmdlet handles multiple keywords. Allowed values are:
All (A message must include all the specified keywords in order to be a match)
Or (A message containing one or more of the specified keywords will be considered a match)
Exact (Messages must exactly match the specified phrase, including the word order, in order to be a match)
For example, this syntax searches for messages that have the exact phrase "For internal use only) in the message
text:
-Filter "For internal use only" -MatchClause "Exact"

Type: AndOr
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Remove
When present, removes the Persistent Chat message without leaving a replacement message.
You cannot use both the Remove parameter and the ReplaceMessage parameter in the same command.

Type: SwitchParameter
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReplaceMessage
Enables administrators to specify the text of the replacement message. By default, the replacement message reads
"This message was replaced by the Persistent Chat administrator."

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartDate
Enables you to filter for messages that were posted on or after the specified date.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserUri
SIP address of the user who posted the message (or messages) that should be removed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Remove-CsPersistentChatMessage cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Clear-CsPersistentChatRoom
minutes to read • Edit Online

Remove-CsPersistentChatPolicy
In ths Article

Removes an existing Persistent Chat policy. Persistent Chat policies determine whether or not users are allowed
access to Persistent Chat chat rooms. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsPersistentChatPolicy [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [-Tenant <Guid>]
[<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
By default, users are not granted access to the Persistent Chat service; that access can only be granted if the user is
managed by a Persistent Chat policy that allows for the user of the service. When you install Skype for Business
Server, all your users are managed by a global Persistent Chat policy in which the use of Persistent Chat is disabled.
If you want to give all your users access to the service you can simply set the EnablePersistentChat property in this
global policy to True. Alternatively, you can create additional policies at the site or at the per-user scope and thus
provide Persistent Chat access to some users while denying this access to other users.
Skype for Business Server Control Panel: To remove a Persistent Chat policy using the Skype for Business Server
Control Panel, click Persistent Chat and then click Persistent Chat Policy. Select the policy to be removed, click Edit
and then click Delete.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPersistentChatPolicy -Identity "RedmondPersistentChatPolicy"

The command shown in Example 1 removes the per-user Persistent Chat policy with the Identity
RedmondPersistentChatPolicy.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatPolicy -Filter "site:*" | Remove-CsPersistentChatPolicy

In Example 2, all the Persistent Chat policies applied to the site scope are deleted. To do this, the command first uses
the Get-CsPersistentChatPolicy cmdlet and the Filter parameter to return all the Persistent Chat policies configured
at the site scope. (This is done by using the filter value "site:*".) These policies are then piped to and deleted by, the
Remove-CsPersistentChatPolicy cmdlet.

-------------------------- Example 3 --------------------------

Get-CsPersistentChatPolicy | Where-Object {$_.EnablePersistentChat -eq $True} | Remove-CsPersistentChatPolicy

In Example 3, all the Persistent Chat policies in which Persistent Chat is enabled are deleted. To carry out this task,
the command first calls the Get-CsPersistentChatPolicy cmdlet without any parameters; this returns a collection of
all the Persistent Chat policies configured for use in the organization. This collection is then piped to the
Where-Object cmdlet, which picks out only those policies where the EnablePersistentChat property is equal to true
($True). That collection is then piped to the Remove-CsPersistentChatPolicy cmdlet, which deletes each policy in the
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present, causes the Remove-CsPersistentChatPolicy cmdlet to delete the per-user policy even if the policy is
currently assigned to at least one user. If not present, you will be asked to confirm the deletion request before a
policy still in use will be removed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identity of the Persistent Chat policy to be deleted. To remove a site-scoped policy, use syntax similar to this:
-Identity site:Redmond

To delete per-user policy, use syntax similar to this:


-Identity RedmondPolicy

The Remove-CsPersistentChatPolicy cmdlet can also be run against the global Persistent Chat policy. In that case,
however, the global policy will not actually be deleted. Instead, all the properties in the global policy will be reset to
their default values.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the Persistent Chat
policy is being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPersistentChatPolicy cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.PersistentChat.PersistentChatPolicy object.

Outputs
None. Instead, the Remove-CsPersistentChatPolicy cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.PersistentChat.PersistentChatPolicy object.

Related Links
Get-CsPersistentChatPolicy
Grant-CsPersistentChatPolicy
New -CsPersistentChatPolicy
Set-CsPersistentChatPolicy
minutes to read • Edit Online

Remove-CsPersistentChatRoom
In ths Article

Removes one or more Persistent Chat chat rooms. A chat room is a discussion forum that typically revolves around
a specific topic. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsPersistentChatRoom [-Identity] <String> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Remove-CsPersistentChatRoom [-Instance] <ChatRoom> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The Persistent Chat service (which replaces the Group Chat service used in Microsoft Lync Server 2010) provides
organizations with messaging and collaboration capabilities similar to those found in Internet discussion forums:
users can exchange messages in real-time, yet can also revisit and restart those conversations at any time.
Conversations can be based around specific topics and these conversations can be made available to everyone or
to only a selected set of users. Likewise, individual chat rooms can be configured so that anyone can post a
message or configured so that only designated presenters can post messages.
Persistent Chat discussions take the form of messages posted in individual chat rooms; chat rooms are discussion
forums based on specific topics. By design, messages posted in a chat room remain there forever; at any time, users
can return to the room and review all the messages that have been previously posted.
The Remove-CsPersistentChatRoom cmdlet provides a way for administrators to remove one or more of the
Persistent Chat chat rooms that have been configured for use in the organization.
Skype for Business Server Control Panel: To delete an existing Persistent Chat chat room using the Skype for
Business Server Control Panel, click Persistent Chat, click Room and then select the room to be deleted. To delete
the room, click Edit and then click Delete.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPersistentChatRoom -Identity "atl-gc-001.litwareinc.com\RedmondChatRoom"

The command shown in Example 1 removes the Persistent Chat chat room RedmondChatRoom.
-------------------------- Example 2 --------------------------

Get-CsPersistentChatRoom | Remove-CsPersistentChatRoom
In Example 2, all the Persistent Chat chat rooms in use in the organization are removed. To do this, the command
first calls the Get-CsPersistentChatRoom cmdlet without any parameters in order to return a collection of all the
available chat rooms. This collection is then piped to the Remove-CsPersistentChatRoom cmdlet, which deletes each
room in the collection.
-------------------------- Example 3 --------------------------

Get-CsPersistentChatRoom -Privacy "Closed" | Remove-CsPersistentChatRoom

Example 3 removes all the "closed" chat rooms. (A closed chat room means that any user can locate the chat room
by doing a directory search, but only members can participate in chat room activities.) To accomplish this task, the
command first uses the Get-CsPersistentChatRoom cmdlet and the Privacy parameter to return a collection of all the
closed chat rooms. This collection is then piped to the Remove-CsPersistentChatConfiguration cmdlet, which deletes
each room in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identifier for the Persistent Chat chat room being removed. The Identity for a chat room consists of the
Persistent Chat pool where the room has been configured plus the name of the room; for example:
-Identity "atl-gc-001.litwareinc.com\RedmondChatRoom"

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.
Type: ChatRoom
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPersistentChatRooms cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.ChatRoomObject object.

Outputs
None. Instead, the Remove-CsPersistentChatRoom cmdlet deletes existing instances of the
Microsoft.Rtc.Management.PersistentChat.Cmdlets.ChatRoomObject object.

Related Links
Clear-CsPersistentChatRoom
Get-CsPersistentChatRoom
New -CsPersistentChatRoom
Set-CsPersistentChatRoom
minutes to read • Edit Online

Remove-CsPinPolicy
In ths Article

Removes the specified personal identification number (PIN ) policy. PIN authentication and PIN policies enable
users to access Skype for Business Server by providing a PIN instead of a user name and password. This cmdlet
was introduced in Lync Server 2010.

Syntax
Remove-CsPinPolicy [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>]
[<CommonParameters>]

Description
Skype for Business Server enables users to connect to the system or to join public switched telephone network
(PSTN ) conferences via telephone. Typically, logging on to the system or joining a conference requires the user to
enter a user name or password; unfortunately, entering a user name and password can be a problem if you are
using a phone that does not have an alphanumeric keypad. Because of that, Skype for Business Server enables you
to supply users with numeric-only PINs; when prompted, users can then log on to the system or join a conference
by entering the PIN instead of a user name and password.
Skype for Business Server uses PIN policies to manage PIN authentication properties; for example, you can specify
the minimum length for a PIN and also determine whether you will allow PINs that use "common patterns" such as
consecutive digits (for example, a PIN like 123456). In addition to the global PIN policy created for you when you
install Skype for Business Server you can create custom PIN policies applied to the site or the per-user scope.
The Remove-CsPinPolicy cmdlet enables you to remove PIN policies that have been configured at either the site
scope or the per-user scope. When you remove a site-scoped policy or a per-user policy, those policies will be
deleted and no longer be available for use. In addition, any users who were assigned those policies will
automatically inherit the next policy in the policy hierarchy (global, site, service, per-user). For example, if you
remove a site policy then all the users who were previously affected by that policy will have their PIN settings
managed by the global policy.
You can also run the Remove-CsPinPolicy cmdlet against the global policy. In that case, however, the policy will not
be removed: that's because you cannot delete the global policy. Instead, all the properties of the global policy will be
reset to their default values. For example, suppose you have configured the global policy to use a minimum PIN
length of 11 digits. If you remove the global policy, the minimum PIN length will be reset to the default length of 5
digits.

Examples
-------------------------- Example 1 ------------------------

Remove-CsPinPolicy -Identity RedmondUsersPinPolicy


Example 1 removes the per-user PIN policy with the Identity RedmondUsersPinPolicy.
-------------------------- Example 2 ------------------------

Get-CsPinPolicy -Filter "site:*" | Remove-CsPinPolicy

The command shown in Example 2 removes all the PIN policies that have been configured at the site scope. To do
this, the Get-CsPinPolicy cmdlet is used, along with the Filter parameter, to return a collection of all the policies that
have an Identity that begins with the characters "site:". This collection is then piped to the Remove-CsPinPolicy
cmdlet, which deletes each policy in the collection.
-------------------------- Example 3 ------------------------

Get-CsPinPolicy | Where-Object {$_.AllowCommonPatterns -eq $True} | Remove-CsPinPolicy

In Example 3, the Get-CsPinPolicy cmdlet, the Where-Object cmdlet and the Remove-CsPinPolicy cmdlet are used
to delete all the PIN policies where the AllowCommonPatterns property is True. To do this, the Get-CsPinPolicy
cmdlet is first used to return a collection of all the PIN policies configured for use in the organization. This
collection is then piped to the Where-Object cmdlet, which selects only those policies where AllowCommonPatterns
is equal to True. Finally, that filtered collection is piped to the Remove-CsPinPolicy cmdlet, which deletes each policy
in the collection.
-------------------------- Example 4 ------------------------

Get-CsPinPolicy | Remove-CsPinPolicy

The command shown in Example 4 deletes all the PIN policies configured at the per-user and site scopes; this is
done by using the Get-CsPinPolicy cmdlet to return a collection of all the PIN policies configured for use in the
organization and then piping that entire collection to the Remove-CsPinPolicy cmdlet. Note that the global policy
will also be included in this collection. However, the global policy will not be deleted. Instead, all the properties in
the global policy will be reset to their default values.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier assigned to the policy when it was created. PIN policies can be assigned at the global, site, or per-
user scope. To refer to the global instance, use this syntax:
-Identity global

To refer to a policy at the site scope, use this syntax:


-Identity site:Redmond

To refer to a policy at the per-user scope, use syntax similar to this:


-Identity RedmondPINPolicy

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the PIN policy is
being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.UserPin.UserPolicy object. The Remove-CsPinPolicy cmdlet
accepts pipelined input of the PIN policy object.

Outputs
The Remove-CsPinPolicy cmdlet does not return a value or object. Instead, the cmdlet removes one or more
instances of the Microsoft.Rtc.Management.WritableConfig.Policy.UserPin.UserPolicy object.

Related Links
Get-CsPinPolicy
Grant-CsPinPolicy
New -CsPinPolicy
Set-CsPinPolicy
minutes to read • Edit Online

Remove-CsPlatformServiceSettings
In ths Article

Reset Skype for Business on Mac global settings in your organization. This cmdlet was introduced in Skype for
Business Server 2015 Cumulative Update 6 (December 2017).

Syntax
Remove-CsPlatformServiceSettings [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server 2015 Cumulative Update 6 introduces new features for Skype for Business on Mac
users like support for E -911 calls, send files in peer-to-peer chats, block external access by policy and more.
The Remove-CsPlatformServiceSettings cmdlet reset the global configuration in your organization.

Examples
-------------------------- EXAMPLE 1 --------------------------

PS C:\> Remove-CsPlatformServiceSettings -Identity Global

This example reset the global configuration to default value. Global configuration cannot be removed.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before testing.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the Platform Service Settings to be removed.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object

Related Links
New -CsPlatformServiceSettings
Get-CsPlatformServiceSettings
Set-CsPlatformServiceSettings
minutes to read • Edit Online

Remove-CsPresencePolicy
In ths Article

Removes the specified presence policy. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsPresencePolicy [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>]
[<CommonParameters>]

Description
Presence information (which, among other things, lets you know whether a contact is available to take part in an
instant messaging conversation) is invaluable. At the same time, however, there is a cost associated with presence
information: the more presence subscriptions you have the more network bandwidth must be devoted to updating
presence information. If network bandwidth is a concern, you might want to limit the number of presence
subscriptions any one user can have.
The CsPresencePolicy cmdlets enable you to manage two important aspects of presence subscriptions: prompted
subscribers and category subscriptions. When you are added to another person's Skype for Business Contacts list,
the default behavior is for you to receive a pop-up notification informing you that you have been added to that list.
Until you dismiss that pop-up, each notification counts as a prompted subscriber. The presence policy's
MaxPromptedSubscriber property enables you to specify the maximum number of unresolved notification dialogs
a user can have. (If a user reaches the maximum amount, then he or she will not receive new contact notifications,
at least not until some of those dialogs have been dismissed.)
Category subscriptions represent a request for a specific category of information; for example, an application that
requests calendar data. The MaxCategorySubscription property enables administrators to place a limit on the
number of category subscriptions a user can have.
Prior to the release of Lync Server, prompted subscriber and category subscriptions were managed on a global
basis. With the CsPresencePolicy cmdlets you can now manage these presence subscriptions at the global scope,
the site scope, or the per-user scope. This enables you to control bandwidth use while, at the same time, ensuring
that users have access to the presence information they need to do their jobs.
Policies created at the site scope or the per-user scope can be removed at any time by running the
Remove-CsPresencePolicy cmdlet. This cmdlet can also be run against the global policy; however, if you do this the
global policy will not actually be removed. (Skype for Business Server does not allow you to remove global
policies.) Instead, the two properties in the global policy -- MaxPromptedSubscriber and MaxCategorySubscription
-- will be reset to their default values.

Examples
-------------------------- Example 1 ------------------------
Remove-CsPresencePolicy -Identity "RedmondPresencePolicy"

Example 1 deletes the per-user presence policy with the Identity RedmondPresencePolicy.
-------------------------- Example 2 ------------------------

Get-CsPresencePolicy -Filter "tag:*" | Remove-CsPresencePolicy

The command shown in Example 2 removes all the presence policies that have been configured at the per-user
scope. (These policies have an Identity that begins with the prefix "tag:") To carry out this task, the command first
uses the Get-CsPresencePolicy cmdlet and the Filter parameter to return all the per-user presence policies; the filter
value "tag:*" limits the returned data to policies where the Identity begins with the string value "tag:". The filtered
collection is then piped to the Remove-CsPresencePolicy cmdlet, which deletes each policy in the collection.
-------------------------- Example 3 ------------------------

Get-CsPresencePolicy | Where-Object {$_.MaxPromptedSubscriber -gt 500} | Remove-CsPresencePolicy

Example 3 deletes all the presence policies that allow more than 500 prompted subscribers. To do this, the
command first calls the Get-CsPresencePolicy cmdlet without any parameters in order to return a collection of all
the presence policies configured for use in the organization. This collection is then piped to the Where-Object
cmdlet, which picks out only those policies where the MaxPromptedSubscriber property is greater than 500. In
turn, that filtered collection is then piped to the Remove-CsPresencePolicy cmdlet, which deletes all the presence
policies that allow more than 500 prompted subscribers.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If present, causes the Remove-CsPresencePolicy cmdlet to delete the per-user policy even if the policy is currently
assigned to at least one user. If not present, you will be asked to confirm the deletion request before a policy still in
use will be removed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the presence policy to be removed. To remove a policy configured at the site scope, use syntax
similar to this: -Identity "site:Redmond" . To remove a policy configured at the per-user scope, use syntax similar to
this:
-Identity "RedmondPresencePolicy"

The Remove-CsPresencePolicy cmdlet can also be run against the global policy; to do that, use this syntax:
-Identity global . Note, however, that the global policy will not be removed. Instead, the properties within that
policy will be reset to their default values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the presence policy is
being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Presence.PresencePolicy object. The Remove-CsPresencePolicy
cmdlet accepts pipelined input of the presence policy object.

Outputs
None. Instead, the Remove-CsPresencePolicy cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Presence.PresencePolicy object.

Related Links
Get-CsPresencePolicy
Grant-CsPresencePolicy
New -CsPresencePolicy
Set-CsPresencePolicy
minutes to read • Edit Online

Remove-CsPresenceProvider
In ths Article

Removes a presence provider previously configured for use in the organization. Presence providers represent the
PresenceProviders property of a collection of user services configuration settings. This cmdlet was introduced in
Lync Server 2013.

Syntax
Remove-CsPresenceProvider [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The CsPresenceProvider cmdlets are used to manage the PresenceProviders property found in the User Services
configuration settings. Among other things, these settings are used to maintain presence information, including a
collection of authorized presence providers. That collection is stored in the PresenceProviders property.
The Remove-CsPresenceProvider cmdlet enables you to remove a presence provider from the PresenceProviders
property of one or more collections of User Services configuration settings.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsPresenceProvider cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsPresenceProvider -Identity "global/fabrikam.com"

The command shown in Example 1 removes the presence provider with the Identity "global/fabrikam.com".
-------------------------- Example 2 --------------------------

Get-CsPresenceProvider | Remove-CsPresenceProvider

In Example 2, all the presence providers configured for use in the organization are removed. To do this, the
command first calls the Get-CsPresenceProvider cmdlet without any parameters; that returns a collection of all the
configured presence providers. That collection is then piped to the Remove-CsPresenceProvider cmdlet, which deletes
each item (that is, each provider) in the collection.
-------------------------- Example 3 --------------------------

Get-CsPresenceProvider | Where-Object {$_.Fqdn -match "fabrikam.com"} | Remove-CsPresenceProvider

Example 3 shows how you can delete all the presence providers that have an Fqdn that includes the string value
"fabrikam.com". To carry out this task, the command first uses the Get-CsPresenceProvider cmdlet to return a
collection of all the available presence providers. That collection is then piped to the Where-Object cmdlet, which
picks out only those providers where the Fqdn property includes (-match) the string value "fabrikam.com". In turn,
that filtered collection is then piped to the Remove-CsPresenceProvider cmdlet, which deletes each provider in the
filtered collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the presence provider to be removed. To remove a single provider, use the actual Identity of the
provider, which includes both the scope and the provider Fqdn:
-Identity "global/fabrikam.com"

To remove all the presence providers configured at a particular scope, simply use the scope as the Identity. This
syntax removes all the providers configured at the global scope:
-Identity "global"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsPresenceProvider cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider#Decorated object.

Outputs
None. Instead, the Remove-CsPresenceProvider cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider#Decorated object.

Related Links
Get-CsPresenceProvider
Get-CsUserServicesConfiguration
New -CsPresenceProvider
Set-CsPresenceProvider
minutes to read • Edit Online

Remove-CsPrivacyConfiguration
In ths Article

Removes an existing collection of privacy configuration settings. Privacy configuration settings help determine how
much information users make available to other users. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsPrivacyConfiguration [-Identity] <XdsIdentity> [-Tenant <Guid>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Skype for Business Server gives users the opportunity to share a wealth of presence information with other people:
they can publish a photograph of themselves; they can provide detailed location information; they can have
presence information automatically made available to everyone in the organization (as opposed to having this
information available only to people on their Contacts list).
Some users will welcome the opportunity to make this information available to their colleagues; other users might
be more reluctant to share this data. (For example, many people might be hesitant about having their photo
included in their presence data.) As a general rule, users have control over what information they will (or will not)
share; for example, users can select or clear a check box in order to control whether or not their location
information is shared with others. In addition, the privacy configuration cmdlets enable administrators to manage
privacy settings for their users. In some cases, administrators can enable or disable settings. For example, if the
property AutoInitiateContacts is set to True, then team members will automatically be added to each user's
Contacts list; if set to False, team members will not be automatically be added to each user's Contacts list.
In other cases, administrators can configure the default values in Skype for Business Server while still giving users
the right to change these values. For example, by default location data is published for users, although users do
have the right to stop location publication. By setting the PublishLocationDataByDefault property to False,
administrators can change this behavior: in that case, location data will not be published by default, although users
will still have the right to publish this data if they choose.
Privacy configuration settings can be applied at the global scope, the site scope, and at the service scope (albeit only
for the User Server service). The Remove-CsPrivacyConfiguration cmdlet provides a way for you to delete settings
that have been configured at either the site or service scope; for example, if you run the cmdlet against settings
configured at the site scope, those settings will be deleted and users in that site will have their privacy settings
governed by the global collection. The Remove-CsPrivacyConfiguration cmdlet can also be run against the global
collection; however, the global collection will not be deleted. Instead, all that properties in that collection will be
reset to their default values. For example, suppose you previously changed the EnablePrivacyMode property to
True. If you now "delete" the global collection EnablePrivacyMode will revert to its default value of False.

Examples
-------------------------- Example 1 ------------------------
Remove-CsPrivacyConfiguration -Identity site:Redmond

Example 1 returns the privacy configuration settings assigned to the Redmond site. When these settings are
deleted, users in the Redmond site will automatically inherit the global privacy configuration settings.
-------------------------- Example 2 ------------------------

Get-CsPrivacyConfiguration -Filter "site:*" | Remove-CsPrivacyConfiguration

In Example 2, all the privacy configuration settings assigned at the site scope are deleted, To do this, the command
first calls the Get-CsPrivacyConfiguration cmdlet along with the Filter parameter; the filter value "site:*" ensures
that only those settings that have an Identity that begins with the characters "site" are returned. The filtered
collection is then piped to the Remove-CsPrivacyConfiguration cmdlet, which removes each item in the collection.
-------------------------- Example 3 ------------------------

Get-CsPrivacyConfiguration | Where-Object {$_.EnablePrivacyMode -eq $False} | Remove-CsPrivacyConfiguration

The command shown in Example 3 deletes all the privacy configuration settings where privacy mode has been
disabled. To carry out this task, the command first calls the Get-CsPrivacyConfiguration cmdlet without any
parameters; that returns a collection of all the privacy configuration settings in use in the organization. This
collection is then piped to the Where-Object cmdlet, which selects only those settings where the
EnablePrivacyMode property is equal to False. This filtered collection is piped to the Remove-CsPrivacyConfiguration
cmdlet, which deletes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the privacy configuration settings to be removed. To remove settings configured at the site
scope, use syntax similar to this:
-Identity site:Redmond

To remove settings at the service level, use syntax like this:


-Identity service:UserServer:atl-cs-001.litwareinc.com

The Remove-CsPrivacyConfiguration cmdlet can also be run against the global collection of settings. In that case,
however, the global settings will not be deleted. Instead, all the properties in that collection will be reset to their
default values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for which privacy configuration
settings being deleted. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration object. The
Remove-CsPrivacyConfiguration cmdlet accepts pipelined input of the privacy configuration object.

Outputs
None. Instead, the Remove-CsPrivacyConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration object.
Related Links
Get-CsPrivacyConfiguration
New -CsPrivacyConfiguration
Set-CsPrivacyConfiguration
minutes to read • Edit Online

Remove-CsProxyConfiguration
In ths Article

Removes an existing collection of proxy server configuration settings. This cmdlet was introduced in Lync Server
2010.

Syntax
Remove-CsProxyConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server enables you to manage your proxy servers through proxy server configuration settings.
These settings, which can be applied at both the global scope and the service scope (albeit for only the Edge Server
and Registrar services) enable you to control such things as the authentication protocols that can be used by client
endpoints and whether or not compression will be used on incoming and outgoing proxy server connections.
When you install Skype for Business Server, a global collection of proxy server configuration settings is
automatically created for you. As noted, you can also create additional collections at the service scope.
Any new proxy server settings you create can later be removed by using the Remove-CsProxyConfiguration cmdlet.
You can also run the Remove-CsProxyConfiguration cmdlet against the global collection. In that case, however, the
global settings will not be removed; that's because Skype for Business Server does not allow you to remove global
settings. Instead, all of the properties within the global collection will be reset to their default values. For example,
by default proxy server settings allow clients to use the Kerberos protocol for authentication. You can change the
global settings to disable the use of Kerberos. However, if you run the Remove-CsProxyConfiguration cmdlet against
the global collection, the property in question (UseKerberosForClientToProxyAuth) will be reset to its default value
and Kerberos will again be enabled for use as an authentication protocol.

Examples
-------------------------- Examples 1 --------------------------

Remove-CsProxyConfiguration -Identity service:EdgeServer:atl-edge-011.litwareinc.com

The command shown in Example 1 deletes the proxy configuration settings that have the Identity
service:EdgeServer:atl-edge-litwareinc.com.
-------------------------- Examples 2 --------------------------

Get-CsProxyConfiguration -Filter "service:*" | Remove-CsProxyConfiguration

In Example 2, all of the proxy configuration settings applied at the service scope are deleted. To accomplish this
task, the command first calls the Get-CsProxyConfiguration cmdlet along with the Filter parameter. The filter value
"service:*" ensures that only proxy settings that have an Identity that begins with the string value "service:" will be
returned. That filtered collection is then piped to the Remove-CsProxyConfiguration cmdlet, which deletes each item
in the collection.
-------------------------- Examples 3 --------------------------

Get-CsProxyConfiguration | Where-Object {$_.TreatAllClientsAsRemote -eq $True} | Remove-CsProxyConfiguration

Example 3 deletes any proxy configuration settings that treat all clients as remote clients. To do this, the
Get-CsProxyConfiguration cmdlet is first called without any parameters in order to return a collection of all the
proxy server configuration settings currently in use. This collection is then piped to the Where-Object cmdlet, which
selects only those settings where the TreatAllClientsAsRemote property is equal to True. This subset of proxy
configuration settings is then piped to the Remove-CsProxyConfiguration cmdlet, which removes all the settings in
the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the proxy server configuration settings to be removed; for example:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

The Remove-CsProxyConfiguration cmdlet can also be run against the global settings. In that case, however, the
settings will not be removed. Instead, the properties within that global collection will all be reset to their default
values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.ProxySettings object. The
Remove-CsProxyConfiguration cmdlet accepts pipelined instances of the proxy settings object.

Outputs
None. Instead, the Remove-CsProxyConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.ProxySettings object.

Related Links
Get-CsProxyConfiguration
New -CsProxyConfiguration
Set-CsProxyConfiguration
minutes to read • Edit Online

Remove-CsPublicProvider
In ths Article

Removes a public provider configured for use in your organization. A public provider is an organization that
provides instant messaging (IM ), presence and related services to the general public. This cmdlet was introduced in
Lync Server 2010.

Syntax
Remove-CsPublicProvider [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When a federation has been established, users in the two organizations can send each
other instant messages, subscribe for presence notifications and otherwise communicate with one another using
SIP applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1)
direct federation between your organization and another; 2) federation between your organization and a public
provider and 3) federation between your organization and a third-party hosting provider.
A public provider is an organization which provides SIP communication services for the general public. When you
establish a federation relationship with a public provider, you effectively establish federation with any user who has
an account hosted by that provider. For example, if you federate with Skype your users will be able to exchange
instant messages and presence information with anyone who has a Skype instant messaging account.
In order to federate with a public provider you need to create and enable a new public provider. (In addition, the
public provider will need to create a federation relationship with you.) If you decide later on to terminate this
relationship, you can use the Remove-CsPublicProvider cmdlet to delete the public provider. When you delete a
public provider, the provider is removed from your list of federated partners; at that point, the only way to re-
establish the relationship is to re-create the provider. If you want to temporarily suspend a relationship, use the
Disable-CsPublicProvider cmdlet instead. When a public provider is disabled the provider is not deleted from the
list of federated partners; instead, the provider is simply marked as disabled and communication between your
organization and that provider is suspended. To re-establish the relationship you can use the
Enable-CsPublicProvider cmdlet to re-enable the provider.

Examples
-------------------------- Example 1 ------------------------

Remove-CsPublicProvider -Identity "Skype"

Example 1 deletes the public provider with the Identity Skype. After this command has completed, Skype will no
longer appear in the list of configured public providers; at that point, the only way to re-establish federation with
Skype is to re-create the provider.
-------------------------- Example 2 ------------------------

Get-CsPublicProvider | Remove-CsPublicProvider

Example 2 deletes all the public providers configured for use in the organization. To do this, the command first uses
the Get-CsPublicProvider cmdlet to return a collection of all the public providers currently configured for use. This
collection is then piped to the Remove-CsPublicProvider cmdlet, which, in turn, deletes each provider in the
collection.
-------------------------- Example 3 ------------------------

Get-CsPublicProvider | Where-Object {$_.Enabled -eq $False} | Remove-CsPublicProvider

In Example 3, all the public providers that are currently disabled are removed from the set of configured public
providers. To carry out this task, the command first uses the Get-CsPublicProvider cmdlet to return a collection of
all the public providers currently configured for use. This collection is piped to the Where-Object cmdlet, which
selects only those providers where the Enabled property is equal to False. That filtered collection is then piped to
the Remove-CsPublicProvider cmdlet, which deletes all the items in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the public provider to be removed. The Identity typically the name of the website providing the
services.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider object. The
Remove-CsPublicProvider cmdlet accepts pipelined instances of the public provider object.

Outputs
None. Instead, the cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider object.

Related Links
Disable-CsPublicProvider
Enable-CsPublicProvider
Get-CsPublicProvider
New -CsPublicProvider
Set-CsPublicProvider
minutes to read • Edit Online

Remove-CsPushNotificationConfiguration
In ths Article

Deletes an existing collection of push notification settings. The push notification service (Apple Push Notification
Service and Microsoft Push Notification Service) provides a way to send notifications about events such as new
instant messages or new voice mail to mobile devices such as iPhones and Windows Phones, even if the Skype for
Business application on those devices is currently suspended or running in the background. This cmdlet was
introduced in the cumulative update for Lync Server 2010: November 2011.

Syntax
Remove-CsPushNotificationConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-Tenant <Guid>] [-WhatIf]
[<CommonParameters>]

Description
The Apple Push Notification Service and the Microsoft Push Notification Service enable users running Skype for
Business on their Apple iPhone or Windows Phone to receive notifications about Skype for Business Server events
even when Skype for Business is suspended or running in the background. For example, users can receive notice
for events such as these:
Invitations to a new instant messaging session or conference
New instant messages
New voice mail
Without the push notification service users would receive these notices only when Skype for Business was in the
foreground and serving as the active application.
Administrators have the ability to enable or disable push notifications for iPhone users and/or Windows Phone
users. (By default, push notifications are disabled for both iPhone users and Windows Phone users.) Administrators
can enable or disable push notifications at the global scope by using the Set-CsPushNotificationConfiguration
cmdlet. They can also create custom push notification settings at the site scope by using the
New-CsPushNotificationConfiguration cmdlet.

These custom settings can later be deleted by using the Remove-CsPushNotificationConfiguration cmdlet. If you
delete settings configured at the site scope, then users in that site will automatically be managed by the global push
notification settings.
Note that the Remove-CsPushNotificationConfiguration cmdlet can also be run against the global settings. If you do
that, however, the global settings will not be removed; instead, the properties in the global settings will all be reset
to their default values. In this case, that means that push notifications will be disabled from both the Apple Push
Notification Service and the Microsoft Push Notification Service.

Examples
-------------------------- Example 1 --------------------------
Remove-CsPushNotificationConfiguration -Identity "site:Redmond"

The command shown in Example 1 deletes the collection of push notification settings assigned to the Redmond
site.
-------------------------- Example 2 --------------------------

Get-CsPushNotificationConfiguration -Filter "site:*" | Remove-CsPushNotificationConfiguration

Example 2 deletes all the push notification settings configured at the site scope. To perform this task, the cmdlet
first uses the Get-CsPushNotificationConfiguration cmdlet and the Filter parameter to return a collection of all the
settings configured at the site scope; the filter value "site:*" limits the returned items to settings that have an Identity
that begins with the string value "site:". The site-scoped settings are then piped to and deleted by, the
Remove-CsPushNotificationConfiguration cmdlet.

-------------------------- Example 3 --------------------------

Get-CsPushNotificationConfiguration | Where-Object {$_.EnableMicrosoftPushNotificationService -eq $False} |


Remove-CsPushNotificationConfiguration

Example 3 shows you how can remove all the push notification configuration settings where push notifications
from the Microsoft Push Notification Service have been disabled. To do this, the command first uses the
Get-CsPushNotificationConfiguration cmdlet to return a collection of all the push notification settings currently in
use. That collection is then piped to the Where-Object cmdlet, which selects only those settings where the
EnableMicrosoftPushNotificationService property is equal to (-eq) False. This filtered collection is then piped to the
Remove-CsPushNotificationConfiguration cmdlet which, in turn, deletes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of push notification configuration settings to be removed. To remove the global
collection, use the following syntax:
-Identity global

Note that you cannot actually remove the global settings; instead, you can only reset the properties to their default
values.
To remove a site collection, use syntax similar to this:
-Identity site:Redmond

You cannot use wildcards when specifying a policy Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the push notification
configuration settings being deleted. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WriteableConfig.Settings.PushNotificationConfiguration.PushNotificationConfiguration.
The Remove-CsPushNotificationConfiguration cmdlet accepts pipelined instances of the
PushNotificationConfiguration object.

Outputs
None. Instead, the Remove-CsPushNotificationConfiguration cmdlet deletes instances of the
Microsoft.Rtc.Management.WriteableConfig.Settings.PushNotificationConfiguration.PushNotificationConfiguration
object.

Related Links
Set-CsPushNotificationConfiguration
New -CsPushNotificationConfiguration
Get-CsPushNotificationConfiguration
minutes to read • Edit Online

Remove-CsQoEConfiguration
In ths Article

Removes a collection of QoE (Quality of Experience) settings. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsQoEConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
QoE metrics track the quality of audio and video calls made in your organization, including such things as the
number of network packets lost, background noise and the amount of "jitter" (differences in packet delay). These
metrics are stored in a database apart from other data (such as call detail records), which allows you to enable and
disable QoE independent of other data recording. Use this cmdlet to remove settings that configure QoE at the site
level. Calling this cmdlet on the global QoE configuration will reset all properties to the defaults.

Examples
-------------------------- Example 1 --------------------------

Remove-CsQoEConfiguration -Identity site:Redmond

Example 1 uses the Remove-CsQoEConfiguration cmdlet to remove the QoE settings assigned to the site Redmond.
Using the Identity parameter ensures that only the settings assigned to the specified site will be removed.
-------------------------- Example 2 --------------------------

Get-CsQoEConfiguration -Filter site:* | Remove-CsQoEConfiguration

The command shown in Example 2 removes all the QoE settings that have been assigned at the site scope. To do
this, the command first uses the Get-CsQoEConfiguration cmdlet and the Filter parameter to retrieve the appropriate
QoE settings; the wildcard string "site:*" ensures that only those settings that have an identity beginning with the
string value site: are returned. The filtered collection is then passed to the Remove-CsQoEConfiguration cmdlet, which
deletes all the items in the collection.
-------------------------- Example 3 --------------------------

Get-CsQoEConfiguration | Where-Object {$_.KeepQoEDataForDays -lt 30} | Remove-CsQoEConfiguration

In Example 3, any QoE settings where the KeepQoEDataForDays property is less than 30 are deleted. To carry out
this task, the command calls the Get-CsQoEConfiguration cmdlet without any parameters in order to return a
collection of all the QoE settings currently in use in the organization. This collection is then piped to the
Where-Object cmdlet, which picks out only those settings where the KeepQoEDataForDays property is less than (-
lt) 30 days. In turn, the filtered collection is piped to the Remove-CsQoEConfiguration cmdlet, which deletes each item
in that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the settings you want to remove. Possible values are global and site:<site name>, where
<site name> is the name of the site in your Skype for Business Server deployment with the settings to be removed.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.QoE.QoESettings object. Accepts pipelined input of QoE
configuration objects.

Outputs
This cmdlet does not return a value or object. Instead, it removes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.QoE.QoESettings object.

Related Links
New -CsQoEConfiguration
Set-CsQoEConfiguration
Get-CsQoEConfiguration
minutes to read • Edit Online

Remove-CsRegistrarConfiguration
In ths Article

Removes an existing collection of Registrar configuration settings. Registrars are used to authenticate logon
requests and to maintain information about user status and availability. This cmdlet was introduced in Lync Server
2010.

Syntax
Remove-CsRegistrarConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The Registrar is perhaps the most important component in Skype for Business Server; after all, without a Registrar,
users would not be able to log on to the system and Skype for Business Server would not be able to keep track of
users and their current status. When a user logs on to Skype for Business Server, the endpoint the user is logging
on from sends a REGISTER request to the Registrar; in turn, the server responds by challenging the client device
for authentication credentials. If the client passes the challenge (that is, if the client presents a valid set of
credentials), then the user is authenticated and endpoint information such as IP address, port and user name is
logged in the registration database. When a user logs off, this information is then removed from the database. In
between log on and log off, the Registrar keeps status information up-to-date and helps to route messages to and
from the user.
Registrar configuration settings are used to help manage endpoints and endpoint subscriptions; these settings can
be applied at the global, site, or service scope. (Service scoped-settings can only be used with the Registrar service.)
The Remove-CsRegistrarConfiguration cmdlet enables you to remove Registrar configuration settings that have
been applied at the site or service scope. Note that this does not delete or uninstall any Registrars; it simply
removes the configuration settings that govern those Registrars. If these settings do not exist at either the site or
the service scope, then a Registrar will be managed using the global settings.
The Remove-CsRegistrarConfiguration cmdlet can also be run against the global Registrar configuration settings. In
that case, however, the settings will not be removed; that's because the global settings cannot be deleted. Instead, all
the properties in that global collection will be reset to their default values. For example, if you have changed the
value of the MinEndpointExpiration property to 500 that value will be reset back to 300.

Examples
-------------------------- Example 1 --------------------------

Remove-CsRegistrarConfiguration -Identity site:Redmond

The command shown in Example 1 deletes the Registrar configuration settings assigned to the Redmond site.
When these settings are deleted, Registrars in the Redmond site will automatically use the global Registrar settings.
-------------------------- Example 2 --------------------------

Get-CsRegistrarConfiguration -Filter "service:*" | Remove-CsRegistrarConfiguration

Example 2 deletes all the Registrar configuration settings that have been assigned to the service scope. To do this,
the command first calls the Get-CsRegistrarConfiguration cmdlet along with the Filter parameter; the filter value
"service:*" limits the returned data to settings where the Identity begins with the characters "service:". The filtered
collection is then piped to the Remove-CsRegistrarConfiguration cmdlet, which deletes each item in that collection.
-------------------------- Example 3 --------------------------

Get-CsRegistrarConfiguration | Where-Object {$_.EnableDHCPServer -eq $True} | Remove-CsRegistrarConfiguration

In Example 3, all the Registrar configuration settings where the EnableDHCPServer property is True are deleted. To
carry out this task, the command first calls the Get-CsRegistrarConfiguration cmdlet without any parameters; this
returns a collection of all the Registrar configuration settings currently in use. That collection is then piped to the
Where-Object cmdlet, which selects only those settings where the EnableDHCPServer property is equal to True. In
turn, the filtered collection is piped to the Remove-CsRegistrarConfiguration cmdlet, which deletes each item in the
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Registrar configuration settings to be removed. To remove settings configured at the site
scope, use syntax similar to this: -Identity site:Redmond . To remove settings at the service level, use syntax like this:
-Identity service:Registar:atl-cs-001.litwareinc.com

Note that the Remove-CsRegistrarConfiguration cmdlet can also be run against the global settings (
-Identity global ). In that case, however, the global settings will not be removed. Instead, all the properties in the
global collection will be reset to their default values.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Registrar.RegistrarSettings object. The
Remove-CsRegistrarConfiguration cmdlet accepts pipelined instances of the Registrar settings object.

Outputs
None. Instead, the Remove-CsRegistrarConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Registrar.RegistrarSettings object.

Related Links
Get-CsRegistrarConfiguration
New -CsRegistrarConfiguration
Set-CsRegistrarConfiguration
minutes to read • Edit Online

Remove-CsReportingConfiguration
In ths Article

Removes an existing collection of reporting configuration settings. Reporting configuration settings are used to
specify the URL for installations of Skype for Business Server Monitoring Reports. This cmdlet was introduced in
Lync Server 2013.

Syntax
Remove-CsReportingConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
Reporting configuration settings are used to specify the home page for the Skype for Business Server Monitoring
Reports; if you are not using Monitoring Reports then there is no reason for you to modify the reporting
configuration settings.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsReportingConfiguration cmdlet
are not available in the Skype for Business Server.

Examples
-------------------------- Example 1 --------------------------

Remove-CsReportingConfiguration -Identity "service:MonitoringDatabase:atl-sql-002.litwareinc.com"

In Example 1, the reporting configuration settings with the Identity service:MonitoringDatabase:atl-sql-


002.litwareinc.com are removed.
-------------------------- Example 2 --------------------------

Get-CsReportingConfiguration | Remove-CsReportingConfiguration

In Example 2, all the reporting configuration settings currently in use in the organization are removed. To do this,
the command first uses the Get-CsReportingConfiguration cmdlet to return a collection of all the reporting
configuration settings. This collection is then piped to the Remove-CsReportingConfiguration cmdlet, which removes
each item in the collection.
-------------------------- Example 3 --------------------------

Get-CsReportingConfiguration | Where-Object {$_.ReportingUrl -eq "https://atl-sql-


002.litwareinc.com/lync_reports" | Remove-CsReportingConfiguration

The command shown in Example 3 deletes any reporting configuration settings where the reporting URL is set to
https://atl-sql-002.litwareinc.com/lync_reports. To carry out this task, the command first uses the
Get-CsReportingConfiguration cmdlet to return all the reporting configuration settings currently in use. This
collection is then piped to the Where-Object cmdlet, which selects only those settings where the ReportingURL
property is equal to https://atl-sql-002.litwareinc.com/lync_reports. That filtered collection is then piped to the
Remove-CsReportingConfiguration cmdlet, which removes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service Identity of the monitoring database whose reporting configuration settings are to be removed. For
example:
-Identity "Service:MonitoringDatabase:atl-sql-001.litwareinc.com"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsReportingConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Reporting.ReportingConfiguration object.

Outputs
None. Instead, the Remove-CsReportingConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Reporting.ReportingConfiguration object.

Related Links
Get-CsReportingConfiguration
New -CsReportingConfiguration
Set-CsReportingConfiguration
minutes to read • Edit Online

Remove-CsRgsAgentGroup
In ths Article

Removes an existing Response Group agent group. An agent group is a collection of agents assigned to a Response
Group queue. Agents are the users assigned to answer calls directed to a particular queue. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsRgsAgentGroup [-Force] [-WhatIf] [-Confirm] -Instance <AgentGroup> [<CommonParameters>]

Description
When someone calls a phone number associated with the Response Group application, the service starts by
determining which workflow corresponds to the number called. Based on the configuration of that workflow, the
call might be routed to a set of interactive voice response (IVR ) questions (in which the caller is asked one or more
questions along the lines of "Is this question about hardware support or software support?"). Alternatively, the call
might be placed in a Response Group queue; there the caller will remain on hold until someone is available to
answer the call. The people designated to answer calls are known as agents and a collected group of agents are
referred to as a Response Group agent group. Agent groups are associated with workflows and are further
associated with like job responsibilities; for example, help desk personnel might be grouped in the Help Desk agent
group while customer support agents might be grouped in the Customer Support agent group.
New agent groups are created by using the New-CsRgsAgentGroup cmdlet. If you need to delete an agent group, this
can be done by calling the Remove-CsRgsAgentGroup cmdlet. Note that this cmdlet deletes the entire group and all the
agents in that group. If you only want to remove a single agent from a group, use the Set-CsRgsAgentGroup cmdlet
instead.

Examples
-------------------------- Example 1 ------------------------

Get-CsRgsAgentGroup -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Remove-CsRgsAgentGroup

The command shown in Example 1 deletes all the Response Group agent groups configured for use on the service
ApplicationServer:atl-cs-001.litwareinc.com. To do this, the command first uses Get-CsRgsAgentGroup to return all
the agent groups for ApplicationServer:atl-cs-001.litwareinc.com. Those groups are then piped to and removed by,
the Remove-CsRgsAgentGroup cmdlet.
-------------------------- Example 2 ------------------------

Get-CsRgsAgentGroup -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk" | Remove-


CsRgsAgentGroup
In Example 2, a single Response Group agent group is removed: the group named Help Desk. To do this,
Get-CsRgsAgentGroup is first used to return the Help Desk agent group (-Name "Help Desk") from
ApplicationServer:atl-cs-001.litwareinc.com. This group is then piped to Remove-CsRgsAgentGroup , which removes
the group from the service.
-------------------------- Example 3 ------------------------

Get-CsRgsAgentGroup -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object


{$_.RoutingMethod -ne "RoundRobin"} | Remove-CsRgsAgentGroup

Example 3 deletes all the Response Group agent groups on ApplicationServer:atl-cs-001.litwareinc.com that do not
use the round robin routing method. To do this, Get-CsRgsAgentGroup is first called in order to return a collection of
all the agent groups found on the service ApplicationServer:atl-cs-001.litwareinc.com. This collection is then piped
to the Where-Object cmdlet, which picks out only those groups where the RoutingMethod property is not equal to
(-ne) RoundRobin. The filtered collection is then piped to Remove-CsRgsAgentGroup , which deletes each item in that
collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Forces removal of the agent group. If this parameter is present, the agent group will be deleted without warning,
even if it is used by an active workflow. If this parameter is not present, then you will be asked to confirm the
deletion of any agent group currently being used by an active workflow.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Object reference pointing to the agent group to be removed. When piping workflow objects to
Remove-CsRgsAgentGroup you can leave off the Instance parameter.

To use the Instance parameter use commands similar to this:


$x = Get-CsRgsAgentGroup -Identity ApplicationServer:atl-cs-001.litwareinc.com /1987d3c2-4544-489d-bbe3-
59f79f530a83

Remove-CsRgsAgentGroup -Instance $x

Note that you can only remove a single agent group at a time when using the Instance parameter. That means that
your object reference ($x) cannot contain multiple agent group objects.
Type: AgentGroup
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroup object. Remove-CsRgsAgentGroup accepts pipelined
instances of the Response Group agent group object.

Outputs
Remove-CsRgsAgentGroup deletes existing instances of the
Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroup object.

Related Links
Get-CsRgsAgentGroup
New -CsRgsAgentGroup
Set-CsRgsAgentGroup
minutes to read • Edit Online

Remove-CsRgsHolidaySet
In ths Article

Removes an existing Response Group holiday set. A Response Group holiday set is a collection of holidays. For
example, you might have one holiday set for a United States (U.S.)-based queue (a set which might include a
holiday for the Fourth of July) and a different set for a queue based in France. The latter queue might define a
holiday for Bastille Day but not for the Fourth of July. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsRgsHolidaySet [-Force] [-WhatIf] [-Confirm] -Instance <HolidaySet> [<CommonParameters>]

Description
In order to provide callers with the best possible experience, the Response Group application makes it possible for
you to clearly define when Response Group agents are available to answer calls and when they are not available to
answer calls. With the Response Group application you can define business hours, which indicate the days of the
week and hours of the day that agents are available to answer calls. For example, if your organization is typically
open from 9:00 A.M. to 5:00 P.M. Monday through Friday then you would configure business hours that show that
agents are available from 9:00 A.M. to 5:00 P.M. Monday through Friday (and, by extension, that agents are not
available at, say, 8:00 P.M. on a Thursday or 2:30 P.M. on a Sunday).
However, in many organizations there are exceptions to the typical work week; for example, in the U.S. an
organization might be closed on Christmas Day or Thanksgiving Day. In order to accommodate these atypical
closures, the Response Group application enables you to designate certain days as holidays: days when the
organization would usually be open but, for whatever reason, is not. Individual holidays (created by using the
New-CsRgsHoliday cmdlet) are collected in holiday sets; for example, holidays for the U.S. might be collected in a
holiday set named US_Holidays, while holidays for Japan might be collected in a holiday set named
Japanese_Holidays. After they are collected, holidays and holiday sets can then be assigned to Response Group
workflows.
The Remove-CsRgsHolidaySet cmdlet enables administrators to remove Response Group holiday sets. By default, if
you attempt to remove a holiday set currently assigned to an active workflow, the cmdlet will pause and ask if you
are sure you want to delete the workflow. The command will not continue and the holiday set will not be removed,
until you respond to the prompt. To override this prompt and to remove a holiday set even if it is currently being
used by an active workflow, add the Force parameter:
Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "2010 Holidays" |
Remove-CsRgsHolidaySet -Force

Note that, when you call Remove-CsRgsHolidaySet , the entire set of holidays is removed and is no longer available
for use. If all you want to do is remove a single holiday from a holiday set (for example, because your company will
be open on Thanksgiving Day after all), you should use Set-CsRgsHolidaySet to remove only the specified holiday.

Examples
-------------------------- Example 1 ------------------------

Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "2010 Holidays" |


Remove-CsRgsHolidaySet

The command shown in Example 1 removes the holiday set "2010 Holidays" from the service
ApplicationServer:atl-cs-001.litwareinc.com. To do this, the command first calls Get-CsRgsHolidaySet along with two
parameters: the Identity parameter (which specifies the location of the holiday set) and the Name parameter (which
specifies the name of the set). The returned object is then piped to Remove-CsRgsHolidaySet , which deletes the
holiday set 2010 Holidays.
-------------------------- Example 2 ------------------------

Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Select-Object Identity -


ExpandProperty HolidayList | Where-Object {$_.Name -eq "New Year's Day"} | Remove-CsRgsHolidaySet

Example 2 deletes all the holiday sets on the service ApplicationServer:atl-cs-001.litwareinc.com that include the
holiday New Year's Day. In order to do this, the command first uses Get-CsRgsHolidaySet to return a collection of
all the holiday sets found on the service ApplicationServer:atl-cs-001.litwareinc.com. This collection is then piped to
the Select-Object cmdlet, which does two things: 1) selects the Identity property for each holiday set and 2)
"expands" the value of the HolidayList property. (When you expand a value you return the properties of the
underlying object. For a holiday, that means properties like Name, StartDate and EndDate). The selected
information (holiday set Identity and holiday property values) is then piped to the Where-Object cmdlet, which
picks out the sets that include a holiday where the Name is equal to (-eq) "New Year's Day". The filtered collection
of holiday sets is then piped to Remove-CsRgsHolidaySet , which deletes each holiday set that includes the holiday
New Year's Day.
-------------------------- Example 3 ------------------------

Get-CsRgsHolidaySet -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Where-Object


{$_.HolidayList.Count -lt 5} | Remove-CsRgsHolidaySet

The command shown in Example 3 deletes any holiday sets from the service ApplicationServer:atl-cs-
001.litwareinc.com that have fewer than 5 holidays assigned to them. To do this, the command first calls
Get-CsRgsHolidaySet to return a collection of all the holiday sets found on ApplicationServer:atl-cs-
001.litwareinc.com. This collection is then piped to the Where-Object cmdlet, which selects only those holiday sets
where the number of assigned holidays ($_.HolidayList.Count) is less than 5. These holiday sets are then piped to
and deleted by, the Remove-CsRgsHolidaySet cmdlet.

Parameters
-Confirm
This parameter is for testing purposes only.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Forces removal of the holiday set. If this parameter is present, the holiday set will be deleted without warning, even
if it is used by an active workflow. If this parameter is not present then you will be asked to confirm the deletion of
any holiday set currently assigned to an active workflow.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Object reference pointing to the holiday set to be removed. When piping workflow objects to
Remove-CsRgsHolidaySet you can leave off the Instance parameter.

To use the Instance parameter use commands similar to this:


$x = Get-CsRgsHolidaySet -Identity ApplicationServer:atl-cs-001.litwareinc.com /1987d3c2-4544-489d-bbe3-
59f79f530a83

Remove-CsRgsHolidaySet -Instance $x

Note that you can only remove a single holiday set at a time when using the Instance parameter. That means that
your object reference ($x) cannot contain multiple holiday set objects.

Type: HolidaySet
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Rgs.Management.WritableSettings.HolidaySet object. Remove-CsRgsHolidaySet accepts pipelined
instances of the Response Group holiday set object.

Outputs
Remove-CsRgsHolidaySet deletes existing instances of the
Microsoft.Rtc.Rgs.Management.WritableSettings.HolidaySet object.

Related Links
Get-CsRgsHolidaySet
New -CsRgsHolidaySet
Set-CsRgsHolidaySet
minutes to read • Edit Online

Remove-CsRgsHoursOfBusiness
In ths Article

Removes an existing set of Response Group business hours. Business hours are used to indicate the days of the
week and the times of day when Response Group agents are typically available to answer phone calls. This cmdlet
was introduced in Lync Server 2010.

Syntax
Remove-CsRgsHoursOfBusiness [-Force] [-WhatIf] [-Confirm] -Instance <BusinessHours> [<CommonParameters>]

Description
In order to provide callers with the best possible experience, the Response Group application makes it possible for
you to clearly define when Response Group agents are available to answer calls and when they are not available to
answer calls. With the Response Group application, you can define business hours; these hours indicate the days of
the week and the hours of the day that agents are available to answer calls. For example, if your organization is
typically open from 9:00 A.M. to 5:00 P.M. Monday through Friday, then you would configure business hours that
show that agents are available from 9:00 A.M. to 5:00 P.M. Monday through Friday (and, by extension, that agents
are not available at, say, 8:00 P.M. on a Thursday or 2:30 P.M. on a Sunday).
New business hour sets can be created by using the New-CsRgsHoursOfBusiness cmdlet; these sets can later be
removed by using the Remove-CsRgsHoursOfBusiness cmdlet. Note that, when you call Remove-CsRgsHoursOfBusiness ,
the entire set of hours is removed and is no longer available for use. If all you want to do is remove business hours
for a particular day (for example, because your help desk is no longer open on Sundays), you should use
Set-CsRgsHoursOfBusiness to remove only the applicable values from a collection.

By default, Remove-CsRgsHoursOfBusiness prompts you if you attempt to delete a business hours set currently in use
by an active workflow. That prompt asks you to verify that you want to remove the collection and no action will be
taken until you respond to the prompt. To bypass this prompt and to silently delete business hour sets, even if those
sets are currently assigned to an active workflow, add the Force parameter. For example:
Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Remove-
CsRgsHoursOfBusiness -Force

Examples
-------------------------- Example 1 ------------------------

Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Remove-


CsRgsHoursOfBusiness

The command shown in Example 1 removes all the business hour sets found on the service ApplicationServer:atl-
cs-001.litwareinc.com. To do this, the command first calls Get-CsRgsHoursOfBusiness to return all the business hour
sets found on the service ApplicationServer:atl-cs-001.litwareinc.com. These sets are then piped to the
Remove-CsRgsHoursOfBusiness cmdlet, which deletes each business hours set that is passed to it.
-------------------------- Example 2 ------------------------

Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" -Name "Help Desk


Business Hours" | Remove-CsRgsHoursOfBusiness

In Example 2, a single set of business hours is removed from ApplicationServer:atl-cs-001.litwareinc.com: the


collection named Help Desk Business Hours.
-------------------------- Example 3 ------------------------

Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Where-Object


{$_.SundayTimeRange1 -ne $Null -or $_.SundayTimeRange2 -ne $Null} | Remove-CsRgsHoursOfBusiness

Example 3 deletes all the business hour sets that have business hours configured for Sundays. To do this, the
command first calls Get-CsRgsHoursOfBusiness to return all the business hour sets found on ApplicationServer:atl-
cs-001.litwareinc.com. These sets are then piped to the Where-Object cmdlet, which selects only those items where
one of the following criteria is true: the SundayTimeRange1 property is not equal to a null value, or the
SundayTimeRange2 property is not equal to a null value. (If a time range property is not null, then that means
business hours have been configured for that time interval.) Any set that meets at least one of those criteria is then
piped to the Remove-CsRgsHoursOfBusiness cmdlet, which removes that set of business hours.
-------------------------- Example 4 ------------------------

Get-CsRgsHoursOfBusiness -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Where-Object


{$_.Custom -eq $True} | Remove-CsRgsHoursOfBusiness -Force

The command shown in Example 4 deletes all the custom business hour sets (that is, sets that cannot be shared
among workflows). To carry out this task, the command first uses Get-CsRgsHoursOfBusiness to return all the
business hour sets found on ApplicationServer:atl-cs-001.litwareinc.com. This data is then piped to the
Where-Object cmdlet, which picks out only those sets where the Custom property is equal to True. These sets are
then piped to and deleted by, Remove-CsRgsHoursOfBusiness .

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Forces the deletion of a business hours set. If this parameter is present, the set will be deleted without warning,
even if the set is currently assigned to an active workflow. If this parameter is not present then you will be asked to
confirm the deletion of any business hours set currently assigned to an active workflow.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Object reference pointing to the business hours set to be removed. When piping workflow objects to
Remove-CsRgsHoursOfBusiness you can leave off the Instance parameter.

To use the Instance parameter use commands similar to this:


$x = Get-CsRgsHoursOfBusiness -Identity ApplicationServer:atl-cs-001.litwareinc.com /1987d3c2-4544-489d-bbe3-
59f79f530a83

Remove-CsRgsHoursOfBusiness -Instance $x

Note that you can only remove a single business hours set at a time when using the Instance parameter. That
means that your object reference ($x) cannot contain multiple business hour objects.

Type: BusinessHours
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Rgs.Management.WritableSettings.BusinessHours object. Remove-CsRgsHoursOfBusiness accepts
pipelined instances of the Response Group business hours object.

Outputs
Deletes existing instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.BusinessHours object.

Related Links
Get-CsRgsHoursOfBusiness
New -CsRgsHoursOfBusiness
Set-CsRgsHoursOfBusiness
minutes to read • Edit Online

Remove-CsRgsQueue
In ths Article

Deletes an existing Response Group queue. With the Response Group application, phone calls are put in a queue
and callers are placed on hold until a Response Group agent is available to answer that call. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsRgsQueue [-Force] [-WhatIf] [-Confirm] -Instance <Queue> [<CommonParameters>]

Description
When someone calls a phone number associated with the Response Group application one of two things typically
happens: either the call is transferred to a question that the caller must answer in order to continue (for example,
"Press 1 for hardware support; press 2 for software support") or the call is placed in a queue until a Response
Group agent is available to answer the call.
Instead of having a single queue for all phone calls, the Response Group application enables you to create multiple
queues that can be associated with different workflows and different Response Group agent groups. In turn, this
means queues can respond differently to events such as a designated number of calls being simultaneously held in
the queue, or to callers that have been on hold for specified amount of time.
In addition to creating new queues you can also remove existing queues; that's what the Remove-CsRgsQueue cmdlet
is for. Note that, by default, you will be prompted if you try to remove a queue that is currently assigned to an active
workflow; the prompt will ask you to verify that you want to delete the queue and Windows PowerShell will pause
(and no queue will be deleted) until you answer the prompt. To bypass the prompt and to delete queues that are
being used by an active workflow, add the Force parameter. For example:
Get-CsRgsQueue -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com" | Remove-CsRgsQueue -Force

Remove-CsRgsQueue always checks to see if a queue is being used by an active workflow before it will delete that
queue. However, the cmdlet does not verify whether or not the queue is being used by another queue as either the
timeout or overflow queue. That means it is possible to delete a queue that is needed by another queue. Because of
that, you might want to use the Get-CsRgsQueue cmdlet to check the OverflowAction and TimeoutAction properties
of your other Response Group queues before running Remove-CsRgsQueue to delete a queue.

Examples
-------------------------- Example 1 ------------------------

Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Remove-CsRgsQueue

The command shown in Example 1 deletes all the Response Group queues found on the service
ApplicationServer:atl-cs-001.litwareinc.com. To do this, the command first uses Get-CsRgsQueue to return a
collection of all the queues found on ApplicationServer:atl-cs-001.litwareinc.com. This collection is then piped to
Remove-CsRgsQueue , which deletes each queue in the collection.

-------------------------- Example 2 ------------------------

Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk Queue" | Remove-


CsRgsQueue

In Example 2, a single Response Group queue is deleted: the queue named "Help Desk Queue", located on the
service ApplicationServer:atl-cs-001.litwareinc.com. To delete this queue, Get-CsRgsQueue is called along with the
Identity and Name parameters; the single queue returned by this call is then piped to and deleted by,
Remove-CsRgsQueue .

-------------------------- Example 3 ------------------------

Get-CsRgsQueue -Identity service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object


{$_.OverflowCandidate -eq "NewestCall"} | Remove-CsRgsQueue

Example 3 deletes all the Response Group queues found on the service ApplicationServer:atl-cs-001.litwareinc.com,
provided those queues have their OverflowCandidate property set to NewestCall. To do this, Get-CsRgsQueue is first
called in order to return a collection of all the Response Group queues found on ApplicationServer:atl-cs-
001.litwareinc.com. This collection is then piped to the Where-Object cmdlet, which selects only those queues where
the OverflowCandidate property is equal to "NewestCall". The filtered collection is then piped to
Remove-CsRgsQueue , which deletes each queue in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Forces the deletion of a Response Group queue. If this parameter is present, the queue will be deleted without
warning, even if the queue is assigned to an active workflow. If this parameter is not present then you will be asked
to confirm the deletion of any queue currently in use by an active workflow.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Object reference pointing to the queue to be removed. When piping workflow objects to Remove-CsRgsQueue you
can leave off the Instance parameter.
To use the Instance parameter use commands similar to this:
$x = Get-CsRgsQueue -Identity ApplicationServer:atl-cs-001.litwareinc.com /1987d3c2-4544-489d-bbe3-59f79f530a83

Remove-CsRgsQueue -Instance $x

Note that you can only remove a single queue at a time when using the Instance parameter. That means that your
object reference ($x) cannot contain multiple queue objects.

Type: Queue
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Rgs.Management.WritableSettings.Queue object. Remove-CsRgsQueue accepts pipelined instances of
the Response Group queue object.

Outputs
Remove-CsRgsQueue deletes existing instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.Queue object.

Related Links
Get-CsRgsQueue
New -CsRgsQueue
Set-CsRgsQueue
minutes to read • Edit Online

Remove-CsRgsWorkflow
In ths Article

Deletes an existing Response Group workflow. Workflows determine the actions that are taken when the Response
Group application receives a phone call. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsRgsWorkflow [-Instance] <Workflow> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Workflows are a key element in the Response Group application. Each workflow is uniquely associated with a
phone number; when someone calls that number, the workflow determines how the call will be handled. For
example, the call might be routed to a series of interactive voice response (IVR ) questions that prompt the caller to
enter additional information ("Press 1 for hardware support. Press 2 for software support.") Alternatively, the call
might be placed in a queue and the caller placed on hold until an agent is available to answer the call. The
availability of agents to answer calls is also dictated by the workflow: workflows are used to maintain both the
business hours (the days of the week and the times of day when agents are available to answer calls) and the
holidays (days when no agents are available to answer calls).
New workflows are created by using the New-CsRgsWorkflow cmdlet. After these workflows have been created, they
can later be deleted by using Remove-CsRgsWorkflow . Note that, when you delete a workflow, the workflow is
completely removed from the Response Group application. If you want to temporarily disable a workflow, don't use
Remove-CsRgsWorkflow ; instead, use the Set-CsRgsWorkflow cmdlet to disable (and then later re-enable) the
workflow.
If you try to delete an active workflow, Remove-CsRgsWorkflow will prompt you to verify that you really want to
delete the workflow; Remove-CsRgsWorkflow will take no further action until you respond to the prompt. To bypass
this prompt and to silently delete an active workflow, use the Force parameter. For example:
Get-CsRgsWorkflow -Identity "service:ApplicationServer:atl-cs-001.litwareinc.com " | Remove-CsRgsWorkflow -Force

Examples
-------------------------- Example 1 ------------------------

Get-CsRgsWorkflow -Identity Service:ApplicationServer:atl-cs-001.litwareinc.com | Remove-CsRgsWorkflow

Example 1 removes all the Response Group workflows from the service ApplicationServer:atl-cs-
001.litwareinc.com. To do this, the command first calls Get-CsRgsWorkflow to return a collection of all the workflows
found on ApplicationServer:atl-cs-001.litwareinc.com. That collection is then piped to Remove-CsRgsWorkflow , which
deletes each workflow in the collection.
-------------------------- Example 2 ------------------------
Get-CsRgsWorkflow service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk Workflow" | Remove-
CsRgsWorkflow

The command shown in Example 2 deletes a single Response Group workflow: the workflow named "Help Desk
Workflow" located on the service ApplicationServer:atl-cs-001.litwareinc.com. To do this, Get-CsRgsWorkflow is first
used to return the workflow named Help Desk Workflow from the service ApplicationServer:atl-cs-
001.litwareinc.com. That workflow is then piped to and deleted by, Remove-CsRgsWorkflow .
-------------------------- Example 3 ------------------------

Get-CsRgsWorkflow service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object {$_.Language -eq "en-us"}


| Remove-CsRgsWorkflow

Example 3 deletes all the United States (U.S.) English language workflows from the service ApplicationServer:atl-
cs-001.litwareinc.com. To do this, Get-CsRgsWorkflow is first used to retrieve all workflows found on
ApplicationServer:atl-cs-001.litwareinc.com. This collection is then piped to the Where-Object cmdlet, which selects
only those workflows where the language is equal to U.S. English (en-us). This filtered collection is then piped to
the Remove-CsRgsWorkflow cmdlet, which deletes each item in the collection.
-------------------------- Example 4 ------------------------

Get-CsRgsWorkflow service:ApplicationServer:atl-cs-001.litwareinc.com | Where-Object {$_.CustomMusicOnHoldFile


-ne $Null} | Remove-CsRgsWorkflow

The command shown in Example 4 deletes all the Response Group workflows on the service ApplicationServer:atl-
cs-001.litwareinc.com that have a value configured for the CustomMusicOnHoldFile property. In order to
accomplish this, the command first uses Get-CsRgsWorkflow to return a collection of all the workflows found on
ApplicationServer:atl-cs-001.litwareinc.com. That collection is then piped to the Where-Object cmdlet, which selects
only those workflows where the CustomMusicOnHoldFile property is not equal to a null value. (If the property is
not equal to a null value, that means that custom music has been defined for this workflow.) The filtered collection
is then piped to Remove-CsRgsWorkflow , which removes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Forces removal of the workflow. If this parameter is present, the workflow will be deleted without warning, even if it
is currently active. If this parameter is not present then you will be asked to confirm the deletion of any active
workflow.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Object reference pointing to the workflow to be removed. When piping workflow objects to Remove-CsRgsWorkflow
you can leave off the Instance parameter.
To use the Instance parameter use commands similar to this:
$x = Get-CsRgsWorkflow -Identity ApplicationServer:atl-cs-001.litwareinc.com /1987d3c2-4544-489d-bbe3-
59f79f530a83

Remove-CsRgsWorkflow -Instance $x

Note that you can only remove a single workflow at a time when using the Instance parameter. That means that
your object reference ($x) cannot contain multiple workflow objects.

Type: Workflow
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow object. Remove-CsRgsWorkflow accepts pipelined
instances of the Response Group workflow object.

Outputs
Remove-CsRgsWorkflow deletes existing instances of the Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow
object.

Related Links
Get-CsRgsWorkflow
New -CsRgsWorkflow
Set-CsRgsWorkflow
minutes to read • Edit Online

Remove-CsRoutingConfiguration
In ths Article

Resets the routing configuration to its default settings. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsRoutingConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Voice routes contain instructions that tell Skype for Business Server how to route calls from Enterprise Voice users
to phone numbers on the public switched telephone network (PSTN ) or a private branch exchange (PBX). This
cmdlet removes the global (and only) routing configuration, which is a container for all voice routes defined for a
Skype for Business Server deployment. "Removing" the routing configuration doesn't actually remove it; the Global
(and only) instance is still there. However, it does set the list of voice routes to the default settings.

WARNING: Removing the routing configuration (in other words, setting the list of voice routes to the default)
deletes all defined voice routes for a Skype for Business Server deployment and replaces them with a single route
with default settings.

Examples
-------------------------- Example 1 --------------------------

Remove-CsRoutingConfiguration -Identity Global -Confirm

This example resets the Global (and only) routing configuration to the default settings. This action deletes all
defined voice routes, so we added the Confirm parameter in order to receive a prompt asking whether we really
want to perform this action before the removal takes place.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The scope of the routing configuration to remove. This value must be Global.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Policy.Voice.PSTNRoutingSettings object. Accepts pipelined input of a routing
configuration object.

Outputs
This cmdlet removes (resets) an object of type Microsoft.Rtc.Management.Policy.Voice.PSTNRoutingSettings.

Related Links
New -CsRoutingConfiguration
Set-CsRoutingConfiguration
Get-CsRoutingConfiguration
Remove-CsVoiceRoute
Get-CsVoiceRoute
minutes to read • Edit Online

Remove-CsServerApplication
In ths Article

Removes an existing server application. Server applications are applications that are hosted by Skype for Business
Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsServerApplication [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Server applications refer to the individual programs that run under Skype for Business Server. The
Remove-CsServerApplication cmdlet provides a way for administrators to remove any application running as part of
Skype for Business Server. Note that deleting a server application is not the same thing as uninstalling that
application. When you run the Remove-CsServerApplication cmdlet, the application no longer runs under Skype for
Business Server. However, the software itself is not uninstalled and the application can be re-enabled by running
the New-CsServerApplication cmdlet.

Examples
-------------------------- Example 1 ------------------------

Remove-CsServerApplication -Identity "service:EdgeServer:atl-edge-001.litwareinc.com/EdgeMonitor"

In Example 1, the server application that has the Identity service: EdgeServer:atl-edge-
001.litwareinc.com/EdgeMonitor is removed. Because Identities must be unique, this command will never delete
more than a single application.
-------------------------- Example 2 ------------------------

Get-CsServerApplication | Where-Object {$_.Critical -eq $False} | Remove-CsServerApplication

In Example 2, all the non-critical server applications are removed. To carry out this task, the command first calls the
Get-CsServerApplication cmdlet in order to return a collection of all the server applications currently in use in the
organization. This collection is then piped to the Where-Object cmdlet, which picks all the applications where the
Critical property is equal to False. This filtered collection is then piped to the Remove-CsServerApplication cmdlet,
which deletes each item in the collection.
-------------------------- Example 3 ------------------------

Get-CsServerApplication -Filter "service:EdgeServer:atl-cs-001.litwareinc.com/*" | Remove-CsServerApplication

Example 3 deletes all the server applications that have been configured for use by the service EdgeServer:atl-cs-
001.litwareinc.com. To do this, the Get-CsServerApplication cmdlet is used along with the Filter parameter; the filter
value "service:EdgeServer:atl-cs-001.litwareinc.com/*" returns all the applications that have an Identity that begins
with the characters "service:EdgeServer:atl-cs-001.litwareinc.com/". In turn, that collection is piped to the
Remove-CsServerApplication cmdlet, which deletes each application from the EdgeServer:atl-cs-001.litwareinc.com.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the server application to be removed. Server application Identities are composed of the
service where the application is hosted plus the application name. For example, the server application named
QoEAgent might have an Identity similar to this: service:Registrar:atl-cs-001.litwareinc.com/QoEAgent.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application object. The
Remove-CsServerApplication cmdlet accepts pipelined instances of the server application object.

Outputs
The Remove-CsServerApplication cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application object.

Related Links
Get-CsServerApplication
New -CsServerApplication
Set-CsServerApplication
minutes to read • Edit Online

Remove-CsSimpleUrlConfiguration
In ths Article

Removes one or more of the simple URL configuration collections currently in use in your organization. Simple URLs make it easier for users to join
meetings and conferences, as well as making it easier for Administrators to log on to the Skype for Business Server Control Panel. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsSimpleUrlConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>]
[<CommonParameters>]

Description
In Microsoft Office Communications Server 2007 R2, meetings had URLs similar to this:
https://imdf.litwareinc.com/Join?
uri=sip%3Akenmyer%40litwareinc.com%3Bgruu%3Bopaque%3Dapp%3Aconf%3Afocus%3Aid%3A125f95a0b0184dcea706f1a0191202a8&key=EcznhLh5K5t
However, such URLs are not especially intuitive, and not easy to convey to someone else. The simple URLs introduced in Lync Server 2010 help
overcome those problems by providing users with URLs that look more like this:
https://meet.litwareinc.com/kenmyer/071200
Simple URLs are an improvement over the URLs used in Office Communications Server. However, simple URLs are not automatically created for
you; instead, you must configure the URLs yourself. In addition, you must also do such things as create Domain Name System (DNS ) records for
each URL; configure reverse proxy rules for external access; add the simple URLs to the your Front End Server certificates; and so on.
Skype for Business Server enables you to create three different simple URLs:
Meet - Used for meetings. You must have at least one Meet URL for each of your SIP domains.
Admin - Used to point administrators to the Skype for Business Server Control Panel.
Dialin - Used for the dial-in conferencing webpage.
Simple URLs are stored in simple URL configuration collections. When you install Skype for Business Server, a global collection is created for you;
you can also create custom collections at the site scope. This gives you the ability to use different simple URLs at each of your sites.
Simple URL configuration collections are created by using the New-CsSimpleUrlConfiguration cmdlet; you can then use additional cmdlets (such as
the New-CsSimpleUrlEntry cmdlet and the Set-CsSimpleUrlConfiguration cmdlet) to populate these collections with simple URLs. If you later decide
to delete one or more of the site-scoped collections, you can do so by using the Remove-CsSimpleUrlConfiguration cmdlet.

Examples
-------------------------- Example 1 ------------------------

Remove-CsSimpleUrlConfiguration -Identity "site:Redmond"

The command shown in Example 1 deletes the simple URL configuration collection applied to the Redmond site. This command deletes all the
simple URLs assigned to the specified site.
-------------------------- Example 2 ------------------------

Get-CsSimpleUrlConfiguration -Filter "site:*" | Remove-CsSimpleUrlConfiguration

In Example 2, all the simple URL configuration collections applied at the site scope are deleted. To do this, the command first uses the
Get-CsSimpleUrlConfiguration cmdlet and the Filter parameter to return all the simple URL collections configured at the site scope; the filter value
"site:*" limits the returned data to those collections that have an Identity that begins with the string value "site:". The filtered collection is then piped
to the Remove-CsSimpleUrlConfiguration cmdlet, which deletes each item in that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of simple URLs to be removed. To remove a collection from the site scope, use syntax similar to this:
-Identity "site:Redmond"

Note that you cannot use wildcards when specifying an Identity.


You can also run this cmdlet against the global collection by using this syntax:
-Identity global

In that case, however, the global collection will not be deleted. Instead, all the Simple URLs within that collection will be deleted.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the Simple URL configuration settings being deleted. For
example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlConfiguration object. The Remove-CsSimpleUrlConfiguration cmdlet accepts
pipelined instances of the simple URL configuration object.

Outputs
None.

Related Links
Get-CsSimpleUrlConfiguration
New-CsSimpleUrlConfiguration
Set-CsSimpleUrlConfiguration
minutes to read • Edit Online

Remove-CsSipDomain
In ths Article

Removes a SIP domain previously configured for use in your organization. SIP domains are domains authorized to
send and receive SIP traffic and are used when assigning SIP addresses to users. This cmdlet was introduced in
Lync Server 2010.

Syntax
Remove-CsSipDomain [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
In order to configure SIP addresses for your users (and thus enable them to use SIP -related software such as
Skype for Business), you need two pieces of information: a user ID (for example, Ken.Myer) and a SIP domain (for
example, litwareinc.com). The SIP domain used to construct a SIP address must be a domain, located within your
Active Directory forest, that is authorized to send and receive SIP traffic. For example, suppose you have domains
named litwareinc.com, fabrikam.com, and contoso.com, but only litwareinc.com has been identified as being a SIP
domain. In that case, you cannot use a SIP address like sip:Ken.Myer@fabrikam.com or sip:Ken.Myer@contoso.com,
at least not until fabrikam.com and contoso.com have been configured as valid SIP domains. This is something you
can do by running the New-CsSipDomain cmdlet.
After a SIP domain has been authorized, it can be "unauthorized" by using the Remove-CsSipDomain cmdlet. This
cmdlet removes the specified domain from the list of approved SIP domains. Note, however, that you cannot
remove the default domain; if you need to do this, you will first have to configure another SIP domain to act as the
default domain. If you only have one SIP domain, that domain will automatically be configured as the default
domain and you will not be able to remove it.
In addition, you cannot remove any SIP domain that has one or more SIP addresses assigned to it. For example,
you cannot remove Contoso.com as a SIP domain if Ken Myer has the SIP address "sip:kenmyer@contoso.com". To
remove a SIP domain currently in use, you must first assign new SIP addresses to all the users who have that
domain in their SIP address.

Examples
-------------------------- Example 1 ------------------------

Remove-CsSipDomain -Identity fabrikam.com

Example 1 removes the SIP domain with the Identity fabrikam.com from the list of supported domain names. Note
that this command will fail if fabrikam.com is the only SIP domain currently in use in your organization. That's
because your topology must include at least one SIP domain.
-------------------------- Example 2 ------------------------
Get-CsSipDomain | Where-Object {$_.IsDefault -ne $True} | Remove-CsSipDomain

The command shown in Example 2 deletes all the SIP domains in your organization except for the default domain.
To do this, the command first calls the Get-CsSipDomain cmdlet in order to return a collection of all your SIP
domains. This collection is then piped to the Where-Object cmdlet, which picks out only those domains where the
IsDefault property is not equal to True. The net effect: the default domain is filtered out and the remaining domains
are then piped to the Remove-CsSipDomain cmdlet and deleted.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the SIP domain to be removed: For example:
-Identity fabrikam.com

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
Microsoft.Rtc.Management.Xds.SipDomain object. The Remove-CsSipDomain cmdlet accepts pipelined instances of
the SIP domain object.

Outputs
None. Instead, the Remove-CsSipDomain cmdlet deletes existing instance of the
Microsoft.Rtc.Management.Xds.SipDomain object.

Related Links
Get-CsSipDomain
New -CsSipDomain
Set-CsSipDomain
minutes to read • Edit Online

Remove-CsSipResponseCodeTranslationRule
In ths Article

Removes a SIP response code translation rule. These rules enable administrators to map SIP response codes with
values between 400 and 699 to the values used by Skype for Business Server. This cmdlet was introduced in Lync
Server 2010.

Syntax
Remove-CsSipResponseCodeTranslationRule [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
SIP trunking provides a way to connect a Voice over Internet Protocol (VoIP ) network (such as Enterprise Voice)
with the public switched telephone network (PSTN ). In Skype for Business Server, the Mediation Server uses
trunking peers to interact with the PSTN network. When an outgoing call fails on the PSTN network, an ISDN
User Part (ISUP ) cause code is automatically generated. For example, a PSTN gateway might send cause code 34
to indicate that no circuit or channel was available for completing the call. When a Mediation Server trunking peer
receives that ISUP cause code, it converts that code to a SIP response code, which is then sent to the Mediation
Server itself. In turn, Skype for Business Server uses these response codes to make its outbound routing decisions.
For example, a malfunctioning gateway might automatically be assigned a "less-preferred" status; this minimizes
the use of the malfunctioning gateway, and thus maximizes the chance of a call being successfully completed.
However, not all gateways use the recommended ISUP cause code to SIP response code mapping used by Skype
for Business Server. For these gateways, administrators can use the CsSipResponseCodeTranslationRule cmdlets to
map the gateway SIP response code (in combination with the ISUP cause code, if that code is available) to a SIP
response code used by Skype for Business Server. For example, a gateway might map ISUP cause code 34 ("No
circuit/channel is available") to SIP response code 486 ("Busy here"). Based on a response code of 486, the
outbound routing logic of Skype for Business Server will not attempt to find a new gateway in order to complete
the call.
For Skype for Business Server, however, that SIP response code of 486 should instead be mapped to SIP response
code 503. A response code of 503 triggers the retry mechanism in the outbound routing logic of Skype for
Business Server; that means that the system will try to find another gateway in order to complete the call. To handle
this situation, you can create a translation rule that maps the combination of ISUP cause code 34 and SIP response
code 486 to a SIP response code of 503.
The Remove-CsSipResponseCodeTranslationRule cmdlet provides a way for you to delete any of the translation rules
previously configured for use in your organization.

Examples
-------------------------- Example 1 ------------------------
Remove-CsSipResponseCodeTranslationRule -Identity "PstnGateway:192.168.0.240/Rule404"

The command shown in Example 1 deletes a single response code translation rule: the rule that has the Identity
PstnGateway:192.168.0.240/Rule404.
-------------------------- Example 2 ------------------------

Get-CsSipResponseCodeTranslationRule -Filter "service:PstnGateway:192.168.0.240/*" | Remove-


CsSipResponseTranslationCode

In Example 2, all the response code translation rules are removed from the PSTN gateway 192.168.0.240. To do
this, the command first calls the Get-CsSipResponseCodeTranslationRule cmdlet along with the Filter parameter; the
filter value "service:PstnGateway:192.168.0.240/*" limits the returned data to rules that have an Identity that begins
with the string value "service:PstnGateway:192.168.0.240/". This filtered collection is then piped to the
Remove-CsSipResponseTranslationCode cmdlet, which deletes each rule in the collection.

-------------------------- Example 3 ------------------------

Get-CsSipResponseCodeTranslationRule | Where-Object {$_.ReceivedISUPCauseValue -eq -1} | Remove-


CsSipResponseTranslationCode

Example 3 deletes all the response code translation rules where no value has been configured for the
ReceivedISUPCauseValue property. To do this, the command first calls the Get-CsSipResponseCodeTranslationRule
cmdlet without any parameters in order to return a collection of all the response code translation rules currently in
use. That collection is then piped to the Where-Object cmdlet, which picks out only those rules where the
ReceivedISUPCauseValue property is equal to -1.
From there, the filtered collection is piped to the Remove-CsSipResponseTranslationCode cmdlet, which deletes each
rule in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier for the translation rule to be removed. The identity for a translation rule consists of two parts: the
scope where the rule was configured and the name given to the rule when it was created. For example, a translation
rule named Rule404 that was created at the global scope would have an Identity that looked like this:
global/Rule404.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTranslationRule#Decorated
object. The Remove-CsSipResponseCodeTranslationRule cmdlet accepts pipelined instances of the SIP response code
translation rule object.

Outputs
The Remove-CsSipResponseCodeTranslationRule cmdlet does not return any objects or values. Instead, the cmdlet
deletes modifies instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTranslationRule#Decorated
object.

Related Links
Get-CsSipResponseCodeTranslationRule
New -CsSipResponseCodeTranslationRule
Set-CsSipResponseCodeTranslationRule
minutes to read • Edit Online

Remove-CsSlaConfiguration
In ths Article

Use the Remove-CsSlaConfiguration cmdlet to remove a Shared Line Appearance (SLA) configuration. SLA is an
Enterprise Voice user that is capable of receiving multiple calls at a time and forwarding them to its delegates, who
answer the call. This cmdlet was introduced in Skype for Business Server 2015, November 2015 Cumulative
Update.

Syntax
Remove-CsSlaConfiguration [-Identity] <UserIdParameter> [-Confirm] [-PassThru] [-WhatIf] [<CommonParameters>]

Description
Shared Line Appearance (SLA) is a feature in Skype for Business (SfB ) for handling multiple calls on a specific
number called a shared number. SLA can configure any enterprise voice enabled SfB user as a shared number with
multiple lines to respond to multiple calls. The calls are not actually received on the shared number, instead they are
forwarded to users that act as delegates for the shared number. Any one of the delegates can pick up the call while
the rest of the delegates get a notification on their phone about who picked up the call and which line has become
busy as a result. Both the number of lines and the delegates are configurable for a shared number in SLA. In
addition, advanced options such as BusyOption (what happens in a situation when all lines are busy) and
MissedCallOption (the case in which none of the delegates pick up a call) etc. can also be configured for a shared
number.
The Remove-CsSlaConfiguration cmdlet removes an SLA configuration.
Note: Logging in with the account created for the SLA number is not supported. Using the SLA number account
with any device or Desktop Client can result in unpredictable behavior. It is not necessary to use that account for
the Shared Line Appearance feature to function. By default, members of the RTCUniversalServerAdmins group are
authorized to run the Remove-CsSlaConfiguration cmdlet. To return a list of all the role-based access control
(RBAC ) roles this cmdlet has been assigned to (including any custom RBAC roles you have created yourself), run
the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Remove-CsSlaConfiguration"}

Examples
-------------------------- Example 1 --------------------------

PS C:\> Remove-CsSlaConfiguration -Identity SLAGroup1

This example removes the Shared Line Appearance configuration named "SLAGroup1".

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the SLA group to be removed. User Identities can be specified by using one of four
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon
name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name
(for example, Ken Myer). You can also reference a user account by using the Active Directory distinguished name.

You can use the asterisk (*) wildcard character when using the Display Name as the user Identity. For example, the
Identity "*Smith" returns all the users who have a display name that ends with the string value "Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the SLA group being removed. By default,
the Remove-CsSlaConfiguration cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Get-CsSlaConfiguration
Set-CsSlaConfiguration
minutes to read • Edit Online

Remove-CsSlaDelegates
In ths Article

Use the `Remove-CsSlaDelegates` cmdlet to remove a delegate from a shared number in Shared Line Appearance
(SLA). A shared number in SLA is an Enterprise Voice user that is capable of receiving multiple calls at a time and
forwarding them to its delegates, who answer the call. This cmdlet was introduced in Skype for Business Server
2015, November 2015 Cumulative Update.

Syntax
Remove-CsSlaDelegates [-Identity] <UserIdParameter> -Delegate <Uri> [-Confirm] [-PassThru] [-WhatIf]
[<CommonParameters>]

Description
SLA is a feature in Skype for Business (SfB ) for handling multiple calls on a specific number called a shared
number. SLA can configure any enterprise voice enabled SfB user as a shared number with multiple lines to
respond to multiple calls. The calls are not actually received on the shared number, instead they are forwarded to
users that act as delegates for the shared number. Any one of the delegates can pick up the call while the rest of the
delegates get a notification on their phone about who picked up the call and which line has become busy as a result.
Both the number of lines and the delegates are configurable for a shared number in SLA. In addition, advanced
options such as BusyOption (what happens in a situation when all lines are busy) and MissedCallOption (the case
in which none of the delegates pick up a call) can also be configured for a shared number.
The Remove-CsSlaDelegates cmdlet provides a way to remove a delegate from a shared number in Shared Line
Appearance (SLA).
NOTE: Logging in with the account created for the SLA number is not supported. Using the SLA number account
with any device or Desktop Client can result in unpredictable behavior. It is not necessary to use that account for
the Shared Line Appearance feature to function.
By default, members of the RTCUniversalServerAdmins group are authorized to run the Remove-CsSlaDelegates.
To return a list of all the role-based access control (RBAC ) roles this cmdlet has been assigned to (including any
custom RBAC roles you have created yourself), run the following command from the Windows PowerShell prompt:
Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Remove-CsSlaDelegates"}

Examples
-------------------------- Example 1 --------------------------

PS C:\> Remove-CsSlaDelegates -Identity SLAGroup1 -Delegate sip:SLA_Delegate3@contoso.com

This example removes SLA_Delegate3@contoso.com as delegate in SLA group named SLAGroup1.


Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Delegate
Specifies the delegate to be removed from the SLA group. This parameter requires a valid sip address.

Type: Uri
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Identity
Indicates the identity of the shared number to which the delegate will be removed. User identities can be specified
using one of five formats:
SIP address
Example: sip:kenmyer@litwareinc.com
User principal name (UPN )
Example: kenmyer@litwareinc.com
Domain name and logon name in the form domain\logon
Example: litwareinc\kenmyer
Active Directory display name (this form typically requires quotes)
Example: "Ken Myer"
Active Directory distinguished name
Example: CN=KenMyer,CN=Users,DC=Atlanta,DC=Corp,DC=litware,DC=com

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
The presence of the passthru switch causes the cmdlet to pass the current objects through the pipeline.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Related Links
Add-CsSlaDelegates
minutes to read • Edit Online

Remove-CsStaticRoutingConfiguration
In ths Article

Removes the specified collection of static routing configuration settings. This cmdlet was introduced in Lync Server
2010.

Syntax
Remove-CsStaticRoutingConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
When you send a SIP message to someone that message might need to traverse multiple subnets and networks
before it is delivered; the path traveled by the message is often referred to as a route. In networking, there are two
types of routes: dynamic and static. With dynamic routing, servers use algorithms to determine the next location
(the next hop) where a message should be forwarded. With static routing, message paths are predetermined by
system administrators. When a message is received by a server, the server checks the message address and then
forwards the message to the next hop server that has been preconfigured by an administrator. If configured
correctly, static routes help ensure timely and accurate, delivery of messages and with minimal overheard placed on
servers. The downside to static routes is that messages are not dynamically rerouted in the event of a network
failure.
When you install Skype for Business Server, a global collection of static routes is automatically created for you.
(The collection is created, but there are no routes assigned to that collection.) In addition, the software enables you
to create additional collections applied to the service scope (these new collections can only be assigned to the
Registrar service). If you later change your mind, you can use the Remove-CsStaticRoutingConfiguration cmdlet to
delete the collections applied to the service scope.
You can also run the Remove-CsStaticRoutingConfiguration cmdlet against the global collection. In that case,
however, the global collection will not be removed; Skype for Business Server does not allow you to remove global
collections. Instead, all the properties in the global collection will be reset to their default values. That means that all
the routes assigned to the global collection will be deleted.

Examples
-------------------------- Example 1 ------------------------

Remove-CsStaticRoutingConfiguration -Identity "service:Registrar:atl-cs-001.litwareinc.com"

The command shown in Example 1 removes the static routing configuration collection that has the Identity
service:Registrar:atl-cs-001.litwareinc.com.
-------------------------- Example 2 ------------------------
Get-CsStaticRoutingConfiguration -Filter "service:*" | Remove-CsStaticRoutingConfiguration

In Example 2, all the static routing configuration collections applied to the service scope are removed. To do this, the
command starts off by using the Get-CsStaticRoutingConfiguration cmdlet and the Filter parameter; the filter value
"service:*" limits the returned data to collections that have an Identity that begins with the string value "service:".
This filtered collection is then piped to the Remove-CsStaticRoutingConfiguration cmdlet, which deletes each item in
that collection.
-------------------------- Example 3 ------------------------

Get-CsStaticRoutingConfiguration | Where-Object {$_.Route.Count -eq 0} | Remove-CsStaticRoutingConfiguration

Example 3 shows how you can delete all the static routing configuration collections that have not been assigned
any actual routes. To perform this task, the command first calls the Get-CsStaticRoutingConfiguration cmdlet; this
returns information about all the static routing collections in use in the organization. This collection is then piped to
the Where-Object cmdlet, which picks out only those collections where the number of routes (Route.Count) is equal
to 0. The filtered information is then piped to the Remove-CsStaticRoutingConfiguration cmdlet, which deletes each
collection that has not been assigned at least one route.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the static routing configuration collection to be removed. To remove a collection configured at
the service scope, use syntax similar to this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

The Remove-CsStaticRoutingConfiguration cmdlet can also be run against the global collection; to do so, use this
syntax:
-Identity global
Keep in mind, however, that the global collection will not actually be removed. Instead, the properties in that
collection will be reset to their default values. That means that all the items in the Route property will be deleted.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.RoutingSettings object. The
Remove-CsStaticRoutingConfiguration cmdlet accepts pipelined instances of the static routing settings object.

Outputs
The Remove-CsStaticRoutingConfiguration cmdlet does not return a value or object. Instead, the cmdlet deletes
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.RoutingSettings object.

Related Links
Get-CsStaticRoutingConfiguration
New -CsStaticRoutingConfiguration
Set-CsStaticRoutingConfiguration
minutes to read • Edit Online

Remove-CsStorageServiceConfiguration
In ths Article

Removes existing instances of the Skype for Business Server Storage Service. The storage service provides a
common infrastructure that enables Skype for Business Server components to use Skype for Business Server as a
back-end data store.

Syntax
Remove-CsStorageServiceConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
The Skype for Business Server Storage Service enables Skype for Business Server 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 archiving. The Storage
Service also enables Skype for Business Server 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.
Separate instances of the Skype for Business Server Storage Service can be configured at the global, site and
service scope (for the Registrar service only). By default, Skype for Business Server provides you with a single,
global collection of Storage Service configuration settings. However, administrators have the option of creating
custom settings by using the New-CsStorageServiceConfiguration cmdlet. Those custom settings can later be deleted
by using the Remove-CsStorageServiceConfiguration cmdlet.
The Remove-CsStorageServiceConfiguration cmdlet can also be run against the global settings collection. In that case,
however, the global collection will not be deleted. Instead, any properties within the global collection will be reset to
their default values.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsStorageServiceConfiguration
cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsStorageServiceConfiguration -Identity "site:Redmond"

The command shown in Example 1 deletes the storage service configuration settings applied to the Redmond site.
-------------------------- Example 2 --------------------------

Get-CsStorageServiceConfiguration -Filter "site:*" | Remove-CsStorageServiceConfiguration


In Example 2, all the storage service settings applied to the site scope are deleted. To carry out this task, the
command first uses the Get-CsStorageServiceConfiguration cmdlet and the Filter parameter to return all the
settings configured at the site scope. That collection is then piped to the Remove-CsStorageServiceConfiguration
cmdlet, which deletes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of storage service configuration settings to be removed. To remove a collection
applied to the site scope, use syntax similar to this:
-Identity "site:Redmond"

To remove a collection applied to the service scope, use syntax like this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Note that you can also run the Remove-CsStorageServiceConfiguration cmdlet against the global collection of
settings. In that case, however, the global settings will not actually be removed. Instead, the properties within that
collection will all be reset to their default values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsStorageServiceConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.StorageServiceSettings object.

Outputs
None. The Remove-CsStorageServiceConfiguration cmdlet does not return any objects or data.

Related Links
Get-CsStorageServiceConfiguration
New -CsStorageServiceConfiguration
Set-CsStorageServiceConfiguration
minutes to read • Edit Online

Remove-CsTeamsCallParkPolicy
In ths Article

The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft
Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on
that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The
Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in your organization.

Syntax
Remove-CsClientPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft
Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on
that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The
Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in your organization.
If you run Remove-CsTeamsCallParkPolicy on the Global policy, it will be reset to the defaults provided for new
organizations.

Examples
Example 1

PS C:\> Remove-CsTeamsCallParkPolicy -Identity SalesPolicy

Deletes a custom policy that has already been created in the organization.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses all non-fatal errors.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax:
-Identity global . ( Note that the global policy cannot actually be removed. Instead, all the properties in that policy
will be reset to their default values.) To remove a per-user policy, use syntax similar to this:
-Identity "SalesDepartmentPolicy" . You cannot use wildcards when specifying a policy Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Internal Microsoft use only.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object
12/10/2018 • 2 minutes to read • Edit Online

Migration and interoperability guidance for organizations using Teams together with Skype for Business.---
external help file: Microsoft.Rtc.Management.Hosted.dll-help.xml applicable: Skype for Business Online title: Get-
CsStorageServiceConfiguration

schema: 2.0.0
Remove-CsTeamsInteropPolicy
SYNOPSIS
IMPORTANT: TeamsInteropPolicy has been replaced by TeamsUpgradePolicy. See description for details. You can
also find more guidance here: Migration and interoperability guidance for organizations using Teams together with
Skype for Business.
This cmdlet previously determined how calls are routed between Skype for Business and Microsoft Teams. It is no
longer honored, except if TeamsUpgradePolicy mode=Legacy. However, Legacy mode has been deprecated and it
is no longer possible to grant TeamsUpgradePolicy with Mode=Legacy. Customers with existing configurations
with mode=Legacy must update their configurations to use a mode other than Legacy.

SYNTAX
Remove-CsTeamsInteropPolicy [-Identity <Object>] [-WhatIf] [-Confirm] [-Tenant <Object>] [-Force] [-AsJob]

DESCRIPTION
IMPORTANT: TeamsInteropPolicy has been replaced by TeamsUpgradePolicy. It is no longer honored by the
system, except if TeamsUpgradePolicy has mode=Lgeacy. Legacy mode is being deprecated and granting
mode=Legacy is now blocked. Customers that are still using Legacy mode must update their configurations to use
a mode other than Legacy.
For comprehensive documentation on this policy and its settings, see Migration and interoperability guidance for
organizations using Teams together with Skype for Business.

EXAMPLES
-------------------------- Example 1 --------------------------

PS C:\> Remove-CsTeamsInteropPolicy -identity MyCustomInteropPolicy

Removes the customer policy instance named MyCustomInteropPolicy.

PARAMETERS
-Identity
The name of the policy instance to be removed.
Type: Object
Parameter Sets: (All)
Aliases:
Applicable: Skype for Business Online

Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: cf
Applicable: Skype for Business Online

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
{{Fill Force Description}}

Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Applicable: Skype for Business Online

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Object
Parameter Sets: (All)
Aliases:
Applicable: Skype for Business Online

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: SwitchParameter
Parameter Sets: (All)
Aliases: wi
Applicable: Skype for Business Online

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Applicable: Skype for Business Online

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

INPUTS
Microsoft.Rtc.Management.Xds.XdsIdentity

OUTPUTS
System.Object

NOTES
This policy has been deprecated and is being removed from the system. Customters should use
TeamsUpgradePolicy to control interop and routing.

RELATED LINKS
Migration and interoperability guidance for organizations using Teams together with Skype for Business
minutes to read • Edit Online

Remove-CsTeamsMeetingBroadcastPolicy
In ths Article

Remove-CsTeamsMeetingBroadcastPolicy [-Identity] <XdsIdentity> [-Tenant <guid>] [-Force] [-WhatIf] [-Confirm]


[<CommonParameters>]

Syntax
Remove-CsTeamsMeetingBroadcastPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use
this cmdlet to delete an existing policy.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppress all non-fatal errors when running this command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be removed. Policies can be configured at the global or per-user scopes. To
remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed.
Instead, all the policy properties will be reset to their default values.)
To remove a per-user policy, use syntax similar to this: -Identity SalesPolicy.
Wildcards are not allowed when specifying an Identity.

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Not applicable to online service.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object
minutes to read • Edit Online

Remove-CsTeamsMeetingPolicy
In ths Article

Remove-CsTeamsMeetingPolicy [-Identity] <XdsIdentity> [-Tenant <guid>] [-Force] [-WhatIf] [-Confirm]


[<CommonParameters>]

Syntax
Remove-CsTeamsMeetingPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Deletes a previously created TeamsMeetingPolicy. Any users with no explicitly assigned policies will then fall back
to the default policy in the organization. You cannot delete the global policy from the organization.

Examples
Example 1

PS C:\> Remove-CsTeamsMeetingPolicy -Identity StudentMeetingPolicy

In the example shown above, the command will delete the student meeting policy from the organization's list of
policies and remove all assignments of this policy from users who have had the policy assigned.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity
global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to
their default values.) To remove a custom policy, use this syntax: -Identity StudentMeetingPolicy .

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object
minutes to read • Edit Online

Remove-CsTeamsMessagingPolicy
In ths Article

Deletes a custom messaging policy. Teams messaging policies determine the features and capabilities that can be
used in messaging within the teams client.

Syntax
Remove-CsTeamsMessagingPolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Deletes a previously created TeamsMessagingPolicy. Any users with no explicitly assigned policies will then fall
back to the default policy in the organization. You cannot delete the global policy from the organization.

Examples
Example 1

PS C:\> Remove-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy

In the example shown above, the command will delete the student messaging policy from the organization's list of
policies.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
Unique identifier for the teams messaging policy to be removed. To remove the global policy, use this syntax: -
Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be
reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMessagingPolicy .

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object
minutes to read • Edit Online

Remove-CsTeamsUpgradePolicy
In ths Article

In on-premises deployments of Skype for Business Server, TeamsUpgradePolicy enables adminstrators to control
whether users see a notification in their Skype for Business client of a pending upgrade to Teams. In addition, when
this policy is assigned to a user, administrators can optionally have Win32 versions of Skype for Business clients
silently download the Teams app based on the value of TeamsUpgradeConfiguration.

Syntax
Remove-CsTeamsUpgradePolicy [-Identity] <XdsIdentity>

Description
In on-premises deployments of Skype for Business Server, TeamsUpgradePolicy enables adminstrators to control
whether users see a notification of a pending upgrade to Teams in their Skype for Business client. The Remove-
CsTeamsUpgradePolicy lets the adminstrator remove instances of TeamsUpgradePolicy that were previously
created by the administrator.
Instances of TeamsUpgradePolicy created on-premises will not apply to any users that are already homed online.
This cmdlet cannot be used to remove the built-in instances of TeamsUpgradePolicy provided in Office 365. There
is no Remove-CsTeamsUpgradePolicy cmdlet for the online environment by design.

Examples
Example 1

PS C:\> Remove-CsTeamsUpgradePolicy -Identity Site:Redmond1

This removes the TeamsUpgradePolicy for site named Redmond1.

Parameters
-Identity
The identity of the policy. To specify the global policy for the organization, use "global". To specify a specific site, use
"site:" where is the name of the site. To specfy a policy that can be assigned as needed to any users, simply specify a
name of your choosing.

Type: XdsIdentity
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
Inputs
Microsoft.Rtc.Management.Xds.XdsIdentity

Outputs
System.Object

Related Links
Migration and interoperability guidance for organizations using Teams together with Skype for Business
Grant-CsTeamsUpgradePolicy
Get-CsTeamsUpgradePolicy
New -CsTeamsUpgradePolicy
Remove-CsTeamsUpgradePolicy
Set-CsTeamsUpgradePolicy
Get-CsTeamsUpgradeConfiguration
Set-CsTeamsUpgradeConfiguration
minutes to read • Edit Online

Remove-CsTelemetryConfiguration
In ths Article

Use the `Remove-CsTelemetryConfiguration` cmdlet to remove an existing telemetry configuration.


UNRESOLVED_TOKEN_VAL (PS_TelemetryDataStatement)

Syntax
Remove-CsTelemetryConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
For privacy information, see the Skype for Business Privacy Statement (http://go.microsoft.com/fwlink/?
LinkID=517480&clcid=0x409).

Examples
-------------------------- Example 1 --------------------------

Remove-CsTelemetryConfiguration -Identity Site:Redmond

This example removes the telemetry configuration for the Redmond site.
-------------------------- Example 2 --------------------------

Get-CsTelemetryConfiguration -Filter "Site:*" | Remove-CsTelemetryConfiguration

This example uses the Get-CsTelemetryConfiguration cmdlet in combination with the Filter parameter to select the
telemetry configurations that are configured at the site level and then pipelines them to the
Remove-CsTelemetryConfiguration cmdlet for removal. The result is that all "Site" scoped telemetry configurations
are removed.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier that includes the scope of the telemetry configuration. Telemetry configurations can be scoped
at the Global, Site, or Service level. For example, "site:Redmond" (for site). The format of the service scope is
"Service:<Identity>", where identity is derived from the topology. You can use the following commands to identify
the relevant services.
Get-CsService -WebServer | fl Identity

Get-CsService -PoolFqdn \<pool\> | fl Identity

The first command will give you all of the WebServices in the topology, regardless of the pool. The second will give
you all of the services on the pool, regardless of their role. You can combine the two commands to zero in on a
single role in a single pool.
The Global configuration can't be deleted. Specifying the Global configuration will return it to the default Global
settings.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
This cmdlet takes pipeline input of the Get-CsTelemetryConfiguration cmdlet as shown in Example 2.

Outputs
None.
minutes to read • Edit Online

Remove-CsTenantDialPlan
In ths Article

Use the `Remove-CsTenantDialPlan` cmdlet to remove a tenant dial plan.

Syntax
Remove-CsTenantDialPlan [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
The Remove-CsTenantDialPlan cmdlet removes an existing tenant dial plan (also known as a location profile). Tenant
dial plans provide required information to allow Enterprise Voice users to make telephone calls. The Conferencing
Attendant application also uses tenant dial plans for dial-in conferencing. A tenant dial plan determines such things
as which normalization rules are applied and whether a prefix must be dialed for external calls.
Removing a tenant dial plan also removes any associated normalization rules. If no tenant dial plan is assigned to
an organization, the Global dial plan is used.

Examples
-------------------------- Example 1 --------------------------

Remove-CsTenantDialPlan -Identity Vt1TenantDialPlan2

This example removes the Vt1TenantDialPlan2.

Parameters
-Confirm
The Confirm parameter prompts you for confirmation before the command is executed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force parameter suppresses any confirmation prompts that are otherwise displayed before the changes are
made.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter is the unique identifier of the tenant dial plan to remove.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" . You can find your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf parameter describes what would happen if you executed the command, without actually executing the
command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Remove-CsTenantUpdateTimeWindow
In ths Article

Use the `Remove-CsTenantUpdateTimeWindow` cmdlet to remove a previously specified tenant update time
window.

Syntax
Remove-CsTenantUpdateTimeWindow [-Tenant <Guid>] [-Identity] <XdsGlobalRelativeIdentity> [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Tenant update time windows are created, retrieved, modified and deleted by the CsTenantUpdateTimeWindow
cmdlet group (New, Get, Set and Remove). The tenant update time windows can be reviewed in your hybrid
configuration by using the Get-CsTenantHybridConfiguration cmdlet. However, you can't create or modify tenant
update time windows through the CsTenantHybridConfiguration cmdlets. You must use the
CsTenantUpdateTimeWindow cmdlets to manage tenant update time windows.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned, run the following
command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<CmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Remove-CsTenantUpdateTimeWindow -Identity "AlwaysOn"

This example removes the tenant update time window.

Parameters
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the identity of the tenant update time window.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Remove-CsTestDevice
In ths Article

Removes the specified device update management test device. Test devices provide a way for administrators to test
firmware updates before those updates are distributed to all the devices in an organization. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsTestDevice [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
By identifying specific Skype for Business-compatible phones or other devices as test devices, administrators can
verify and approve firmware updates before those updates are rolled out to all the relevant devices in the
organization. When device update rules are imported to Skype for Business Server, they are marked as "pending,"
which means that the updates corresponding to these rules will not automatically be downloaded and installed by
the affected devices.
Instead, these pending rules will be downloaded and installed by any relevant test devices. That's the idea behind
test devices: new device update rules are automatically applied to test devices, giving administrators the
opportunity to verify that the firmware updates work as expected. If they do, those administrators can then mark
the rules as approved; approved rules are then downloaded and installed by all the relevant devices in the
organization.
Test devices are hardware devices that run Skype for Business. These devices are created by using the
New-CsTestDevice cmdlet. Once created, the devices can later be removed by running the Remove-CsTestDevice
cmdlet. Note that removing the device as a test device does not affect the actual device itself; for example, your
Skype for Business-compatible phone can still be used to access Skype for Business Server. The only difference is
that, because the device is no longer a test device, it will no longer download device update rules that are in the
pending state. Instead, the device will wait until the rules have been approved before downloading and installing
them.
The Remove-CsTestDevice cmdlet can be used to remove individual test devices configured at either the global or
site scope. You can also use the cmdlet to remove all the test devices configured for a given scope.

Examples
-------------------------- Example 1 ------------------------

Remove-CsTestDevice -Identity site:Redmond

Example 1 removes all the test devices from the Redmond site. This will remove the device collection as well as the
individual test devices.
-------------------------- Example 2 ------------------------

Get-CsTestDevice | Remove-CsTestDevice

The command shown in Example 2 removes all the test devices configured for use in the organization; this is done
by using the cmdlet to return all the test device collections and then piping all of those items to the
Remove-CsTestDevice cmdlet. Note that the global test device collection cannot be removed; however, this command
will delete all the individual test devices configured at the global level.
-------------------------- Example 3 ------------------------

Get-CsTestDevice -Filter "site:" | Remove-CsTestDevice

In Example 3, all the test devices configured at the site scope are removed. To carry out this task, the
Get-CsTestDevice cmdlet and the Filter parameter are used to return all the test devices that have an Identity that
begins with the string value "site:". This filtered collection is then piped to the Remove-CsTestDevice cmdlet, which
deletes all the items in the collection.
-------------------------- Example 4 ------------------------

Get-CsTestDevice | Where-Object {$_.Name -match "LG-Nortel Phone"} | Remove-CsTestDevice

The command shown in Example 4 deletes all the LG -Nortel Phone test devices. To do this, the command first calls
the Get-CsTestDevice cmdlet to return all the test devices configured for use in the organization. That information
is then piped to the Where-Object cmdlet, which uses the -match operator to return any devices that have the string
value "LG -Nortel" anywhere in the Name property. Any test device meeting that criterion is then deleted by using
the Remove-CsTestDevice cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the test device to be removed. To remove a specific device, include both the scope (for
example, site:Redmond) and the device name; for example:
-Identity "site:Redmond/UCPhoneTest"

To remove all the devices from a particular site use syntax similar to this:
-Identity "site:Redmond"

Test devices can also be removed from the global scope. The global test device collection itself cannot be removed;
however, the following command will delete all the devices stored in the global collection:
Remove-CsTestDevice -Identity global

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.TestDevice object. The Remove-CsTestDevice
cmdlet accepts pipelined input of the test device object.

Outputs
The Remove-CsTestDevice cmdlet does not return a value or object. Instead, the cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.TestDevice object.

Related Links
Get-CsTestDevice
New -CsTestDevice
Set-CsTestDevice
minutes to read • Edit Online

Remove-CsTestUserCredential
In ths Article

Removes the specified user from the set of users configured as watcher node test users. Watcher nodes are
computers that periodically use Microsoft System Center Operations Manager and Skype for Business Server
synthetic transactions to verify that Skype for Business Server components are working as expected. This cmdlet
was introduced in Lync Server 2013.

Syntax
Remove-CsTestUserCredential [-SipAddress] <String> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
If you are using System Center Operations Manager in conjunction with Skype for Business Server, you have the
option of configuring "watcher node" computers. Watcher nodes are computers that periodically (and
automatically) run synthetic transactions. Synthetic transactions are cmdlets that test various features of Skype for
Business Server; for example, there are synthetic transactions that verify that users can register with Skype for
Business Server; that users can exchange instant messages and presence information using Skype for Business
Server; that users can conduct data collaboration and application sharing conferences; and that users can make
phone calls across the public switched telephone network. As noted, these synthetic transactions run periodically
and, if they fail, issue alerts notifying administrators that the system might be experiencing difficulties.
Many synthetic transactions require test users; for example, you cannot test the ability of two users to exchange
instant messages unless you have a pair of user accounts and you attempt to exchange instant messages using
those accounts. When you configure a watcher node you must assign at least two test users to that node. These test
users can be any valid Active Directory user accounts that have been enabled for Skype for Business Server and
have been registered as test accounts. Accounts are registered as test accounts by using the
Set-CsTestUserCredential cmdlet. If you later decide not to use an account as a test account you can unregister the
by using the Remove-CsTestUserCredential cmdlet. This cmdlet simply prevents the account from being used as a
watcher node test account; it does not delete, disable, or otherwise modify the account.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsTestUserCredential cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsTestUserCredential "sip:kenmyer@litwareinc.com"

The command shown in Example 1 removes the user with the SIP address sip:kenmyer@litwareinc.com from the
collection of users configured as watcher node test users.
-------------------------- Example 2 --------------------------
$ErrorActionPreference = "SilentlyContinue"

Get-CsUser | ForEach-Object {Remove-CsTestUserCredential -SipAddress $_.SipAddress}

$ErrorActionPreference = "Continue"

The commands shown in Example 2 remove all the users who have configured as watcher node test users. (Note
that this does not delete the user accounts; it merely deletes their status as watcher node test users.) To do this, the
first command in the example sets the value of the Windows PowerShell $ErrorActionPreference variable to
"SilentlyContinue"; this suppresses the display of an error message that would otherwise appear any time the
Remove-CsTestUserCredential cmdlet tried to remove test credentials from user who has not been configured as a
watcher node test user.
With error messages suppressed, the second command in the example uses the Get-CsUser cmdlet to return a
collection of all the users who have been enabled for Skype for Business Server. This collection is then piped to the
ForEach-Object cmdlet. The ForEach-Object cmdlet loops through each user account in the collection, running the
Remove-CsTestUserCredential cmdlet against each account in order to remove that user as a watcher node test user.

The final command in the example resets the value of $ErrorActionPreference to "Continue".

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
SIP address of the account whose test user credentials are being removed. For example:
-SipAddress "sip:kenmyer@litwareinc.com"

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Remove-CsTestUserCredential cmdlet does not accept pipelined input.

Outputs
None. Instead, the Remove-CsTestUserCredential cmdlet deletes existing instances of the
System.Management.Automation.PSCredential object.

Related Links
Get-CsTestUserCredential
Set-CsTestUserCredential
minutes to read • Edit Online

Remove-CsThirdPartyVideoSystem
In ths Article

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.

Syntax
Remove-CsThirdPartyVideoSystem [-Identity] <UserIdParameter> [-Confirm] [-WhatIf] [<CommonParameters>]

Description
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably
audio and video). In Skype for Business Server, 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. VTC contact objects can be created by using the New-CsThirdPartyVideoSystem cmdlet. These contact
objects can later be deleted by using the Remove-CsThirdPartyVideoSystem cmdlet.

Examples
-------------------------- Example 1 --------------------------

Remove-CsThirdPartyVideoSystem -Identity "CN={ce84964a-c4da-4622-ad34-


c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com"

The command shown in Example 1 removes the third-party video system that has the Identity CN={ce84964a-
c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com. Video system identities can be returned
by using the Get-CsThirdPartyVideoSystem cmdlet.
-------------------------- Example 2 --------------------------

Get-CsThirdPartyVideoSystem -Filter {DisplayName -eq "Redmond Video System"} | Remove-CsThirdPartyVideoSystem

In Example 2, the Remove-CsThirdPartyVideoSystem cmdlet is used to delete the video system that has the Active
Directory display name Redmond Video System. To do this, the command first uses Get-CsThirdPartyVideoSystem
and the Filter parameter to retrieve the Redmond Video System contact object (and does this without having to
specify an Identity like CN={ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com.)
That contact object is then piped to and deleted by, the Remove-CsThirdPartyVideoSystem cmdlet.
-------------------------- Example 3 --------------------------

Get-CsThirdPartyVideoSystem | Remove-CsThirdPartyVideoSystem
Example 3 removes all the third-party video systems configured for use in the organization. To do this, the
command first uses the Get-CsThirdPartyVideoSystem cmdlet to return a collection of all the third-party video
systems. Those video systems are then piped to and removed by, the Remove-CsThirdPartyVideoSystem cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the third party video system to be removed. Video systems are identified by using the Active
Directory distinguished name (DN ) of the associated contact object. By default, these contacts use a globally unique
identifier (GUID ) as their common name; that means video systems will typically have an Identity similar to this:
CN={ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com. Because of that you
might find it easier to retrieve video systems by using the Get-CsThirdPartyVideoSystem cmdlet and then piping the
returned objects to the Remove-CsThirdPartyVideoSystem cmdlet.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsThirdPartyVideoSystem cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADThirdPartyVideoSystemContact object.

Outputs
None. The Remove-CsThirdPartyVideoSystem cmdlet does not return any objects or data.

Related Links
Get-CsThirdPartyVideoSystem
Move-CsThirdPartyVideoSystem
New -CsThirdPartyVideoSystem
Set-CsThirdPartyVideoSystem
minutes to read • Edit Online

Remove-CsThirdPartyVideoSystemPolicy
In ths Article

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.

Syntax
Remove-CsThirdPartyVideoSystemPolicy [-Identity] <XdsIdentity> [-Confirm] [-Force] [-Tenant <Guid>] [-WhatIf]
[<CommonParameters>]

Description
Third-party video systems are VTC devices that provide remote users with telepresence capabilities (most notably
audio and video). In Skype for Business Server, 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.
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 prevent 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. The
Remove-CsThirdPartyVideoSystem cmdlet provides a way for administrators to remove any third-party video system
policies that have been created at the site or the per-user scope. When a site policy is deleted, VTC devices that
were previously managed by that policy will fall under the jurisdiction of the global policy. When a per-user policy
is deleted, VTC devices previously managed by that policy will be managed by their site policy. If the device site
does not have a site policy then those devices will be managed by using the global policy.
Note that this cmdlet can also be run against the global third-party video system policy. However, the cmdlet will
not actually delete the global policy; Skype for Business Server does not allow global policies to be deleted. Instead,
the properties within the global policy will be reset to their default values. In this case, that means that the
SupportsSendingLowResolution property will be set to True ($True).

Examples
-------------------------- Example 1 --------------------------

Remove-CsThirdPartyVideoSystemPolicy -Identity "RedmondVideoSystemPolicy

The command shown in Example 1 removes the per-user third-party video system policy with the Identity
RedmondVideoSystemPolicy.
-------------------------- Example 2 --------------------------
Get-CsThirdPartyVideoSystemPolicy | Remove-CsThirdPartyVideoSystemPolicy

In Example 2, all the third-party video system policies configured for use in the organization are deleted. This is
done by first using the Get-CsThirdPartyVideoSystemPolicy to return a collection of all the video system policies; that
collection is then piped to and deleted by, the Remove-CsThirdPartyVideoSystemPolicy . Note that the global policy will
not actually be deleted; Skype for Business Server does not allow you to delete global policies. However, all the
properties within the global policy will be reset to their default values.
-------------------------- Example 3 --------------------------

Get-CsThirdPartyVideoSystemPolicy -Filter "site:*" | Remove-CsThirdPartyVideoSystemPolicy

Example 3 deletes all the third-party video system policies configured at the site scope. To do this,
Get-CsThirdPartyVideoSystemPolicy is called along with the Filter parameter and the filter value "site:*"; this limits
the returned data to policies configured at the site scope. Those policies are then piped to the
Remove-CsThirdPartyVideoSystemPolicy cmdlet, which deletes all the policies configured at the site scope.

Parameters
-Confirm
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identity assigned to the policy when it was created. Third party video system policies can be assigned at the
global, site, or per-user scope. To refer to the global instance, use this syntax:
-Identity "global"

Keep in mind that you cannot actually remove the global policy. If you run Remove-CsThirdPartyVideoSystemPolicy
against the global policy, the policy will not be deleted. Instead, all the properties in the policy will be reset to their
default values.
To refer to a policy at the site scope, use syntax similar to this:
-Identity "site:Redmond"
To refer to a policy at the per-user scope, use syntax similar to the following:
-Identity "RedmondVideoSystemPolicy"

Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the third party video system
policy being removed. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsThirdPartyVideoSystemPolicy cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ThirdPartyVideoSystem.ThirdPartyVideoSystemPolicy object

Outputs
None. Instead, the Remove-CsThirdPartyVideoSystemPolicy cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ThirdPartyVideoSystem.ThirdPartyVideoSystemPolicy object.

Related Links
Get-CsThirdPartyVideoSystemPolicy
Grant-CsThirdPartyVideoSystemPolicy
New -CsThirdPartyVideoSystemPolicy
Set-CsThirdPartyVideoSystemPolicy
minutes to read • Edit Online

Remove-CsTrunkConfiguration
In ths Article

Removes an existing trunk configuration that describes the settings for a trunking peer entity such as a public
switched telephone network (PSTN ) gateway, IP -public branch exchange (PBX), or Session Border Controller (SBC )
at the service provider. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsTrunkConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Use this cmdlet to remove a trunking configuration applicable to PSTN gateway entities. Each configuration
contains specific settings for a trunking peer entity such as a PSTN gateway, IP -PBX, or SBC at the service provider.
These settings configure such things as whether media bypass is enabled on this trunk, whether real-time transport
control protocol (RTCP ) packets are sent under certain conditions, and whether to require secure real-time protocol
(SRTP ) encryption.

Note that if you call the Remove-CsTrunkConfiguration cmdlet on the Global configuration, that trunk configuration
will not be removed. Instead the configuration will be "reset" and all custom settings will be replaced with default
values.

Examples
-------------------------- Example 1 ------------------------

Remove-CsTrunkConfiguration -Identity site:Redmond

This example removes the trunk configuration with the Identity site:Redmond.
-------------------------- Example 2 ------------------------

Get-CsTrunkConfiguration -Filter site:* | Remove-CsTrunkConfiguration

Example 2 removes all trunk configurations defined at the site level. The first part of the command is a call to the
Get-CsTrunkConfiguration cmdlet that uses the Filter parameter to retrieve all trunk configurations with an Identity
beginning with site: (that is, all trunk configurations defined at the site level). This collection of configurations is
then piped to the Remove-CsTrunkConfiguration cmdlet, which removes each object in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the trunk configuration you want to remove.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TrunkConfiguration object. Accepts
pipelined input of trunk configuration objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TrunkConfiguration.

Related Links
New -CsTrunkConfiguration
Set-CsTrunkConfiguration
Get-CsTrunkConfiguration
Test-CsTrunkConfiguration
minutes to read • Edit Online

Remove-CsTrustedApplication
In ths Article

Removes a trusted application from the associated trusted service. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsTrustedApplication [-Identity] <ExternalApplicationIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
A trusted application is an application developed by a third party that is given trusted status to run as part of Skype
for Business Server but that is not a built-in part of the product. This cmdlet removes a trusted application from a
trusted application pool. Note that the application itself is not deleted, only the association with the trusted
application pool and the trusted service is removed.
When you use this cmdlet to remove a trusted application, you must supply a value for the Identity parameter. The
Identity is the fully qualified domain name (FQDN ) of the pool on which the application is homed followed by a
slash (/) followed by the application ID. For example, TrustPool.litwareinc.com/tapp2, where
TrustPool.litwareinc.com is the pool FQDN and tapp2 is the application ID. Note that if you view an existing
application by calling the Get-CsTrustedApplication cmdlet you'll see an ID that looks more like this:
TrustPool.litwareinc.com/urn:application:tapp2. Notice the prefix urn:application: before the application name
(tapp2). While this prefix is part of the Identity, it's not required when you specify the value for the Identity
parameter.

Examples
-------------------------- Example 1 ------------------------

Remove-CsTrustedApplication -Identity TrustPool.litwareinc.com/tapp2

This example removes the trusted application with the Identity TrustPool.litwareinc.com/tapp2 from the associated
trusted service.
-------------------------- Example 2 ------------------------

Get-CsTrustedApplication -Filter *trust* | Remove-CsTrustedApplication

Example 2 removes all trusted applications that have identities that include the string "trust". The command begins
with a call to the Get-CsTrustedApplication cmdlet, passing a Filter value of trust. This command will retrieve all
trusted applications with the string trust anywhere within the Identity. The collection of trusted applications that is
retrieved is then piped to the Remove-CsTrustedApplication cmdlet, which removes each one as a trusted
application. (Note that the application itself is not deleted; only the association with the trusted application pool and
the trusted service is removed.)

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the trusted application to be removed from the trusted application pool. Identity values
must be entered in the format <pool FQDN>/<application ID>, where pool FQDN is the FQDN of the pool on
which the application resides and application ID is the name of the application.

Type: ExternalApplicationIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.DisplayTrustedApplication object. Accepts pipelined input of trusted application
objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.Xds.DisplayTrustedApplication.

Related Links
New -CsTrustedApplication
Set-CsTrustedApplication
Get-CsTrustedApplication
minutes to read • Edit Online

Remove-CsTrustedApplicationComputer
In ths Article

Removes a trusted application computer. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsTrustedApplicationComputer [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
It is recommended that the computers that are running trusted applications within a Skype for Business Server
deployment be added to a separate pool that is only for trusted applications. However, you can add trusted
application computers to an existing pool that is also used for other purposes. Use this cmdlet to remove a trusted
application computer.
When you use this cmdlet to remove a trusted application computer, it will be removed not only from the list of
trusted application computers but from the list of computers available on Skype for Business Server. In other
words, if you call the Get-CsTrustedApplicationComputer cmdlet or the Get-CsComputer cmdlet the computer will no
longer be listed. You cannot remove a trusted application computer if it's the only computer on the pool. If you want
to remove the only computer on a pool you must remove the entire pool (which can be done by calling the
Remove-CsTrustedApplicationPool cmdlet).

Examples
-------------------------- Example 1 ------------------------

Remove-CsTrustedApplicationComputer -Identity Trust1.litwareinc.com

This example removes the computer with the FQDN Trust1.litwareinc.com.


-------------------------- Example 2 ------------------------

Get-CsTrustedApplicationComputer -Filter Trust* | Remove-CsTrustedApplicationComputer

This example removes all trusted computers that have FQDNs beginning with the string Trust. The example begins
by calling the Get-CsTrustedApplicationComputer cmdlet, passing the Filter parameter the value Trust*. This will
retrieve all trusted application computers with an FQDN beginning with Trust and ending with any set of
characters. That collection of computers is then piped to the Remove-CsTrustedApplicationComputer cmdlet, which
removes each item (each computer) in the collection. Keep in mind that this won't remove the computers from a
pool if removing those computers would result in an empty pool.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The fully qualified domain name (FQDN ) of the computer to remove.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.DisplayComputer object. Accepts pipelined input of trusted application computer
objects.

Outputs
This cmdlet does not return a value. It removes an object of type Microsoft.Rtc.Management.Xds.DisplayComputer.

Related Links
New -CsTrustedApplicationComputer
Get-CsTrustedApplicationComputer
Remove-CsTrustedApplicationPool
Get-CsTrustedApplicationPool
minutes to read • Edit Online

Remove-CsTrustedApplicationEndpoint
In ths Article

Removes a trusted application endpoint. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsTrustedApplicationEndpoint [-Identity] <UserIdParameter> [-WhatIf] [-Confirm] [<CommonParameters>]

Description
A trusted application endpoint is an Active Directory contact object that enables routing of calls to a trusted
application. This cmdlet removes an existing endpoint contact object from Active Directory Domain Services.

Examples
-------------------------- Example 1 ------------------------

Remove-CsTrustedApplicationEndpoint -Identity "Endpoint 1"

This example removes the endpoint contact with the Identity (in this case the display name) Endpoint 1. Because
identities must be unique, this command will remove, at most, one endpoint.
-------------------------- Example 2 ------------------------

Get-CsTrustedApplicationEndpoint -ApplicationId tapp2 | Remove-CsTrustedApplicationEndpoint

This example removes all trusted application endpoints associated with the application tapp2. This is accomplished
by first calling the Get-CsTrustedApplicationEndpoint cmdlet and passing the ID tapp2 to the ApplicationId
parameter. This will return a collection of endpoints that are associated with the tapp2 trusted application. This
collection is then piped to the Remove-CsTrustedApplicationEndpoint cmdlet, which removes each endpoint in the
collection. Keep in mind that this call to the Get-CsTrustedApplicationEndpoint cmdlet could retrieve endpoints with
the application ID tapp2 from multiple pools, which would result in this command removing trusted application
endpoints from multiple pools.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity (the distinguished name of the contact), SIP address, or display name of the application endpoint to be
removed.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact object. Accepts pipelined input of
trusted application endpoint objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact.

Related Links
New -CsTrustedApplicationEndpoint
Set-CsTrustedApplicationEndpoint
Get-CsTrustedApplicationEndpoint
minutes to read • Edit Online

Remove-CsTrustedApplicationPool
In ths Article

Removes a pool that contains the computers that host trusted applications. This cmdlet was introduced in Lync
Server 2010.

Syntax
Remove-CsTrustedApplicationPool [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
It is recommended that the computers that are running trusted applications within a Skype for Business Server
deployment be added to a separate pool that is only for trusted applications. However, you can add trusted
application computers to an existing pool that is also used for other purposes. This cmdlet removes an existing
trusted application pool. However, you cannot remove a trusted application pool that does not have a Registrar
value. If the trusted application pool has not been assigned a Registrar, you must add a Registrar value with the
Set-CsTrustedApplicationPool cmdlet and then remove the pool.

Keep in mind that removing the pool also removes all computers, applications and application endpoints associated
with that pool.

Examples
-------------------------- Example 1 ------------------------

Remove-CsTrustedApplicationPool -Identity TrustPool.litwareinc.com

This example removes the pool with the FQDN TrustPool.litwareinc.com. We use the Identity parameter to specify
the FQDN of the pool we want to remove. Because identities are unique, this command will remove, at most, one
pool.
-------------------------- Example 2 ------------------------

Get-CsTrustedApplicationPool | Where-Object {$_.PoolFqdn -match "trust*"} | Remove-CsTrustedApplicationPool

This example removes all trusted pools where the FQDN of the pool begins with the string "trust". The first part of
the command is a call to the Get-CsTrustedApplicationPool cmdlet, which retrieves a collection of all trusted
application pools in your Skype for Business Server infrastructure. This collection is piped to the Where-Object
cmdlet. The Where-Object cmdlet checks each item in the collection to see whether the PoolFqdn matches the
wildcard string trust*. This will result in a collection of all trusted application pools with a PoolFqdn that begins with
the string trust followed by any character or characters. Finally, this collection is piped to the
Remove-CsTrustedApplicationPool cmdlet, which removes every item in the collection.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The fully qualified domain name (FQDN ) or service ID of the pool you want to remove.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.DisplayExternalServer object. Accepts pipelined input of trusted application pool
objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.Xds.DisplayExternalServer.
Related Links
New -CsTrustedApplicationPool
Set-CsTrustedApplicationPool
Get-CsTrustedApplicationPool
minutes to read • Edit Online

Remove-CsUCPhoneConfiguration
In ths Article

Removes the specified collection of UC phone configuration settings. These settings include such things as the
required security mode and whether the phone should automatically be locked after a specified period of inactivity.
This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsUCPhoneConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
UC phones represent the merging of the telephone and Skype for Business Server. UC phones use special
hardware (that is, a Skype for Business-compatible telephone) that can function as a Voice over Internet Protocol
(VoIP ) telephone. In addition, this hardware can also act as a Skype for Business-like endpoint: you can set your
current status; check the status of your Skype for Business contacts; search for new contacts and carry out many of
the other activities you are used to doing with Skype for Business.
Skype for Business Server ships with a number of cmdlets that enable you to manage UC phones; for example, you
can control such things as the minimum length of the personal identification number (PIN ) used to log on to the
phone and whether or not the phone will automatically lock itself after a specified period of inactivity.
Unified communications (UC ) phone configuration settings can be applied at either the global scope or at the site
scope. (Settings applied at the site scope take precedence over settings applied at the global scope.) When you first
install Skype for Business Server, a single set of UC phone configuration settings is created and applied at the
global scope. However, at any time after that you can use the New-CsUCPhoneConfiguration cmdlet to create a
collection of settings applied at the site scope. This lets you tailor UC phone management to the unique needs of
each individual site.
Settings created by using the cmdlet can later be removed by using the
New-CsUCPhoneConfiguration
Remove-CsUCPhoneConfiguration cmdlet. When you remove settings from a site the UC phones in that site are not
left unmanaged; instead, those phones will automatically come under the jurisdiction of the global settings.
You can also run the Remove-CsUCPhoneConfiguration cmdlet against the global settings. If you do that, however, the
global settings will not actually be removed: you cannot remove the global UC phone settings. Instead, the
properties in the global settings will be reset to their default values. For example, if you have changed the phone
lock time interval to 30 minutes, "removing" the global settings will reset the interval to the default value of 10
minutes.

Examples
-------------------------- Example 1 ------------------------

Remove-CsUCPhoneConfiguration -Identity site:Redmond


The command shown in Example 1 removes the UC phone configuration settings for the Redmond site (
-Identity site:Redmond ). When settings are removed from a site scope, users in that site will have their UC phones
governed by the global phone configuration settings.
-------------------------- Example 2 ------------------------

Get-CsUCPhoneConfiguration -Filter site:* | Remove-CsUCPhoneConfiguration

Example 2 removes all the UC phone settings that have been configured at the site scope. To do this, the command
first uses the Get-CsUCPhoneConfiguration cmdlet and the Filter parameter to return all the settings configured at
the site scope; the filter value "site:*" limits the returned data to settings where the Identity property (the only
property you can filter on) begins with the string value "site:". This filtered collection is then piped to the
Remove-CsUCPhoneConfiguration cmdlet, which removes each item in the collection.

-------------------------- Example 3 ------------------------

Get-CsUCPhoneConfiguration | Where-Object {$_.EnforcePhoneLock -eq $False} | Remove-CsUCPhoneConfiguration

In Example 3, all the UC phone settings that do not enforce phone locking are removed. To carry out this task, the
command first uses the Get-CsUCPhoneConfiguration cmdlet without any parameters in order to return a collection
of all the UC phone settings currently in use in the organization. This collection is piped to the Where-Object
cmdlet, which picks out only those settings where the EnforceLockProperty is equal to False. In turn, that filtered
collection is piped to the Remove-CsUCPhoneConfiguration cmdlet, which removes each item in the collection.
-------------------------- Example 4 ------------------------

Get-CsUCPhoneConfiguration | Where-Object {$_.SIPSecurityMode -ne "High"} | Remove-CsUCPhoneConfiguration

Example 4 deletes all the UC phone configuration settings where the SIP security mode is set to either Low or
Medium. To do this, the Get-CsUCPhoneConfiguration cmdlet is first called in order to return a collection of all the UC
phone settings configured for use in the organization. This collection is then piped to the Where-Object cmdlet,
which selects only those settings where the SIPSecurityMode property is set to either Low or Medium; this is done
by selecting those settings where the SIPSecurityMode is not equal to High. (There are three possible values for
SIPSecurityMode: Low, Medium, and High.) The filtered collection is then piped to the
Remove-CsUCPhoneConfiguration cmdlet, which deletes all the settings where SIPSecurityMode is not equal to High.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of UC phone configuration settings to be removed. To remove a site collection
use syntax similar to this:
-Identity "site:Redmond"

To remove (reset) the global collection, use the following syntax:


-Identity global

Note that you cannot use wildcards when specifying a policy Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.UcPhoneSettings object. The
Remove-CsUCPhoneConfiguration cmdlet accepts pipelined instances of the UC phone settings object.

Outputs
None. Instead, the cmdlet removes instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.UcPhoneSettings object.

Related Links
Get-CsUCPhoneConfiguration
New -CsUCPhoneConfiguration
Set-CsUCPhoneConfiguration
minutes to read • Edit Online

Remove-CsUnassignedNumber
In ths Article

Removes an existing range of unassigned numbers and the routing rules that apply to those numbers. This cmdlet
was introduced in Lync Server 2010.

Syntax
Remove-CsUnassignedNumber [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Unassigned numbers are phone numbers that have been assigned to an organization but that have not been
assigned to specific users or phones. Skype for Business Server can be set up to route calls to appropriate
destinations when an unassigned number is called. This cmdlet removes the settings that define that routing.

Examples
-------------------------- Example 1 --------------------------

Remove-CsUnassignedNumber -Identity UNSet1

In this example, the unassigned number settings with the Identity UNSet1 are removed.
-------------------------- Example 2 --------------------------

Get-CsUnassignedNumber | Where-Object {$_.AnnouncementName -match "Welcome"} | Remove-CsUnassignedNumber

Example 2 removes all unassigned number settings where the name of the assigned announcement contains the
string Welcome. The command begins with a call to the Get-CsUnassignedNumber cmdlet, which returns a collection
of all unassigned number settings. This collection is then passed to the Where-Object cmdlet, which narrows down
the collection to only those unassigned number settings with an AnnouncementName that includes (-match) the
string Welcome. Finally, the narrowed-down collection is passed to the Remove-CsUnassignedNumber cmdlet, which
removes everything left in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique name for the range of unassigned numbers you want to remove.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Voice.Helpers.DisplayAnnouncementVacantNumberRange object. Accepts pipelined
input of unassigned number objects.

Outputs
This cmdlet does not return a value. It removes an object of type
Microsoft.Rtc.Management.Voice.Helpers.DisplayAnnouncementVacantNumberRange.

Related Links
New -CsUnassignedNumber
Set-CsUnassignedNumber
Get-CsUnassignedNumber
Get-CsAnnouncement
Get-CsExUmContact
minutes to read • Edit Online

Remove-CsUserAcp
In ths Article

Removes one or more audio conferencing providers assigned to a user or group of users. This cmdlet was
introduced in Lync Server 2010.

Syntax
Remove-CsUserAcp [-Identity] <UserIdParameter> [-Name <String>] [-TollNumber <String>] [-PassThru] [-WhatIf]
[-Confirm] [-ParticipantPasscode <String>] [-AsJob] [<CommonParameters>]

Description
An audio conferencing provider is a third-party company that provides organizations with conferencing services.
Among other things, audio conferencing providers provide a way for users located off site and not connected to the
corporate network or the Internet, to participate in the audio portion of a conference or meeting. Audio
conferencing providers often provide high-end services such as live translation, transcription, and live per-
conference operator assistance.
Skype for Business Server does not allow for complete integration with audio conferencing providers. The
CsUserAcp cmdlets do enable administrators to set a phone number and passcode, and to configure other
information that can be used for audio conferencing provider integration any time a user schedules a meeting.
However, because these cmdlets were not designed for the on-premises version of Skype for Business Server
(instead, they are primarily intended for use with Skype for Business Online) no additional audio conferencing
provider integration is provided beyond assigning property values.
Any audio conferencing provider assigned to a user can later be removed by using the Remove-CsUserAcp cmdlet.
Calling the Remove-CsUserAcp cmdlet without any parameters (other than the Identity parameter, which indicates
the user account to be modified) removes all the audio conferencing providers assigned to a user. Alternatively, you
can use the optional parameters included with the Remove-CsUserAcp cmdlet to remove selected providers from a
user account. For example, this command finds the Ken Myer user account and removes all the audio conferencing
providers that have a Name equal to "Fabrikam ACP":
Remove-CsUserAcp -Identity "Ken Myer" -Name "Fabrikam ACP"

To provide finer-grained removal of audio conferencing providers, simply include additional parameters. For
example this command removes any audio conferencing providers that have the Name "Fabrikam ACP" and also
have a TollNumber equal to "14255551298" as follows:
Remove-CsUserAcp -Identity "Ken Myer" -Name "Fabrikam ACP" -TollNumber "14255551298"

Examples
-------------------------- Example 1 ------------------------
Remove-CsUserAcp -Identity "Ken Myer"

The command shown in Example 1 removes all the audio conferencing providers that have been assigned to the
user Ken Myer.
-------------------------- Example 2 ------------------------

Get-CsUser | Remove-CsUserAcp

Example 2 shows how you can remove all of the audio conferencing providers that have been assigned to all the
users enabled for Skype for Business Server. To do this, the command first uses the Get-CsUser cmdlet to retrieve a
collection of all the users who have been enabled for Skype for Business Server. That collection is then piped to the
Remove-CsUserAcp cmdlet, which removes all the audio conferencing providers that have been assigned to each user
in the collection.
-------------------------- Example 3 ------------------------

Remove-CsUserAcp -Identity "Ken Myer" -Name "Fabrikam ACP"

In Example 3, all the audio conferencing providers that have the Name "Fabrikam ACP" are removed from Ken
Myer's user account.
-------------------------- Example 4 ------------------------

Get-CsUserAcp | Where-Object {$_.AcpInfo -match "14255551298"} | Remove-CsUserAcp

Example 4 removes the audio conferencing provider that has the toll number "14255551298" from all the user
accounts that have been assigned an audio conferencing provider. To carry out this task, the command first uses the
Get-CsUserAcp cmdlet to return information about all the audio conferencing providers assigned to all your users.
This information is then piped to the Where-Object cmdlet, which selects only those accounts where the AcpInfo
property includes (-match) the telephone number "14255551298". This filtered collection is then piped to the
Remove-CsUserAcp cmdlet, which removes the corresponding audio conferencing provider from each account in the
filtered collection.

Parameters
-AsJob
{{Fill AsJob Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account from which the audio conferencing provider is to be removed. You can
specify a user's identity using one of four formats: 1) the user's SIP address; 2) the user's user principal name
(UPN ); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer)
and 4) the user's Active Directory Domain Services display name (for example, Ken Myer). User Identities can also
be reference by using the user's Active Directory distinguished name.
You can use the asterisk () wildcard character when using the Display Name as the user Identity. For example, the
Identity " Smith" returns all the users with a display name that ends with the string value " Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Name
Name of the audio conferencing provider. For example:
-Name "Fabrikam Conference Services"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ParticipantPasscode
Passcode required when connecting to a conference by using the audio conferencing provider. For example:
-PassCode "0712"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user who is having the audio
conferencing provider removed. By default, the Remove-CsUserAcp cmdlet does not pass objects through the
pipeline.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TollNumber
Non-toll-free phone number used for audio conferences. For example:
-TollNumber "14255551298"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Remove-CsUserAcp cmdlet accepts a
pipelined string value representing the Identity of a user account that has been enabled for Skype for Business
Server. The cmdlet also accepts pipelined instances of the Active Directory user object.

Outputs
None.

Related Links
Get-CsUserAcp
Set-CsUserAcp
minutes to read • Edit Online

Remove-CsUserReplicatorConfiguration
In ths Article

Removes the specified collection of User Replicator configuration settings. The User Replicator periodically
retrieves up-to-date user account information from Active Directory and then synchronizes the new information
with the current user data stored by Skype for Business Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsUserReplicatorConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Although Skype for Business Server maintains its own database of user accounts and user account data, Skype for
Business Server still relies on Active Directory as the ultimate source for user information. For example, when a
new Active Directory user account is created, you must supply basic information about the user account (such as
the Active Directory display name). However, when a user is enabled for Skype for Business Server you do not
need to specify a new display name. That's because Skype for Business Server uses the display name already
stored in Active Directory.
Of course, user account information, including the Active Directory display name, is subject to change over time.
For example, a user who gets married might change her last name and, in turn, need to change her display name as
well. In order to ensure that the Skype for Business Server database and Active Directory remain in synch, Skype
for Business Server must periodically connect to Active Directory, retrieve the latest user account updates and then
modify the Skype for Business Server user database accordingly. This synchronization between Active Directory
and Skype for Business Server is carried out by the User Replicator.
When you install Skype for Business Server global set of User Replicator configuration settings is created for you.
By default, these settings are used to manage the User Replicator on an organization-wide basis. Management of
the User Replicator consists of identifying the domains that Skype for Business Server needs to synch with and
indicating how often the User Replicator checks Active Directory for user account updates. By default, the User
Replicator discovers and synchs with all available domains. However, by using the AdDomainNamingContextList
property you can restrict synchronization to a specific set of domains: the domains that appear in the
AdDomainNamingContextList property.
You can also create additional collections at the service scope, but only if you are working with Skype for Business
Online.
If your needs change, you can use the Remove-CsUserReplicatorConfiguration cmdlet to remove the custom settings
created at the service scope. Note that you can also run this cmdlet against the global configuration settings. In that
case, however, the global settings will not be removed. Instead, all the properties within the global collection will be
reset to their default values. In the case of the User Replicator, that means erasing the list of domains that must be
synchronized with (thus causing the replicator to synch with all discoverable domains) and setting the replication
interval cycle to 1 minute.
Examples
-------------------------- Example 1 ------------------------

Remove-CsUserReplicatorConfiguration -Identity global

Example 1 resets the global User Replicator configuration settings.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the User Replicator configuration settings to be removed. To remove settings at the service
scope, use syntax similar to this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Note that you can only remove service-scoped setting if you are using Skype for Business Online. To reset the
global settings, use this syntax:
-Identity global

You cannot use wildcards when specifying an Identity.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.UserReplicatorConfiguration object. The
Remove-CsUserReplicatorConfiguration cmdlet accepts pipelined input of the User Replicator configuration object.

Outputs
None. Instead, the Remove-CsUserReplicatorConfiguration cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.UserReplicatorConfiguration object.

Related Links
Get-CsUserReplicatorConfiguration
New -CsUserReplicatorConfiguration
Set-CsUserReplicatorConfiguration
minutes to read • Edit Online

Remove-CsUserServicesConfiguration
In ths Article

Removes an existing collection of User Services configuration settings. The User Services service is used to help
maintain presence information and manage conferencing. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsUserServicesConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server relies on the User Services service to help maintain presence information for users and
to manage meetings and conferences. In turn, the CsUserServicesConfiguration cmdlets are used to administer
User Services configuration settings at the global, site and service scope. (Note that the only service that can host
User Services configuration settings is the User Services service itself.) These settings help determine such things
as the number of contacts a user can have, the number of meetings a user can have scheduled at any one time and
the length of time that a given meeting can remain active.
The Remove-CsUserServicesConfiguration cmdlet enables you to delete User Services configuration settings that
have been applied at the site or service scope. This cmdlet can also be run against the global collection. In that case,
however, the global settings will not be deleted; that's because the global settings cannot be deleted. Instead, all of
the properties within the global collection will be reset to their default values. For example, if you have changed the
MaxContacts value in the global settings to 500 and then run the Remove-CsUserServicesConfiguration cmdlet,
MaxContacts will be reset to the default value of 250.

Examples
-------------------------- Example 1 ------------------------

Remove-CsUserServicesConfiguration -Identity site:Redmond

The command shown in Example 1 removes the User Services configuration settings from the Redmond site (
-Identity site:Redmond ).

-------------------------- Example 2 ------------------------

Get-CsUserServicesConfiguration -Filter "service:*:" | Remove-CsUserServicesConfiguration

In Example 2, all the User Services configuration settings that have been applied at the service scope are deleted. To
do this, the command calls the Get-CsUserServicesConfiguration cmdlet along with the Filter parameter. The filter
value "service:*" limits returned data to settings configured at the service scope (that is, settings that have an
Identity that begins with the characters "service:"). This filtered collection is then piped to the
Remove-CsUserServicesConfiguration cmdlet, which deletes each item in the collection.
-------------------------- Example 3 ------------------------

Get-CsUserServicesConfiguration | Where-Object {$_.MaxContacts -gt 250} | Remove-CsUserServicesConfiguration

Example 3 removes all the User Services configuration settings that allow users to have more than 250 contacts. To
carry out this task, the command first calls the Get-CsUserServicesConfiguration cmdlet without any parameters in
order to return a collection of all the User Services configuration settings currently in use. This collection is the
piped to the Where-Object cmdlet, which selects only those settings where the value of the MaxContacts property is
greater than 250. Those settings are then piped to and removed by, the Remove-CsUserServicesConfiguration cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the User Services configuration settings to be removed. To delete settings configured at the
site scope, use syntax similar to this:
-Identity site:Redmond

To delete settings at the service level, use syntax like this:


-Identity service:UserServer:atl-cs-001.litwareinc.com

The Remove-CsUserServicesConfiguration cmdlet can also be run against the global collection. In that case, however,
the global collection will not be deleted. Instead, all the properties in that collection will be reset to their default
values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserServicesSettings object. The
Remove-CsUserServicesConfiguration cmdlet accepts pipelined instances of the User Services settings object.

Outputs
None. Instead, the Remove-CsUserServicesConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserServicesSettings object.

Related Links
Get-CsUserServicesConfiguration
New -CsUserServicesConfiguration
Set-CsUserServicesConfiguration
minutes to read • Edit Online

Remove-CsUserServicesPolicy
In ths Article

Deletes an existing User Services policy. User Services policies determine whether or not a user's contacts are
stored in Skype for Business Server or in the Unified Contact Store. The Unified Contact Store provides a way for
users to maintain a single set of contacts that can be accessed using Skype for Business, Microsoft Outlook and/or
Microsoft Outlook Web Access. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsUserServicesPolicy [-Identity] <XdsIdentity> [-Confirm] [-Force] [-Tenant <Guid>] [-WhatIf]
[<CommonParameters>]

Description
The unified contact store introduced in Lync Server 2013 gives administrators the option of storing a user's
contacts in Exchange instead of in Skype for Business Server; in turn that allows the user to access the same set of
contacts in Outlook and Outlook Web App as well as in Skype for Business. (Alternatively, you can continue to
store contacts in Skype for Business Server. In that case, users will have to maintain two separate sets of contacts:
one for use with Outlook and Outlook Web Access and one for use with Skype for Business.)
In order to take advantage of the unified contact store you must (among other things) assign the user a user
services policy that enables the use of the unified contact store. User service policies (which can be configured at
the global, site, or the per-user scope) contain only a single property: UcsAllowed. When this property is set to True
then (assuming all the other prerequisites have been met) the next time a user logs on to Skype for Business Server
his or her contacts will automatically be migrated to the unified contact store.
If this property is set to False this automatic migration will not take place. However, simply setting UcsAllowed will
not cause a user's contacts to be moved from the unified contact store back to Skype for Business Server. In order
to do that, you must first assign the user a user services policy that does not allow the use of the unified contact
store. After that, you must then use the Invoke-CsUcsRollback cmdlet to "manually" migrate the contacts from the
unified contact store back to Skype for Business Server.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsUserServicesPolicy cmdlet are
not available in the Skype for Business Server.

Examples
-------------------------- Example 1 --------------------------

Remove-CsUserServicesPolicy -Identity "RedmondUserServicesPolicy"

The command shown in Example 1 deletes the per-user User Services policy RedmondUserServicesPolicy.
-------------------------- Example 2 --------------------------
Get-CsUserServicesPolicy -Filter "site:*" | Remove-CsUserServicesPolicy

Example 2 deletes all the User Services policies configured at the site scope. To do this, the command first uses the
Get-CsUserServicesPolicy cmdlet and the Filter value to return a collection of all the policies configured at the site
scope; that's accomplished by using the filter value "site:*". The resulting collection is then piped to the
Remove-CsUserServicesPolicy cmdlet, which deletes each policy in the collection.

-------------------------- Example 3 --------------------------

Get-CsUserServicesPolicy | Where-Object {$_.UcsAllowed -eq $True} | Remove-CsUserServicesPolicy

In Example 3, all the User Services policies that allow the use of the Unified Contact Store are deleted. To carry out
this task, the command first calls the Get-CsUserServicesPolicy cmdlet without any parameters in order to return a
collection of all the User Services policies configured for use in the organization. That collection is then piped to the
Where-Object cmdlet, which picks out only those policies where the UcsAllowed property is equal to (-eq) True
($True). Those policies are then piped to and removed by, the Remove-CsUserServicesPolicy cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be deleted. To remove a policy configured at the site scope, use syntax similar to
this:
-Identity "site:Redmond"

To remove a policy configured at the service scope, use syntax similar to this:
-Identity "UserServer:atl-cs-001.litwareinc.com"

The User Server service is the only service that can host a user services policy.
Policies can also be removed at the per-user scope. To remove per-user policies, use syntax similar to this:
-Identity "RedmondUserServicesPolicy"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Removes the user services policy assigned to the specified Skype for Business Online tenant. When removing a
policy assigned to a tenant, you must also include the Identity parameter along with the parameter value "global":
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" -Identity "global"

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsUserServicesPolicy cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.UserServices.UserServicesPolicy object.

Outputs
None. Instead, the Remove-CsUserServicesPolicy cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.UserServices.UserServicesPolicy object.

Related Links
Get-CsUserServicesPolicy
Grant-CsUserServicesPolicy
New -CsUserServicesPolicy
Set-CsUserServicesPolicy
minutes to read • Edit Online

Remove-CsUserStoreBackupData
In ths Article

Removes outdated information from the specified user store. "Outdated information" refers user data from a
Registrar pool no longer paired with the specified user store. For example, suppose Pools A and B were once
paired; now, however, that association has been changed and Pools A and C are paired. When run against Pool A,
the `Remove-CsUserStoreBackupData` cmdlet will remove information about users from Pool B. This cmdlet was
introduced in Lync Server 2013.

Syntax
Remove-CsUserStoreBackupData -PoolFqdn <Fqdn> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
Skype for Business Server enables you to associate a pair of pools. When you do this, each pool maintains two sets
of user information: information about the users homed on the pool in question and information about the users
homed on the associated pool. Maintaining both sets of user information allows Pool B to register and service the
users from Pool A should Pool A need to be failed over.
If you later change the association between these two pools, the "extra" user data is not automatically deleted from
the two pools; for example, Pool A will continue to store user data for Pool B. (However, this data will no longer be
updated and replicated.) The Remove-CsUserStoreBackupData cmdlet enables you to delete the data from Pool B that
is no longer needed on Pool A.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsUserStoreBackupData cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsUserStoreBackupData -PoolFqdn "atl-cs-001.litwareinc.com"

The command shown in Example 1 removes outdated user store information stored by the pool
atl-cs-001.litwareinc.com and its associated backup pool.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the pool where "outdated" user information should be removed. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Remove-CsUserStoreBackupData cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Get-CsBackupServiceStatus
minutes to read • Edit Online

Remove-CsVideoInteropServerConfiguration
In ths Article

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.

Syntax
Remove-CsVideoInteropServerConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
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.
To enable the Video Interop Server (VIS ) you must use Topology Builder to define at least one VIS instance. Each
VIS instance will typically be associated with one or more Video Gateways. Video Gateways route traffic between
internal and external video devices such as an internal Skype for Business endpoint receiving video from an
external PBX supporting 3rd party video teleconferencing systems (VTCs). The Video Gateway and a VIS use a
Session Initiation Protocol (SIP ) trunk to connect video calls between external VTCs and internal endpoints.
You can manage the Video Interop Server (VIS ) by using VIS configuration settings and the
CsVideoInteropServerConfiguration cmdlets. These settings are used to enable or disable the enhanced video
experience (in which a single video stream is converted to multiple streams in order to accommodate the needs of
devices that use different frame rates or video resolutions).
By default, Skype for Business Server ships with a single, global collection of Video Interop Server configuration
settings. You can use the New-CsVideoInteropServerConfiguration cmdlet to create additional settings at the site or
the service scope (for the VIS service only.) These custom settings can later be removed by using the
Remove-CsVideoInteropServerConfiguration cmdlet. This cmdlet can also be run against the global collection of VIS
settings. The global collection will not be removed, but all the properties in the global collection will be reset to their
default values. Skype for Business Server does not allow you to delete the global settings.

Examples
-------------------------- Example 1 --------------------------

Remove-CsVideoInteropServerConfiguration -Identity "site:Redmond"

This example deletes the VIS configuration settings assigned to the Redmond site.
-------------------------- Example 2 --------------------------
Get-CsVideoInteropServerConfiguration -Filter "site:*" | Remove-CsVideoInteropServerConfiguration

This example deletes all the VIS settings that have been assigned to the site scope are deleted. The command calls
the Get-CsVideoInteropServerConfiguration and filters the configuration by using the Filter parameter value "site:*".
Those configuration objects are then piped to and deleted by, the Remove-CsVideoInteropServerConfiguration cmdlet.
-------------------------- Example 3 --------------------------

Get-CsVideoInteropServerConfiguration | Where-Object {$_.EnableEnhancedVideoExperience -eq $True} | Remove-


CsVideoInteropServerConfiguration

This example deletes all the VIS settings where the enhanced video experience has been enabled. The command
first calls Get-CsVideoInteropServerConfiguration to return a collection of all the VIS settings in use in the
organization. Those configuration objects then piped to the Where-Object cmdlet, which filters for VIS
configuration objects in which EnableEnhancedVideoExperience property has been set to True ($True). Those
configuration objects are then piped to and deleted by the Remove-CsVideoInteropServerConfiguration .

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identity assigned to the video interop service configuration settings when they were created. Video interop
settings can be assigned at the global, site, or service scope (for the VideoInteropServer service only). For example,
to remove settings configured at the site scope use the following syntax:
-Identity "site:Redmond"

Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. The
Remove-CsVideoInteropServerConfiguration cmdlet can be run against the global settings collection. However, the
global collection will not be deleted. Instead, all the properties within the collection will be reset to their default
values.
Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsVideoInteropServerConfiguration cmdlet accepts pipelined input of the
Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServer.VideoInteropServerConfiguration object.

Outputs
None. The Remove-CsVideoInteropServerConfiguration cmdlet deletes instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServer.VideoInteropServerConfiguration object.

Related Links
Get-CsVideoInteropServerConfiguration
New -CsVideoInteropServerConfiguration
Set-CsVideoInteropServerConfiguration
minutes to read • Edit Online

Remove-
CsVideoInteropServerSyntheticTransactionConfiguration
In ths Article

Use the `Remove-CsVideoInteropServerSyntheticTransactionConfiguration` cmdlet to remove an existing Video


Interop (VIS ) server synthetic transaction configuration.

Syntax
Remove-CsVideoInteropServerSyntheticTransactionConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force]
[-WhatIf] [<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Remove-CsVideoInteropServerSyntheticTransactionConfiguration -Identity "site:Redmond"

This example removes the Video Interop Server synthetic transaction configuration for the Redmond site.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Identity of the VIS configuration to be removed. VIS settings can be configured at the global, site, or service scope
(for the VideoInteropServer service only). To refer to the global instance, use this syntax:

-Identity "Global"

Use this syntax to refer to a collection at the site scope:


-Identity "site:Redmond"

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Accepts pipelined instances of the VideoInteropServerSyntheticTransactionConfiguration object.

Outputs
None

Related Links
Get-CsVideoInteropServerSyntheticTransactionConfiguration
Set-CsVideoInteropServerSyntheticTransactionConfiguration
New -CsVideoInteropServerSyntheticTransactionConfiguration
Test-CsP2PVideoInteropServerSipTrunkAV
minutes to read • Edit Online

Remove-CsVideoInteropServiceProvider
In ths Article

Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The
CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the
connection to the provider.

Description
Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The
CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the
connection to the provider.
Use the Remove-CsVideoInteropServiceProvider to remove all provider information about a provider that your
organization no longer uses. The only input is Identity - the provider you wish to remove.

Parameters
-Identity
Specify the VideoInteropServiceProvider to be removed.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.XdsGlobalRelativeIdentity

Outputs
System.Object
minutes to read • Edit Online

Remove-CsVideoTrunkConfiguration
In ths Article

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.

Syntax
Remove-CsVideoTrunkConfiguration [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The Video Interop Server (VIS ) in Skype for Business Server incorporates 3rd party video teleconferencing
systems (VTCs) into your Skype for Business Server 2015 infrastructure. The VIS is a service that runs on a
standalone pool and cannot be co-located on an FE pool.
To enable the Video Interop Server, you must use Topology Builder to define at least one VIS instance. Each VIS
instance will typically be associated with one or more Video Gateways. Video Gateways route traffic between
internal and third party video devices such as an internal Skype endpoint receiving video from an third 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 third party VTCs and internal
endpoints.
Video Trunks settings can be managed by using the CsVideoTrunkConfiguration cmdlets. These settings are used
to manage the following Video Trunk characteristics.
RTCP for active calls
RTCP for calls on hold
Secure Real-time Transport Protocol (SRTP ) use when Transport Layer Security (TLS ) is used for the SIP signaling
Session timers usage on the Video Interop Server (VIS ) for dialogs associated with a Video Trunk
By default, Skype for Business Server ships with a single, global collection of Video Trunk configuration settings.
However, administrators can use the New-CsVideoTrunkConfiguration cmdlet to create additional settings at the site
or the service scope (for the Video Gateway service only).

Examples
-------------------------- Example 1 --------------------------

Remove-CsVideoTrunkConfiguration -Identity "site:Seattle"


This example removes the Video Trunk configuration settings scoped to the Seattle site.
-------------------------- Example 2 --------------------------

Get-CsVideoTrunkConfiguration -Filter "site:*" | Remove-CsVideoTrunkConfiguration

This example removes all the configuration settings that have been scoped at the site level. The command first calls
the Get-CsVideoTrunkConfiguration cmdlet along with the Filter parameter that limits the returns to configurations
scoped at the site level. Those configuration objects are then piped to, and removed by, the
Remove-CsVideoTrunkConfiguration cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The Identity parameter specifies the Video Trunk configuration to remove. Video Trunk configuration settings can
be configured at the global, site, or service scope (for the VideoGateway service only). To refer to the global
instance, use this syntax: -Identity "global" To refer to a collection at the site scope: -Identity "site:Redmond"

Wildcard characters such as the asterisk (*) cannot be used with the Identity parameter.
The Remove-CsVideoTrunkConfiguration cmdlet can be run against the single global collection of settings. However,
that single global collection will not be deleted. Instead, all the properties within the collection will be reset to their
default values.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsVideoTrunkConfiguration cmdlet accepts pipelined input of the
Microsoft.Rtc.Management.WritableConfig.Settings.VideoTrunkConfiguration object.

Outputs
None. The Remove-CsVideoTrunkConfiguration cmdlet removes specified
Microsoft.Rtc.Management.WritableConfig.Settings.VideoTrunkConfiguration objects.

Related Links
Get-CsVideoTrunkConfiguration
New -CsVideoTrunkConfiguration
Set-CsVideoTrunkConfiguration
minutes to read • Edit Online

Remove-CsVoiceConfiguration
In ths Article

Resets the voice configuration to its default values. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsVoiceConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Voice test configurations are used to test a phone number against a specific voice policy, route and dial plan. This
cmdlet removes the global (and only) voice configuration, which is a container for all voice test configurations
defined for a Skype for Business Server deployment. "Removing" the voice configuration doesn't actually remove it;
the global instance is still there. However, it does set the list of voice test configurations to the default, which is
empty.
WARNING: Removing the voice configuration (which sets the list of voice test configurations to empty) deletes all
defined voice test configurations for a Skype for Business Server deployment. After calling this cmdlet, a call to the
Get-CsVoiceTestConfiguration cmdlet will return no results.

Examples
-------------------------- Example 1 --------------------------

Remove-CsVoiceConfiguration -Identity Global -Confirm

This example resets the Global (and only) voice configuration to the default values. This action deletes all defined
voice test configurations, so we added the Confirm parameter in order to receive a prompt asking whether we
really want to perform this action before the removal takes place.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The scope of the voice configuration to remove. This value must be Global.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceConfiguration object. Accepts pipelined input of a
voice configuration object.

Outputs
This cmdlet removes (resets) an object of type
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceConfiguration.

Related Links
Set-CsVoiceConfiguration
Get-CsVoiceConfiguration
Remove-CsVoiceTestConfiguration
Get-CsVoiceTestConfiguration
minutes to read • Edit Online

Remove-CsVoicemailReroutingConfiguration
In ths Article

Removes settings that provide public switched telephone network (PSTN ) phone numbers to access Exchange
Subscriber Access and Auto Attendant features. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsVoicemailReroutingConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
This cmdlet allows you to remove settings that determine where Auto Attendant and Subscriber Access calls are
rerouted to over PSTN when IP connectivity is lost.
Auto Attendant and Subscriber Access are features of Exchange. The Auto Attendant feature provides voice
recognition and touch-tone control (dual-tone multifrequency, or DTMF ) for outside callers to navigate a company's
phone system to reach the desired department or employee or, in Message Taking Mode, to accept messages for
users. (Voice rerouting for Message Taking Mode is recommended.) Subscriber Access allows internal users to
access their Microsoft Outlook mailbox from a phone. The numbers provided by these settings allow callers to
leave voice mail messages for Enterprise Voice users (the AutoAttendantNumber setting) and for those users to
retrieve voice mail even if the IP connectivity from the Skype for Business Server deployment at a remote site to
Exchange in the data center is unavailable (the SubscriberAccessNumber setting).
Note that if you call this cmdlet to remove the Global settings, those settings will simply be reset to their defaults.

Examples
-------------------------- Example 1 --------------------------

Remove-CsVoicemailReroutingConfiguration -Identity site:Redmond1

This example removes the voice mail rerouting configuration settings for the site Redmond1.
-------------------------- Example 2 --------------------------

Get-CsVoicemailReroutingConfiguration | Remove-CsVoicemailReroutingConfiguration

This example removes all the voice mail rerouting settings for this deployment of Skype for Business Server. The
command first retrieves all the voice mail rerouting configuration settings by calling the
Get-CsVoicemailReroutingConfiguration cmdlet. The settings retrieved by this call are then passed to the
Remove-CsVoicemailReroutingConfiguration cmdlet to delete each one.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the configuration you want to remove. For this cmdlet the Identity will be either Global or
Site:<site name>, where <site name> is the name of the site to which the settings are applied.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.ExumRouting.VoicemailReroutingConfiguration object.
Accepts pipelined input of voice mail rerouting configuration objects.

Outputs
Removes an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.ExumRouting.VoicemailReroutingConfiguration.
Related Links
New -CsVoicemailReroutingConfiguration
Set-CsVoicemailReroutingConfiguration
Get-CsVoicemailReroutingConfiguration
minutes to read • Edit Online

Remove-CsVoiceNormalizationRule
In ths Article

Removes a voice normalization rule. Voice normalization rules are used to convert telephone dialing requirements
(for example, dialing 9 to access an outside line) to the E.164 phone number format used by Skype for Business
Server. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsVoiceNormalizationRule [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
This cmdlet removes a named voice normalization rule. These rules are a required part of phone authorization and
call routing. They define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. An understanding of regular expressions is helpful in order to
define number patterns that will be translated.
Rules that are removed by using this cmdlet will be deleted from the dial plans of the organization, so they won't be
returned by the Get-CsVoiceNormalizationRule cmdlet and will not appear in the NormalizationRules property
returned by a call to the Get-CsDialPlan cmdlet. This means that calling the Remove-CsVoiceNormalizationRule
cmdlet could leave a dial plan with no normalization rules.

Examples
-------------------------- Example 1 --------------------------

Remove-CsVoiceNormalizationRule -Identity site:Redmond/SeattleRule1

This example removes the voice normalization rule with the Identity site:Redmond/SeattleRule1.
-------------------------- Example 2 --------------------------

Remove-CsVoiceNormalizationRule -Identity site:Redmond

This example removes all voice normalization rules from site Redmond.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identity of the rule to be removed. If the Identity specified includes the scope followed by a slash and
then the name (for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name), the one
rule with that unique Identity will be removed. If the value passed to the Identity contains only the scope
(site:Redmond), all normalization rules at that scope will be removed.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule object. Accepts pipelined input of voice
normalization rule objects.

Outputs
This cmdlet deletes an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule.

Related Links
New -CsVoiceNormalizationRule
Set-CsVoiceNormalizationRule
Get-CsVoiceNormalizationRule
Test-CsVoiceNormalizationRule
Remove-CsDialPlan
Get-CsDialPlan
minutes to read • Edit Online

Remove-CsVoicePolicy
In ths Article

Removes the specified voice policy. This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsVoicePolicy [-Tenant <Guid>] [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
This cmdlet removes an existing voice policy. Voice policies are used to manage such Enterprise Voice-related
features as simultaneous ringing (the ability to have a second phone ring each time someone calls your office
phone) and call forwarding. This cmdlet can also be used to remove the global voice policy. In that case, however,
the policy will not actually be removed; instead, the policy settings will simply be reset to their default values.

Examples
-------------------------- Example 1 --------------------------

Remove-CsVoicePolicy -Identity UserVoicePolicy1

This example removes the UserVoicePolicy1 per-user voice policy settings.


-------------------------- Example 2 --------------------------

Get-CsVoicePolicy -Filter tag* | Remove-CsVoicePolicy

This example removes all the voice policy settings that can be assigned to specific users. First the
Get-CsVoicePolicy cmdlet is called with a Filter of tag*, which retrieves all the per -user voice policies. That
collection of policies is then piped to the Remove-CsVoicePolicy cmdlet to be removed.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier specifying the scope and in some cases the name, of the policy to be removed.

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for the voice policy being
deleted. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online
you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based
on your connection information. The Tenant parameter is primarily for use in a hybrid deployment.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoicePolicy object. Accepts pipelined input of voice policy
objects.

Outputs
This cmdlet does not return a value. It removes an instance of a
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoicePolicy object.

Related Links
New -CsVoicePolicy
Set-CsVoicePolicy
Get-CsVoicePolicy
Grant-CsVoicePolicy
Test-CsVoicePolicy
minutes to read • Edit Online

Remove-CsVoiceRoute
In ths Article

Removes a voice route. Voice routes contain instructions that tell Skype for Business Server how to route calls from
Enterprise Voice users to phone numbers on the public switched telephone network (PSTN ) or a private branch
exchange (PBX). This cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsVoiceRoute [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Use this cmdlet to remove an existing voice route. Voice routes are associated with voice policies through PSTN
usages, so removing a voice route does not change any values relating to a voice policy, it simply changes the
routing for the numbers that had matched the pattern for the deleted voice route.

Examples
-------------------------- Example 1 --------------------------

Remove-CsVoiceRoute -Identity Route1

Removes the settings for the voice route with the identity Route1.
-------------------------- Example 2 --------------------------

Get-CsVoiceRoute | Remove-CsVoiceRoute

This command removes all voice routes from the organization. First all voice routes are retrieved by the
Get-CsVoiceRoute cmdlet. These voice routes are then piped to the Remove-CsVoiceRoute cmdlet, which removes
each one.
-------------------------- Example 3 --------------------------

Get-CsVoiceRoute -Filter *Redmond* | Remove-CsVoiceRoute

This command removes all voice routes with an identity that includes the string "Redmond." First the
Get-CsVoiceRoute cmdlet is called with the Filter parameter. The value of the Filter parameter is the string Redmond
surrounded by wildcard characters (*), which specifies that the string can be anywhere within the Identity. After all
of the voice routes with identities that include the string Redmond are retrieved, these voice routes are piped to the
Remove-CsVoiceRoute cmdlet, which removes each one.
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string that uniquely identifies the voice route you want to delete. (If the route name contains a space, such as Test
Route, you must enclose the full string in double quotes.)

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route object. Accepts pipelined input of voice route objects.

Outputs
Removes an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route.

Related Links
New -CsVoiceRoute
Set-CsVoiceRoute
Get-CsVoiceRoute
Test-CsVoiceRoute
minutes to read • Edit Online

Remove-CsVoiceRoutingPolicy
In ths Article

Deletes an existing voice routing policy. Voice routing policies manage PSTN usages for users of hybrid voice.
Hybrid voice enables users homed on Skype for Business Online to take advantage of the Enterprise Voice
capabilities available in an on-premises installation of Skype for Business Server. This cmdlet was introduced in
Lync Server 2013.

Syntax
Remove-CsVoiceRoutingPolicy [-Identity] <XdsIdentity> [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
Voice routing policies are used in "hybrid" scenarios: when some of your users are homed on the on-premises
version of Skype for Business Server and other users are homed on Skype for Business Online. Assigning your
Skype for Business Online users a voice routing policy enables those users to receive and to place phones calls to
the public switched telephone network by using your on-premises SIP trunks.
Note that simply assigning a user a voice routing policy will not enable them to make PSTN calls via Skype for
Business Online. Among other things, you will also need to enable those users for Enterprise Voice and will need to
assign them an appropriate voice policy and dial plan.
Skype for Business Server Control Panel: The functions carried out by the Remove-CsVoiceRoutingPolicy cmdlet are
not available in the Skype for Business Server.

Examples
-------------------------- Example 1 --------------------------

Remove-CsVoiceRoutingPolicy -Identity "RedmondVoiceRoutingPolicy"

The command shown in Example 1 deletes the voice routing policy RedmondVoiceRoutingPolicy
-------------------------- Example 2 --------------------------

Get-CsVoiceRoutingPolicy -Filter "tag:*" | Remove-CsVoiceRoutingPolicy

In Example 2, all the voice routing policies configured at the per-user scope are removed. To do this, the command
first calls the Get-CsVoiceRoutingPolicy cmdlet along with the Filter parameter; the filter value "tag:*" limits the
returned data to voice routing policies configured at the per-user scope. Those per-user policies are then piped to
and removed by, the Remove-CsVoiceRoutingPolicy cmdlet.
-------------------------- Example 3 --------------------------
Get-CsVoiceRoutingPolicy | Where-Object {$_.PstnUsages -contains "Long Distance"} | Remove-CsVoiceRoutingPolicy

In Example 3, all the voice routing polices that include the PSTN usage "Long Distance" are removed. To carry out
this task, the Get-CsVoiceRoutingPolicy cmdlet is first called without any parameters in order to return a collection
of all the available voice routing policies. That collection is then piped to the Where-Object cmdlet, which picks out
only those policies where the PstnUsages property includes (-contains) the usage "Long Distance." Policies that
meet that criterion are then piped to the Remove-CsVoiceRoutingPolicy , which removes each voice routing policy
that includes the PSTN usage "Long Distance".

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
If this parameter is present, the policy will automatically be removed even if it is currently assigned to at least one
user.
If this parameter is not present, then the Remove-CsVoiceRoutingPolicy cmdlet will not automatically remove a per-
user policy that is assigned to at least one user. Instead, a confirmation prompt will appear asking if you are sure
that you want to remove the policy. You must answer yes (by pressing the Y key) before the command will continue
and the policy will be removed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the voice routing policy to be removed. To "remove" the global policy, use the following syntax:
-Identity global

Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their
default values.
To remove a per-user policy, use syntax similar to this:
-Identity "RedmondVoiceRoutingPolicy"

You cannot use wildcards when specifying a policy Identity.


Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsVoiceRoutingPolicy cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceRoutingPolicy object.

Outputs
None. Instead, the Remove-CsVoiceRoutingPolicy cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceRoutingPolicy object.

Related Links
Get-CsVoiceRoutingPolicy
Grant-CsVoiceRoutingPolicy
New -CsVoiceRoutingPolicy
Set-CsVoiceRoutingPolicy
minutes to read • Edit Online

Remove-CsVoiceTestConfiguration
In ths Article

Removes a voice test configuration that was used to test phone numbers against specified routes and rules. This
cmdlet was introduced in Lync Server 2010.

Syntax
Remove-CsVoiceTestConfiguration [-Identity] <XdsGlobalRelativeIdentity> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Before implementing voice routes and voice policies, it's a good idea to test them out on various phone numbers to
ensure the results are what you're expecting. When you're done with those tests and won't need them again, use
this cmdlet to remove them.

Examples
-------------------------- Example 1 --------------------------

Remove-CsVoiceTestConfiguration -Identity TestConfig1

This example removes the voice test configuration settings with the Identity TestConfig1.
-------------------------- Example 2 --------------------------

Get-CsVoiceTestConfiguration -Filter *test* | Remove-CsVoiceTestConfiguration

This example removes all voice test configuration settings for any configuration with an Identity containing the
string test. The command first calls the Get-CsVoiceTestConfiguration cmdlet with the Filter parameter to retrieve
all voice test configurations that have an Identity with the string "test" anywhere in its value. The resulting set of
configurations is then piped to the Remove-CsVoiceTestConfiguration cmdlet and removed.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A string uniquely identifying the test configuration you want to remove.

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration object. Accepts pipelined input of voice
test configuration objects.

Outputs
Removes an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration.

Related Links
New -CsVoiceTestConfiguration
Set-CsVoiceTestConfiguration
Get-CsVoiceTestConfiguration
Test-CsVoiceTestConfiguration
minutes to read • Edit Online

Remove-CsWatcherNodeConfiguration
In ths Article

Removes an existing collection of watcher node configuration settings. Watcher nodes are computers that
periodically use System Center Operations Manager and Skype for Business Server synthetic transactions to verify
that Skype for Business Server components are working as expected. This cmdlet was introduced in Lync Server
2013.

Syntax
Remove-CsWatcherNodeConfiguration [-Identity] <XdsGlobalRelativeIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
If you are using Microsoft System Center Operations Manager to monitor Skype for Business Server then you
have the option of setting up "watcher nodes": computers that periodically and automatically, run synthetic
transactions in order to verify that Skype for Business Server is working as expected. Watcher nodes are assigned
to pools and are managed using the CsWatcherNodeConfiguration cmdlets. Note that you do not need to install
watcher nodes if you are using System Center Operations Manager. You can still monitor your system without
using watcher nodes; the only difference is that any synthetic transactions you want to run will need to be invoked
manually rather than automatically invoked by Operations Manager.
If you later decide to decommission a watcher node you can do so by using the Remove-CsWatcherNodeConfiguration
cmdlet. Alternatively, you can temporarily disable (and then later re-enable) a watcher node by using the
Set-CsWatcherNodeConfiguration cmdlet.

Skype for Business Server Control Panel: The functions carried out by the Remove-CsWatcherNodeConfiguration
cmdlet are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Remove-CsWatcherNodeConfiguration -Identity "atl-cs-001.litwareinc.com"

The command shown in Example 1 removes the watcher node configuration settings applied to the pool
atl-cs-001.litwareinc.com .

-------------------------- Example 2 --------------------------

Get-CsWatcherNodeConfiguration | Remove-CsWatcherNodeConfiguration

Example 2 removes all the watcher nodes configured for use in the organization. To do this, the command first uses
the Get-CsWatcherNodeConfiguration cmdlet to return a collection of all the watcher nodes. This collection is then
piped to the Remove-CsWatcherNodeConfiguration cmdlet, which removes each watcher node in the collection. That
effectively removes each watcher node in the organization.
-------------------------- Example 3 --------------------------

Get-CsWatcherNodeConfiguration | Where-Object {$_.TestUsers -contains "sip:kenmyer@litwareinc.com"} | Remove-


CsWatcherNodeConfiguration

In Example 3, all the watcher nodes that include the user sip:kenmyer@litwareinc.com as a test user are removed.
To carry out this task, the command first calls the Get-CsWatcherNodeConfiguration cmdlet in order to return a
collection of all the watcher nodes currently in use. This collection is then piped to the Where-Object cmdlet, which
picks out only those settings where the TestUsers property includes (-contains) the user
sip:kenmyer@litwareinc.com. That filtered collection is then piped to the Remove-CsWatcherNodeConfiguration cmdlet,
which removes each item in the filtered collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name of the pool that has been assigned the watcher node being deleted. For example:
-Identity "atl-cs-001.litwareinc.com"

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsWatcherNodeConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool#Decorated object.

Outputs
None. Instead, the Remove-CsWatcherNodeConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool#Decorated object.

Related Links
Get-CsWatcherNodeConfiguration
New -CsWatcherNodeConfiguration
Set-CsWatcherNodeConfiguration
Test-CsWatcherNodeConfiguration
minutes to read • Edit Online

Remove-CsWebServiceConfiguration
In ths Article

Removes one or more collections of Web Services configuration settings. This cmdlet was introduced in Lync
Server 2010.

Syntax
Remove-CsWebServiceConfiguration [-Identity] <XdsIdentity> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Many Skype for Business Server components are web-based: these components either use web services or
webpages to carry out their tasks. For example, users employ a web service when searching for new contacts in the
Address Book or when using group expansion to view the individual members of a distribution group. Likewise,
components ranging from dial-in conferencing to Skype for Business Server Control Panel use webpages as the
interface between Skype for Business Server and users.
The CsWebServiceConfiguration cmdlets enable administrators to manage Web Services configuration settings
throughout the organization. This includes managing group expansion, certificate settings and allowed
authentication methods. Because you can configure different settings at the global, site and service scope (for the
Web Services service only), you can customize Web Services capabilities for different users and different locations.
If you create custom Web Services configuration settings at the site or service scope these settings can later be
removed by using the Remove-CsWebServiceConfiguration cmdlet. Note that you can also run the
Remove-CsWebServiceConfiguration cmdlet against the global collection of Web Services settings. In that case,
however, the global collection will not be removed; that's because Skype for Business Server does not allow you to
remove global settings. Instead, all the properties in the global collection will revert to their default values. For
example, suppose you have changed the MaxGroupSizeToExpand value to 500. Because the default value for this
property is 100, "removing" the global collection will reset the value of the MaxGroupSizeToExpand property to
100.

Examples
-------------------------- Example 1 ------------------------

Remove-CsWebServiceConfiguration -Identity site:Redmond

Example 1 removes the Web Services configuration settings for the Redmond site.
-------------------------- Example 2 ------------------------

Get-CsWebServiceConfiguration -Filter "site:*" | Remove-CsWebServiceConfiguration

In Example 2, all the Web Services settings configured at the site scope are removed. To carry out this task, the
command first calls the Get-CsWebServiceConfiguration cmdlet and the Filter parameter; the filter value "site:*"
ensures that only those settings that have an Identity that begins with the characters "site:" are returned. This
filtered collection is then piped to the Remove-CsWebServiceConfiguration cmdlet, which deletes each item in the
collection.
-------------------------- Example 3 ------------------------

Get-CsWebServiceConfiguration | Where-Object {$_.EnableGroupExpansion -eq $False} | Remove-


CsWebServiceConfiguration

The command shown in Example 3 deletes all the Web Services configuration settings where group expansion has
been disabled. To do this, the command first calls the Get-CsWebServiceConfiguration cmdlet without any
parameters in order to return a collection of all the Web Services configuration settings used in the organization.
This collection is then piped to the Where-Object cmdlet, which selects only those settings where the
EnableGroupExpansion property is equal to False. The filtered collection is then piped to the
Remove-CsWebServiceConfiguration cmdlet, which deletes each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the Web Services configuration settings to be removed. To remove settings configured at the
site scope, use syntax similar to this:
-Identity "site:Redmond"

To remove settings configured at the service scope, use syntax similar to this:
-Identity "service:WebServer:atl-cs-001.litwareinc.com"

The Remove-CsWebServiceConfiguration cmdlet can also be run against the global collection. In that case, however,
the global collection will not be removed; instead, all the properties in that collection will be reset to their default
values. To reset the global collection, use this syntax:
-Identity global

Type: XdsIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Web.WebServiceSettings object. The
Remove-CsWebServiceConfiguration cmdlet accepts pipelined input of the Web Services settings object.

Outputs
None. Instead, the Remove-CsWebServiceConfiguration cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Web.WebServiceSettings object.

Related Links
Get-CsWebServiceConfiguration
New -CsWebServiceConfiguration
Set-CsWebServiceConfiguration
minutes to read • Edit Online

Remove-CsXmppAllowedPartner
In ths Article

Removes an existing XMPP allowed partner. The extensible Messaging and Presence Protocol (XMPP ) is an open-
standard communications protocol for exchanging messages using XML. An allowed partner is an IM and presence
provider whose users are allowed to exchange instant messages and presence information with your Skype for
Business Server users. This cmdlet was introduced in Lync Server 2013.

Syntax
Remove-CsXmppAllowedPartner [-Identity] <XdsGlobalRelativeIdentity> [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Description
The Extensible Messaging and Presence Protocol (XMPP ) is a standard communications protocol (based on XML )
used for sending messages across the Internet. XMPP was originally named Jabber and is supported by a number
of Internet messaging and communication applications, including Google Talk and Facebook Chat.
In order for your users to be able to exchange instant messages and presence information with users on an XMPP
network, that network must be configured as an XMPP allowed partner. (You must also assign your users an
external access policy that allows XMPP access.) By design, your users will be allowed to communicate with users
on any XMPP network that is listed on the allowed partners list. If you do not want users communicating with users
from a given network then you must delete that network from the allowed partners list.
Skype for Business Server Control Panel: To remove an XMPP allowed partner using the Skype for Business Server
Control Panel, click External User Access and then click XMPP Federated Partners. Select the partner to be
removed, click Edit and then click Delete.

Examples
-------------------------- Example 1 --------------------------

Remove-CsXmppAllowedPartner -Identity "contoso.com"

Example 1 deletes the XMPP allowed partner with the Identity "contoso.com".
-------------------------- Example 2 --------------------------

Get-CsXmppAllowedPartner | Remove-CsXmppAllowedPartner

The command shown in Example 2 deletes all the XMPP allowed partners. To carry out this task the command first
calls the Get-CsXmppAllowedPartner cmdlet to return a collection of all the XMPP allowed partners currently in use
in the organization. This collection is then piped to the Remove-CsXmppAllowedPartner cmdlet, which removes each
partner in the collection.
-------------------------- Example 3 --------------------------

Get-CsXmppAllowedPartner | Where-Object {$_.PartnerType -eq "PublicUnverified"} | Remove-CsXmppAllowedPartner

In Example 3, all the XMPP allowed partners with a partner type of PublicUnverified are deleted. To do this, the
command first uses the Get-CsXmppAllowedPartner cmdlet to return a collection of all the allowed partners. This
collection is then piped to the Where-Object cmdlet, which picks out only those partners where the PartnerType
property is equal to "PublicUnverified". The partners that meet that criterion are then piped to and deleted by, the
Remove-CsXmppAllowedPartner cmdlet.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the XMPP allowed partner to be deleted. For example:
-Identity "fabrikam.com"

Type: XdsGlobalRelativeIdentity
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Remove-CsXmppAllowedPartner cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner#Decorated object.

Outputs
None. Instead, the Remove-CsXmppAllowedPartner cmdlet deletes existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner#Decorated object.

Related Links
Get-CsXmppAllowedPartner
New -CsXmppAllowedPartner
Set-CsXmppAllowedPartner
minutes to read • Edit Online

Request-CsCertificate
In ths Article

Provides a way to request certificates for use with servers running Skype for Business Server and server roles. Also
provides a way to check the status of existing certificate requests and, if needed, to cancel any (or all) of those
requests. This cmdlet was introduced in Lync Server 2010.

Syntax
Request-CsCertificate [-New] -Type <CertType[]> [-CA <String>] [-CaAccount <String>] [-CaPassword <String>]
[-City <String>] [-ClientEKU <Boolean>] [-ComputerFqdn <Fqdn>] [-Country <String>] [-DomainName <String>]
[-FriendlyName <String>] [-GlobalCatalog <Fqdn>] [-GlobalSettingsDomainController <Fqdn>]
[-KeyAlg <KeyAlgorithmIdentifier>] [-KeySize <Int32>] [-Organization <String>] [-OU <String>]
[-Output <String>] [-PrivateKeyExportable <Boolean>] [-State <String>] [-Template <String>] [-Force]
[-Report <String>] [-WhatIf] [-Confirm] [-AllSipDomain] [<CommonParameters>]

Request-CsCertificate [-Clear] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [-RequestId <Int32>]


[<CommonParameters>]

Request-CsCertificate [-List] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [-RequestId <Int32>]


[<CommonParameters>]

Request-CsCertificate [-Retrieve] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [-RequestId <Int32>]


[<CommonParameters>]

Description
Skype for Business Server uses certificates as a way for servers and server roles to verify their identities; for
example, an Edge Server uses certificates to verify that the computer it is communicating with really is a Front End
Server and vice versa. In order to fully implement Skype for Business Server, you will need to have the appropriate
certificates assigned to the appropriate server roles.
One way to request certificates for use with Skype for Business Server is to call the Request-CsCertificate cmdlet.
Although it is possible to use other standard Windows tools in order to request certificates for use with Skype for
Business Server, one major advantage to using the Request-CsCertificate cmdlet is the fact that the cmdlet will
analyze your topology before contacting the certification authority (CA). Based on that analysis, the
Request-CsCertificate cmdlet will automatically request a certificate with the proper subject name and subject
alternative name fields.
The Request-CsCertificate cmdlet is designed to request certificates specifically for use with Skype for Business
Server. It is not designed to be an all-purpose certificate management tool.
In addition to requesting new certificates, this cmdlet can also be used to review any pending certificate requests,
provided those requests were made using the Request-CsCertificate cmdlet. The Request-CsCertificate cmdlet
can also be used to delete pending certificate requests, as long as those requests were made using the cmdlet.
When attempting to retrieve certificate requests you might receive an error message if you have any revoked
requests; currently the Request-CsCertificate cmdlet only supports these request types: Issued, Denied and
Pending. If you encounter problems due to a revoked certificate use a command similar to this to clear the revoked
request (where 224 is the RequestID of the revoked certificate request):
Request-CsCertificate -Clear -RequestID 224

After that you should be able to retrieve certificate requests.

Examples
-------------------------- Example 1 -----------------------

Request-CsCertificate -New -Type WebServicesExternal -CA "atl-ca-001.litwareinc.com\myca"

The command shown in Example 1 creates a new certificate request: it contacts the CA atl-ca-
001.litwareinc.com\myca and requests a new WebServicesExternal certificate.
-------------------------- Example 2 -----------------------

Request-CsCertificate -List

Example 2 lists all the pending certificate requests made by using the Request-CsCertificate cmdlet.
-------------------------- Example 3 -----------------------

Request-CsCertificate -New -Type WebServicesExternal -Output C:\Certificates\WebServicesExternal.cer

Example 3 uses the Output parameter to create an offline certificate request.


-------------------------- Example 4 -----------------------

Request-CsCertificate -New -Type Default,WebServicesInternal,WebServicesExternal -ComputerFqdn "atl-cs-


001.litwareinc.com" -CA "atl-ca-001.litwareinc.com\myca" -FriendlyName "Standard Edition Certficate" -Template
jcila -PrivateKeyExportable $True -DomainName "atl-cs-001.litwareinc.com,atl-ext.litwareinc.com"

Example 4 is a more detailed (and more realistic) example of how to use the Request-CsCertificate cmdlet. This
example requests a certificate for use with the Standard Edition of Skype for Business Server.
-------------------------- Example 5 -----------------------

Request-CsCertificate -New -Type Default,WebServicesInternal,WebServicesExternal -ComputerFqdn "atl-cs-


001.litwareinc.com" -CA "atl-ca-001.litwareinc.com\myca" -FriendlyName "Enterprise Edition Pool Certificate" -
Template jcila -PrivateKeyExportable $True -DomainName
"pool1.litwareinc.com,pool1int.litwareinc.com,pool1ext.litwareinc.com"

In Example 5, a pool certificate is requested for use with the Enterprise Edition of Skype for Business Server.
-------------------------- Example 6 -----------------------
Request-CsCertificate -New -Type Internal -ComputerFqdn "atl-edge-001" -CA "atl-ca-001.litwareinc.com\myca" -
FriendlyName "Internal Edge Certificate" -Template jcila -PrivateKeyExportable $True -DomainName "atl-edge-
001.litwareinc.com, ap.litwareinc.com"

Example 6 shows how you can request a certificate for the internal Edge Server.
-------------------------- Example 7 -----------------------

Request-CsCertificate -New -Type AccessEdgeExternal,DataEdgeExternal,AudioVideoAuthentication -ComputerFqdn


"atl-edge-001" -CA "atl-ca-001.litwareinc.com\myca" -FriendlyName "External Edge Certificate" -Template jcila -
PrivateKeyExportable $True -DomainName "atl-edge-001.litwareinc.com,ap.litwareinc.com,dp.litwareinc.com,atl-
edge-001"

Example 7 is a variation of the command shown in Example 6, In this case, however, the request is for the external
Edge Server.

Parameters
-AllSipDomain
When present, all your SIP domains are automatically added to the certificates Subject Alternative Name field. If
not present, only the primary SIP domain is added by default. However, additional domains can be specified by
using the DomainName parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CA
Fully qualified domain name (FQDN ) that points to the CA. For example: -CA "atl-ca-001.litwareinc.com\myca" . To
obtain a list of known CAs, type the following at the Windows PowerShell prompt, and then press ENTER:
certutil
The Config property returned by Certutil indicates the location of a CA.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CaAccount
Account name of the user requesting the new certificate, using the format domain_name\user_name. For example:
-CaAccount "litwareinc\kenmyer" . If not specified, the Request-CsCertificate cmdlet will use the credentials of the
logged-on user when requesting the new certificate.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CaPassword
Password for the user requesting the new certificate (as specified using the CaAccount parameter).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-City
City where the certificate will be deployed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Clear
When present, deletes any pending certificate requests made by using the Request-CsCertificate cmdlet.

Type: SwitchParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientEKU
Set this parameter to True if the certificate is to be used for client authentication. This type of authentication is
required if you want your users to be able to exchange instant messages with people who have accounts with AOL.
The EKU portion of the parameter name is short for extended key usage; the extended key usage field lists the valid
uses for the certificate.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ComputerFqdn
FQDN of the computer for which the certificate is being requested. When present, this parameter forces the
Request-CsCertificate cmdlet to connect to the Central Management store in order to locate the specified
computer. You should always use the computer name when requesting a certificate, even when requesting a pool
certificate. The Request-CsCertificate cmdlet will automatically add the pool name to the Subject Name of any
certificate obtained using this cmdlet.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Country
Country/region where the certificate will be deployed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainName
Comma-separated list of fully-qualified domain names that should be added to the certificate's Subject Alternative
Name field. For example:
-DomainName "atl-cs-001.litwareinc.com, atl-cs-002.litwareinc.com,atl-cs-003.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FriendlyName
User-assigned name that makes it easier to identify the certificate.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
FQDN of a global catalog server in your domain. This parameter is not required if you are running the
Request-CsCertificate cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the System container
in Active Directory Domain Services then this parameter must point to the root domain controller. If global settings
are stored in the Configuration container then any domain controller can be used and this parameter can be
omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeyAlg
Indicates the type of cryptographic algorithm to be used in generating the public and private keys for the new
certificate. Valid key algorithms include:
RSA
ECDH_P256
ECDH_P384
ECDH_P521
Type: KeyAlgorithmIdentifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeySize
Indicates the size (in bits) of the private key used by the certificate. Larger key sizes are more secure, but require
more processing overhead in order to be decrypted.
Valid key sizes are 1024; 2048; and 4096. For example: -KeySize 2048 .

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-List
When present, lists any pending certificate requests made by using the Request-CsCertificate cmdlet.

Type: SwitchParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-New
When present, indicates that you want to request a new certificate.

Type: SwitchParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Organization
Name of the organization requesting the new certificate. For example: -Organization "Litwareinc" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Active Directory organizational unit for the computer that will be assigned the new certificate.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Output
Path to the certificate file. If you want to create an offline certificate request use the Output parameter and specify a
file path for the certificate request; for example: -Output C:\Certificates\NewCertificate.pfx . That will create a
certificate request file that can then be emailed to a certification authority for processing.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrivateKeyExportable
Set this parameter to True if you want to make the certificate's private key exportable. When a private key is
exportable, the certificate can be copied and used on multiple computers.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\Certificates.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequestId
Identification number associated with a certificate request. The RequestID parameter provides a way for you to list,
retrieve, or clear an individual certificate.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Retrieve
When present, retrieves any pending certificate requests made by using the Request-CsCertificate cmdlet and
attempts to complete the operation and import the requested certificate.

Type: SwitchParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-State
U.S. state where the certificate will be deployed. For example: -State WA .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Template
Indicates the certificate template to be used when generating the new certificate; for example:
-Template "WebServer" . The requested template must be installed on the CA. Note that the value entered must be
the template name, not the template display name.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Type of certificate being requested. Certificate types include (but are not limited to):
AccessEdgeExternal
AudioVideoAuthentication
DataEdgeExternal
Default
External
Internal
iPhoneAPNService
iPadAPNService
MPNService
PICWebService (Skype for Business Online only)
ProvisionService (Skype for Business Online only)
WebServicesExternal
WebServicesInternal
WsFedTokenTransfer
For example, this syntax requests a new Default certificate: -Type Default .
You can specify multiple types in a single command by separating the certificate types with commas:
-Type Internal,External,Default

Type: CertType[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Request-CsCertificate cmdlet does not accept pipelined input.

Outputs
None. Instead, the Request-CsCertificate cmdlet helps manage instances of the
Microsoft.Rtc.Management.Deployment.CertificateReference object.

Related Links
Get-CsCertificate
Import-CsCertificate
Remove-CsCertificate
Set-CsCertificate
minutes to read • Edit Online

Reset-CsDeviceUpdateRule
In ths Article

Rejects a device update rule that has been imported to the system. This cmdlet was introduced in Lync Server 2010.

Syntax
Reset-CsDeviceUpdateRule [[-Identity] <XdsIdentity>] [-WhatIf] [-Confirm] [-Force] [<CommonParameters>]

Reset-CsDeviceUpdateRule [-Instance <PSObject>] [-WhatIf] [-Confirm] [-Force] [<CommonParameters>]

Description
Skype for Business Server uses device update rules as a way to provide firmware updates to devices that run Skype
for Business Phone Edition. Periodically, administrators upload a set of device update rules to Skype for Business
Server. After those rules have been tested and approved, they are automatically downloaded and applied to the
appropriate devices as those devices connect to the system. By default devices check for new update rules each
time they turn on and connect to Skype for Business Server. Devices also check for updates every 24 hours after
that initial sign on.
Each new device update rule added to the system is marked as "Pending." That means that the update will be
downloaded and installed by the appropriate test devices; however, it will not be downloaded and installed by client
devices in general. This gives you an opportunity to test the updates and ensure that there are no adverse effects
before you make this update widely available. As soon as you are convinced that the update has passed your tests
and will work for your organization, you can then use the Approve-CsDeviceUpdateRule cmdlet to approve the
update.
On the other hand, administrators might conclude that a given update should not be used in the organization (for
example, the update might cause a conflict with in-house software). In that case, administrators can use the
Reset-CsDeviceUpdateRule cmdlet to reject the update. When that happens, the PendingVersion of the update rule is
set to a null value. In turn, that means that test devices that log on to the system will uninstall the update and
reinstall the approved version of that update. And because the update was never approved, that means that the
update will never be installed by anything other than those test devices. As a result, there will be no impact on the
general user population.
The Reset-CsDeviceUpdateRule cmdlet can only be used for device update rules in the Pending state. If a rule has
already been approved, you will need to use the Restore-CsDeviceUpdateRule cmdlet to roll back the deployment of
the device update.

Examples
-------------------------- Example 1 ------------------------
Reset-CsDeviceUpdateRule -Identity service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-420a-82ac-
dc2d9b1222ff9

The command shown in Example 1 resets the device update rule d5ce3c10-2588-420a-82ac-dc2d9b1222ff9 found
on the service WebServer:atl-cs-001.litwareinc.com.
-------------------------- Example 2 ------------------------

Get-CsDeviceUpdateRule -Filter service:WebServer:atl-cs-001.litwareinc.com* | Reset-CsDeviceUpdateRule

Example 2 resets all the device update rules that have been configured for the service WebServer:atl-cs-
001.litwareinc.com. This is done by first calling the Get-CsDeviceUpdateRule cmdlet along with the Filter parameter;
the filter value "WebServer:atl-cs-001.litwareinc.com*" ensures that only rules that have an Identity that begins with
the characters "WebServer:atl-cs-001.litwareinc.com" will be returned. (By definition, these are all the device update
rules that have been assigned to the service WebServer:atl-cs-001.litwareinc.com.) The filtered collection is then
piped to the Reset-CsDeviceUpdateRule cmdlet, which resets each rule in the collection.
-------------------------- Example 3 ------------------------

Get-CsDeviceUpdateRule | Where-Object {$_.Brand -eq "LG-Nortel"} | Reset-CsDeviceUpdateRule

The command shown in Example 3 resets all the device update rules for the brand LG -Nortel. To do this, the
command first calls the Get-CsDeviceUpdateRule cmdlet without any parameters in order to return a collection of all
the device update rules currently in use in the organization. This collection is then piped to the Where-Object
cmdlet, which picks out only those rules where the Brand property is equal to LG -Nortel. After that the filtered
collection is piped to the Reset-CsDeviceUpdateRule cmdlet, which resets all the rules in the filtered collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts or non-fatal error messages that might occur when you run the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the device update rule being reset. The Identity for a device update rule consists of a two parts:
the service where the device update rule has been assigned (for example, service:WebServer:atl-cs-
001.litwareinc.com) and a globally unique identifier (GUID ). Consequently, a device update rule configured for the
Redmond site will have an Identity similar to this: "service:WebServer:atl-cs-oo1.litwareinc.com/d5ce3c10-2588-
420a-82ac-dc2d9b1222ff9".

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdate.Rule object. The
Reset-CsDeviceUpdateRule cmdlet accepts pipelined instances of the device update rule object.

Outputs
None. Instead, the Reset-CsDeviceUpdateRule cmdlet resets instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdate.Rule object.

Related Links
Approve-CsDeviceUpdateRule
Get-CsDeviceUpdateRule
Remove-CsDeviceUpdateRule
Restore-CsDeviceUpdateRule
minutes to read • Edit Online

Reset-CsNotificationQueues
In ths Article

The `Reset-CsNotificationQueues` cmdlet resets all presence notification queues. This cmdlet was introduced in
Skype for Business Server 2015 November 2015 Cumulative Update.

Syntax
Reset-CsNotificationQueues [[-Fqdn] <Fqdn>] [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Description
The Reset-CsNotificationQueues cmdlet resets all presence notification queues. Pending notifications will not be
sent.

Examples
-------------------------- Example 1 --------------------------

PS C:\> Reset-CsNotificationQueues -Fqdn FE01.contoso.com

This example resets the notification queues on server FE01.contoso.com.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Fqdn
Specifies the fqdn of the server which you want to reset notification queues.

Type: Fqdn
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
System.Object
minutes to read • Edit Online

Reset-CsPoolRegistrarState
In ths Article

Resets the Registrar and Windows fabric services for the specified Registrar pool. This cmdlet was introduced in
Lync Server 2013.

Syntax
Reset-CsPoolRegistrarState -PoolFqdn <Fqdn> [-Confirm] [-Force] [-MachineFqdn <Fqdn>] [-NoReStart]
[-ResetLocalDatabases] [-ResetType <PoolResetType>] [-WhatIf] [-ServicesStopDelayMins <Int32>]
[<CommonParameters>]

Description
The Reset-CsPoolRegistrarState cmdlet enables you to reset the Windows Fabric service (FabricHostSvc) and the
Skype for Business Server Registrar service (RtcSrv) for a Registrar pool; this might be required if the pool has
become non-responsive or fails to start. (Typically that means that the Registrar service will remain stuck in the
Start Pending state.) Running this cmdlet will, by default, stop and then restart all the relevant services on the pool.
However, you can use the NoReStart parameter to cause the Reset-CsPooRegistrarState cmdlet to stop those the
services without restarting them. You can then choose to manually restart all (or some) of those services.
Skype for Business Server Control Panel: The functions carried out by the Reset-CsPoolRegistrarState cmdlet are
not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Reset-CsPoolRegistrarState -PoolFqdn "atl-cs-001.litwareinc.com" -ResetType ServiceReset

The command shown in Example 1 performs a service reset for the Registrar pool atl-cs-001.litwareinc.com . Note
that, after issuing this command, you will be prompted as to whether or not you want to proceed with the service
reset.
-------------------------- Example 2 --------------------------

Reset-CsPoolRegistrarState -PoolFqdn "atl-cs-001.litwareinc.com" -ResetType ServiceReset -Confirm:$False

Example 2 also performs a service reset for the Registrar pool atl-cs-001.litwareinc.com . In this case, however, the
Confirm parameter has been included along with the parameter value $False (-Confirm:$False). This causes the
confirmation prompt which generally appears when you call the Reset-CsPoolRegistrarState cmdlet to be
suppressed. As a result, you will not be prompted as to whether or not you want to proceed with the service reset.
Instead, the command will run as soon as you press ENTER.
-------------------------- Example 3 --------------------------
Reset-CsPoolRegistrarState -PoolFqdn "atl-cs-001.litwareinc.com" -ResetType QuorumLossRecovery

In Example 3, a quorum loss recovery reset is carried on the pool atl-cs-001.litwareinc.com . A quorum loss
recovery is reset is typically used when the number of active Front End servers in a pool falls below the quorum
state (that is, when fewer than 85% of the Front End servers in a pool are currently active). Note that only those
services that are in a quorum loss will have to reload user data from the backup store. Other services will be
unaffected by this command/
-------------------------- Example 4 --------------------------

Reset-CsPoolRegistrarState -PoolFqdn "atl-cs-001.litwareinc.com" -ResetType FullReset

In Example 4, a full reset is done for the pool atl-cs-001.litwareinc.com . In a full reset, the Front End and Windows
Fabric services are stopped and a set of items (including the files LyncServer-MachineSet.xml and Settings.xml) are
removed. After these items have been removed, the Front End and Windows Fabric services are restarted.
Note that using the FullReset option when attempting to restart a pool will sometimes result in failure and the pool
will not actually restart. Because of that, it is recommended that you first try to restart the pool using one of the
other ResetType options. If that fails, please consult Microsoft support personnel before using the FullReset option.
-------------------------- Example 4 --------------------------

Reset-CsPoolRegistrarState -PoolFqdn "atl-cs-001.litwareinc.com" -ResetType FullReset -NoReStart

Example 5 is a variation of the command shown in Example 4. In this case, however, the NoReStart parameter is
included; this prevents the Reset-CsPoolRegistrarState cmdlet from restarting the services (such as the Windows
Fabric service) that are stopped when the pool is reset. It will be up to administrators to manually restart these
services.
Note that using the FullReset option when attempting to restart a pool will sometimes result in failure and the pool
will not actually restart. Because of that, it is recommended that you first try to restart the pool using one of the
other ResetType options. If that fails, please consult Microsoft support personnel before using the FullReset option.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MachineFqdn
Fully qualified domain name of the computer to be removed from the pool. This parameter is only used when
performing a MachineStateRemoved reset.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NoReStart
When specified, services (such as RtcSrv and FabricHostSvc) that are stopped when the cmdlet runs are not
restarted.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PoolFqdn
Fully qualified domain name of the Registrar pool being reset. For example:
-PoolFqdn "atl-cs-001.litwareinc.com"

Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResetLocalDatabases
When specified, stops and restarts the local Skype for Business Server databases in addition to the local Skype for
Business Server services.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResetType
Type of reset to be performed. Allowed values are:
ServiceReset - The RtcSrv and FabricHostSvc services are stopped and restarted. A service reset will be performed
if the ResetType is not specified.
QuorumLossRecovery - Reloads user data from the backup store for any routing groups currently in quorum loss.
(A quorum loss occurs when neither a database nor its replicas are available.) Data not yet written to the database
could be lost when you do this type of reset.
FullReset - performs the same type of reset as QuorumLossRecovery but, in addition, rebuilds the local Skype for
Business Server databases. This type of reset can be potentially long and resource-intensive.
Using the FullReset value can cause previously disabled nodes to be reenabled. For example, if you use the
FullReset value while one of the Front End Servers in the pool is disabled, that Front End Server will be brought
back online.
Using the FullReset value when attempting to restart a pool will sometimes result in failure and the pool will not
actually restart. Because of that, it is recommended that you first try to restart the pool using one of the other
ResetType options. If that fails, please consult Microsoft support personnel before using the FullReset option.
Typically FullReset is only used when changing a topology from a pool with a single Front End server to a pool with
multiple Front End servers.
MachineStateRemoved -- Removes the specified server from the pool. This type of reset should be used only when
the server in question (or its databases) have been permanently lost.

Type: PoolResetType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServicesStopDelayMins
PARAMVALUE: Int32

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Reset-CsPoolRegistrarState cmdlet does not accept pipelined input.

Outputs
String values. The Reset-CsPoolRegistrarState cmdlet does not return objects.

Related Links
Get-CsPoolFabricState
minutes to read • Edit Online

Reset-CsRoutingGroup
In ths Article

Enables administrators to reset a Windows fabric routing group that is not working correctly.

Syntax
Reset-CsRoutingGroup [-RoutingGroup] <String> [-Binding <String>] [-Confirm] [-Force]
[-HostNameStorageService <String>] [-Lyss] [-ResetType <RgResetType>] [-TargetFqdn <Fqdn>] [-WhatIf]
[<CommonParameters>]

Description
The Reset-CsRoutingGroup cmdlet provides a way for administrators to reset Windows Fabric routing groups that
are "missing" or are otherwise not working correctly. Missing routing groups can be identified by using the
Get-CsPoolFabricState cmdlet and the FilterOnMissingReplicas parameter.

Examples
-------------------------- Example 1 --------------------------

Reset-CsRoutingGroup -RoutingGroup "bef5fa3b-3c97-4af0-abe7-611deee7616c" -Type "Transient"

The command shown in Example 1 performs a transient on the routing group with the identity bef5fa3b-3c97-
4af0-abe7-611deee7616c.

Parameters
-Binding
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HostNameStorageService
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Lyss
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ResetType
Type of reset to be performed. Allowed values are:
Invalid
Permanent
Transient

Type: RgResetType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RoutingGroup
Globally unique identifier (GUID ) of the routing group that needs to be reset. For example:
-RoutingGroup "bef5fa3b-3c97-4af0-abe7-611deee7616c"

Type: String
Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetFqdn
Fully qualified domain name of the pool containing the routing group that needs to be reset.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Reset-CsRoutingGroup cmdlet does not accept pipelined input.

Outputs
None. The Reset-CsRoutingGroup cmdlet does return objects or data.
minutes to read • Edit Online

Restore-CsDeviceUpdateRule
In ths Article

Enables you to "roll back" a device update rule that has been approved for use in the organization. When you
restore a device update rule, the approved version of that rule is reset to reflect the update that was in use before
the rule was approved. In turn, client devices that log on to the system will automatically uninstall the most recent
update and then download and reinstall the previous version of that update. This cmdlet was introduced in Lync
Server 2010.

Syntax
Restore-CsDeviceUpdateRule [[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Restore-CsDeviceUpdateRule [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Skype for Business Server uses device update rules as a way to provide firmware updates to devices that run Skype
for Business Phone Edition. Periodically, administrators upload a set of device update rules to Skype for Business
Server; after those rules have been tested and approved, they are automatically downloaded and applied to the
appropriate devices the next time those devices connect to the system. By default devices check for new update
rules each time they turn on and connect to Skype for Business Server. Devices also check for updates every 24
hours after that initial sign-on.
Each new device update rule added to the system is marked as "Pending." That means that the update will be
downloaded and installed by the appropriate test devices; however, it will not be downloaded and installed by client
devices in general. This gives you an opportunity to test the updates and ensure that there are no adverse effects
before they make the update widely available. As soon as you are convinced that the update has passed your tests
and will work for your organization, you can then use the Approve-CsDeviceUpdateRule cmdlet to approve the
update.
When you approve an update, the PendingVersion of the associated update rule is assigned to the
ApprovedVersion and the PendingVersion property is cleared. For example, suppose the PendingVersion of a new
update rule is version 1.0.0.1. After you run the Approve-CsDeviceUpdateRule cmdlet, the PendingVersion will be set
to a null value and the ApprovedVersion will be set to 1.0.0.1. The next time a client device checks for updates, the
update will automatically be downloaded and installed.
In addition to this, any previous version of the update (for example, version 1.0.0.0) will be marked as the
RestoreVersion. This version of the update will remain on the system and will be used if the new update needs to be
rolled back. If problems begin to crop up, administrators can use the Restore-CsDeviceUpdateRule cmdlet to roll
back the update. When that happens, the next time a client device checks for updates the device will automatically
uninstall the new update (version 1.0.0.1) and reinstall the previous update (1.0.0.0).
Note that this happens only if there is a previous update to be installed. If there is no such previous version then the
update being rolled back will simply be uninstalled.
Examples
-------------------------- Example 1 ------------------------

Restore-CsDeviceUpdateRule -Identity service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-420a-82ac-


dc2d9b1222ff9

The command shown in Example 1 restores the device update rule d5ce3c10-2588-420a-82ac-dc2d9b1222ff9
found on the service WebServer:atl-cs-001.litwareinc.com.
-------------------------- Example 2 ------------------------

Get-CsDeviceUpdateRule -Filter service:WebServer:atl-cs-001.litwareinc.com* | Restore-CsDeviceUpdateRule

Example 2 restores all the device update rules that have been configured for the service WebServer:atl-cs-
001.litwareinc.com. To do this, the command first calls the Get-CsDeviceUpdateRule cmdlet along with the Filter
parameter; the filter value "WebServer:atl-cs-001.litwareinc.com*" ensures that only those rules that have an
Identity that begins with the string value "WebServer:atl-cs-001.litwareinc.com" will be returned. (By definition,
these are all the device update rules that have been assigned to the service WebServer:atl-cs-001.litwareinc.com.)
This filtered collection is then piped to the Restore-CsDeviceUpdateRule cmdlet, which restores each rule in the
collection.
-------------------------- Example 3 ------------------------

Get-CsDeviceUpdateRule | Where-Object {$_.Brand -eq "LG-Nortel"} | Restore-CsDeviceUpdateRule

Example 3 shows how you can restore all the device update rules for a specified brand (LG -Nortel). To do this, the
command first calls the Get-CsDeviceUpdateRule cmdlet without any parameters in order to return a collection of all
the device update rules currently in use in the organization. This collection is then piped to the Where-Object
cmdlet, which picks out only those rules where the Brand property is equal to LG -Nortel. The filtered collection is
then piped to the Restore-CsDeviceUpdateRule cmdlet, which restores all the rules in the filtered collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the device update rule being restored. The Identity for a device update rule consists of two
parts: the service where the device update rule has been assigned (for example, service:WebServer:atl-cs-
001.litwareinc.com) and a globally unique identifier (GUID ). Consequently, a device update rule configured for the
Redmond site will have an Identity similar to this: service:WebServer:atl-cs-001.litwareinc.com/d5ce3c10-2588-
420a-82ac-dc2d9b1222ff9.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdate.Rule object. The
Restore-CsDeviceUpdateRule cmdlet accepts pipelined instances of the device update rule object.

Outputs
None. Instead, the Restore-CsDeviceUpdateRule cmdlet restores instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdate.Rule object.

Related Links
Approve-CsDeviceUpdateRule
Get-CsDeviceUpdateRule
Remove-CsDeviceUpdateRule
Reset-CsDeviceUpdateRule
minutes to read • Edit Online

Revoke-CsClientCertificate
In ths Article

Client certificates provide a way for users to be authenticated when logging on to Skype for Business Server.
Certificates are particularly useful for telephones and other devices running Skype for Business where it is difficult
to enter a user name and/or password. The `Revoke-CsClientCertificate` cmdlet provides a way for administrators
to revoke client certificates that have been issued to a user. This cmdlet was introduced in Lync Server 2010.

Syntax
Revoke-CsClientCertificate [-Identity] <UserIdParameter> [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Client certificates provide an alternate way for users to be authenticated by Skype for Business Server. Instead of
providing a user name and password, users present the system with an X.509 certificate. (This certificate must have
a subject name or subject alternative name that identifies the user.) To be authenticated, users only need to type in a
personal identification number (PIN ); it's typically easier for a mobile phone user to type in a PIN than to type in an
alphanumeric user name and/or password.
At any time administrators can revoke the client certificates that have been issued to a user by using the
Revoke-CsClientCertificate cmdlet. The Revoke-CsClientCertificate cmdlet revokes all the client certificates issued
to the user in question from the server.
The Revoke-CsClientCertificate cmdlet does not delete certificates from the client device itself; certificates are only
deleted from the server. However, this is sufficient to prevent a client from using certificates for authentication
purposes: if a certificate cannot be found on the server than the authentication request will be denied.
Note that, by default, the firewall exceptions for SQL Server Express are not enabled when you install the Standard
Edition of Skype for Business Server. In turn, that means that you will not be able to run the
Revoke-CsClientCertificate cmdlet from a remote instance of Windows PowerShell; that's because your command
will not be able to traverse the firewall and access the SQL Server Express database. (However, you can still run the
cmdlet locally; that is, on the Standard Edition server itself.) If you are using Standard Edition and need to run the
Revoke-CsClientCertificate cmdlet remotely you must manually enable the firewall exceptions for SQL Server
Express.

Examples
-------------------------- Example 1 ------------------------

Revoke-CsClientCertificate -Identity "Ken Myer"

The command shown in Example 1 revokes all the client certificates currently assigned to Ken Myer; this is done by
calling the Revoke-CsClientCertificate cmdlet followed by the Identity of the user whose certificates are to be
revoked.
-------------------------- Example 2 ------------------------

Get-CsUser | Revoke-CsClientCertificate

Example 2 revokes all the client certificates that have been issued in your organization. To do this, the Get-CsUser
cmdlet is first called in order to return a collection of all the users in your organization who have been enabled for
Skype for Business Server. This collection is then piped to the Revoke-CsClientCertificate cmdlet, which deletes
the certificates for each user in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account for which certificates are to be revoked. User Identities can be specified by
using one of four formats: 1) the user's Session Initiation Protocol (SIP ) address; 2) the user's user principal name
(UPN ); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer)
and 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by
using the user's Active Directory distinguished name.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Revoke-CsClientCertificate
cmdlet accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
None. Instead, the Revoke-CsClientCertificate cmdlet revokes instances of the
Microsoft.Rtc.Management.UserPinService.CertInfoDetails object.

Related Links
Get-CsClientCertificate
minutes to read • Edit Online

Revoke-CsOUPermission
In ths Article

Revokes the Skype for Business Server management permissions that have been granted on an Active Directory
organizational unit (OU ). This cmdlet was introduced in Lync Server 2010.

Syntax
Revoke-CsOUPermission -ObjectType <ObjectType> -OU <String> [-Domain <Fqdn>] [-DomainController <Fqdn>]
[-GlobalCatalog <Fqdn>] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
If you have locked down your Active Directory domain (that is, if you have disabled permission inheritance) then
the domain preparation that takes place when you install Skype for Business Server will not be able to add the
permissions needed to manage users, computers, contacts, application contacts and InetOrg persons. (Enterprise
administrators and domain administrators will still be able to manage these objects, but no one else, including
members of the RTCUniversalServerAdmins group, will have management permissions.) In that case, you will need
to use the Grant-CsOUPermission cmdlet to grant the required security groups the required permissions. This must
be done on a container-by-container basis for each Active Directory container that includes Skype for Business
Server user accounts.
Permissions granted by using the Grant-CsOUPermission cmdlet can later be removed by using
Revoke-CsOUPermission . If you run the Revoke-CsOUPermission cmdlet against an OU you will then need to be an
enterprise administrator or a domain administrator in order to manage Skype for Business Server users in that OU.

Examples
-------------------------- Example 1 ------------------------

Revoke-CsOUPermission -OU "ou=Redmond,dc=litwareinc,dc=com" -ObjectType "user"

The command shown in Example 1 revokes user management permissions (-ObjectType "user") for the Redmond
OU in the domain litwareinc.com.
-------------------------- Example 2 ------------------------

Revoke-CsOUPermission -OU "ou=Redmond,dc=litwareinc,dc=com" -ObjectType "user","contact","inetOrgPerson"

In Example 2, three different management permissions (user, contact and inetOrgPerson objects) are removed
from the Redmond OU in the domain litwareinc.com.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
Name of the domain where the OU is located. If this parameter is not included the Revoke-CsOUPermission cmdlet
will look for the OU in the current domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables administrators to specify the fully qualified domain name (FQDN ) of the domain controller to be used
when running the Revoke-CsOUPermission cmdlet. If not specified, the cmdlet will use the first available domain
controller.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalCatalog
Fully qualified domain name of a global catalog server in your domain. This parameter is not required if you are
running the Revoke-CsOUPermission cmdlet on a computer with an account in your domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ObjectType
Type of object covered by these permissions. Valid values are:
User
Computer
Contact
AppContact
InetOrgPerson
To revoke permissions to multiple object types in the same command, separate the object types by using commas:
-ObjectType "user","computer","contact"

Type: ObjectType
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OU
Distinguished name of the OU where permissions are to be removed. For example:
-OU "ou=Redmond,dc=litwareinc,dc=com

You can only remove permissions from a single OU per command.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\OUPermissions.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Revoke-CsOUPermission cmdlet does not accept pipelined input.

Outputs
The Revoke-CsOUPermission cmdlet does not return any objects or values.

Related Links
Grant-CsOUPermission
Test-CsOUPermission
minutes to read • Edit Online

Revoke-CsSetupPermission
In ths Article

Revokes the Skype for Business Server setup rights that have been granted on an Active Directory organizational
unit (OU ). This cmdlet was introduced in Lync Server 2010.

Syntax
Revoke-CsSetupPermission -ComputerOU <String> [-Domain <Fqdn>] [-DomainController <Fqdn>]
[-GlobalCatalog <Fqdn>] [-Force] [-Report <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The domain preparation that takes place when you install Skype for Business Server does not automatically add the
rights that enable members of the RTCUniversalServerAdmins group to run the Enable-CsTopology cmdlet. That
means that, by default, you must be a domain administrator in order to enable a topology. To give members of the
RTCUniversalServerAdmins group the right to enable a topology, you must run the Grant-CsSetupPermissions
cmdlet. In addition, you will need to run this cmdlet against each Active Directory container that hosts computers
running Skype for Business Server.
Rights granted by using the Grant-CsSetupPermission cmdlet can later be removed by using the
Revoke-CsSetupPermission cmdlet. If you run that cmdlet, the RTCUniversalServerAdmins group will no longer have
Skype for Business Server setup rights for the specified Active Directory container. In that case, you will need to be
an enterprise administrator or a domain administrator in order to enable a Skype for Business Server topology.

Examples
-------------------------- Example 1 ------------------------

Revoke-CsSetupPermission -ComputerOU "ou=CsServers,dc=litwareinc,dc=com"

The command shown in Example 1 revokes the setup rights applied to the CsServers OU in the domain
litwareinc.com.

Parameters
-ComputerOU
Distinguished name (DN ) of the OU that contains the accounts for the computers where Skype for Business Server
will be (or has been) installed. For example:
-ComputerOU "ou=CsServers,dc=litwareinc,dc=com"

If you prefer you can leave off the domain portion of the distinguished name when specifying the OU. For example:
-ComputerOU "ou=CsServers"
Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Domain
Name of the domain where the OU is located. If this parameter is not included, then the Revoke-CsSetupPermission
cmdlet will look for the OU in the current domain.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Fully qualified name of the domain controller to be contacted when assigning the policy. For example:
-DomainController atl-dc-001.litwareinc.com

If not specified, the Revoke-CsSetupPermission cmdlet will contact the nearest available domain controller when
assigning the policy.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-GlobalCatalog
Fully qualified name of the global catalog server to be contacted when assigning the policy. For example:
-GlobalCatalog atl-dc-001.litwareinc.com

If not specified, the Revoke-CsSetupPermission cmdlet will contact the nearest available global catalog server when
assigning the policy.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\OUPermissions.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Revoke-CsSetupPermission cmdlet does not accept pipelined input.

Outputs
None.

Related Links
Grant-CsSetupPermission
Test-CsSetupPermission
minutes to read • Edit Online

Search-CsClsLogging
In ths Article

Provides a command-line option for searching the centralized logging service log files. This cmdlet was introduced
in Lync Server 2013.

Syntax
Search-CsClsLogging [-AsXml] [-CallId <String>] [-Components <String[]>] [-Computers <String[]>]
[-ConferenceId <String>] [-CorrelationIds <String[]>] [-EndTime <DateTime>] [-IP <IPAddress>]
[-LogLevel <String>] [-MatchAll] [-MatchAny] [-OutputFilePath <String>] [-Phone <String>] [-Pools <String[]>]
[-SipContents <String>] [-SkipNetworkLogs] [-StartTime <DateTime>] [-Uri <String>] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.

Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
The Search-CsClsLogging cmdlet provides a command line option for searching the log files generated by the
centralized logging service.
Skype for Business Server Control Panel: The functions carried out by the Search-CsClsLogging cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Search-CsClsLogging -Computers "atl-cs-001.litwareinc.com" -IP "192.168.0.242"

The command shown in Example 1 searches for the IP address 192.168.0.242 in the log files found on the
computer atl-cs-001.litwareinc.com.
-------------------------- Example 2 --------------------------
Search-CsClsLogging -Computers "atl-cs-001.litwareinc.com" -IP "192.168.0.242" -Uri
"sip:kenmyer@litwareinc.com" -MatchAll

In Example 2, a search is made for entries that match both the IP address 192.168.0.242 and the Uri
sip:kenmyer@litwareinc.com. The MatchAll parameter specifies that all the criteria must be met for an entry to be
recorded as a match.
-------------------------- Example 3 --------------------------

Search-CsClsLogging -Computers "atl-cs-001.litwareinc.com" -IP "192.168.0.242" -Uri


"sip:kenmyer@litwareinc.com" -MatchAny

The command shown in Example 3 searches for entries that match either the IP address 192.168.0.242 or the Uri
sip:kenmyer@litwareinc.com. The MatchAny parameter specifies that just one of the criteria must be met for an
entry to be recorded as a match.

Parameters
-AsXml
When specified, return code information from each computer searched is returned in XML format instead of as a
string value.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallId
Call identifier to be searched for.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Components
Comma-separated list of components to be searched.

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Computers
Comma-separated list of the computers to be searched. For example:
-Computers "server-cs-001.litwareinc.com", "server-cs-002.litwareinc.com"

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConferenceId
Conference ID to be searched for.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CorrelationIds
Comma-separated list of correlation IDs to search for. A correlation is a 32 bit integer associated with each request.

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EndTime
Ending date and time for the log entries to be searched. Specified in local time zone. Defaults to 5 minutes after
current time if no StartTime specified, otherwise defaults to 30 minutes after StartTime. For example, on computer
running the US English version of Skype for Business Server, this syntax limits the search to entries recorded prior
to 8:00 AM on August 31, 2012:
-EndTime "8/31/2012 8:00AM"

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IP
IP address being searched for. This must be an actual IP address; you cannot use wildcards when specifying the
address.
Type: IPAddress
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogLevel
Specifies the minimum type of log entry to be returned. Allowed values are:
Fatal
Error
Warning
Info
Verbose
Debug
All
"Minimum type of entry to be returned" means that the Search-CsClsLogging cmdlet will return all log entries at
that level of severity plus all log entries with a higher level of severity. For example, if you set the LogLevel to
Warning then the cmdlet will return entries marked as Fatal and Error as well as entries marked as Warning.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MatchAll
When present, all the included criteria must be matched. This is similar to an AND query in SQL Server.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MatchAny
When present, only one of the included criteria must be matched. This is similar to an OR query in SQL Server.
This is the default.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-OutputFilePath
When present, specifies the full path of where to write a text file containing the search results. Otherwise they are
written to the console.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Phone
Phone number to be searched for. This number should be entered using the E.164 format and should not include
wildcard characters.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pools
Comma-separated list of the pools to be searched. For example:
-Pools "atl-cs-001.litwareinc.com", "red-cs-001.litwareinc.com"

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipContents
Arbitrary text to search for within the body of a SIP message.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipNetworkLogs
When present, instructs the Search-CsClsLogging cmdlet to avoid searching network logs.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-StartTime
Beginning date and time for the log entries to be searched. Specified in local time zone. Defaults to 30 minutes
before EndTime. For example, on computer running the US English version of Skype for Business Server, this
syntax limits the search to entries recorded at 8:00 AM on or after August 1, 2012:
-StartTime "8/1/2012 8:00AM"

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Uri
Uri to be searched for.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Search-CsClsLogging cmdlet does not accept pipelined input.

Outputs
String values or XML.

Related Links
Show -CsClsLogging
Start-CsClsLogging
Stop-CsClsLogging
Sync-CsClsLogging
Update-CsClsLogging
minutes to read • Edit Online

Search-CsOnlineTelephoneNumberInventory
In ths Article

Use the `Search-CsOnlineTelephoneNumberInventory` cmdlet to reserve a telephone numbers that are in


inventory and available to be acquired.

Syntax
Search-CsOnlineTelephoneNumberInventory [-Tenant <Guid>] -RegionalGroup <String>
-CountryOrRegion <String> -Area <String> -CapitalOrMajorCity <String> -Quantity <Int32>
[-TelephoneNumber <String>] [-AreaCode <String>] -InventoryType <String> [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

Description
Acquiring tenant telephone numbers is a two step process.
+12127539059 +1 (212) 753 9059
Select-CsOnlineTelephoneNumberInventory -ReservationId 76ce711f-9da4-46d9-b81d-471172450443 -TelephoneNumbers
12127539058,12127539059 -Region NOAM -Country US -Area NY -City NY

Examples
-------------------------- Example 1 --------------------------

Search-CsOnlineTelephoneNumberInventory -InventoryType Service -Region NOAM -Country US -Area NY -City NY -


Quantity 10

This example reserves 10 Service type telephone numbers in New York, New York.

Parameters
-Area
Specifies the target geographical area for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AreaCode
Specifies the area code to search for telephone numbers.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CapitalOrMajorCity
Specifies the target geographical city for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the target country for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InventoryType
Specifies the target telephone number type for the cmdlet. Acceptable values are:
"Service" for numbers assigned to conferencing support.
"Subscriber" for numbers supporting public switched telephone network (PSTN ) functions.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Quantity
Specifies the quantity of telephone numbers to reserve. The maximum value is 500.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegionalGroup
Specifies the target geographical region for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumber
Specifies either an individual telephone number to reserve, or multiple telephone numbers can be entered
separated by a comma.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies your tenant identifier. To find your tenant id use the command: Get-CsTenant | fl objectid .

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
This cmdlets returns an Microsoft.Rtc.Management.Hosted.Bvd.Types.NumberReservationResponse object.
minutes to read • Edit Online

Select-CsOnlineTelephoneNumberInventory
In ths Article

Use the `Select-CsOnlineTelephoneNumberInventory` cmdlet to acquire a list of inventoried telephone numbers


and associate them with a Business Voice Directory tenant. The input must be from a telephone number search
operation generated by the `Search-CsOnlineTelephoneNumberInventory` cmdlet.

Syntax
Select-CsOnlineTelephoneNumberInventory [-Tenant <Guid>] -RegionalGroup <String>
-CountryOrRegion <String> -Area <String> -CapitalOrMajorCity <String> -ReservationId <String>
-TelephoneNumbers <String[]> [-LocationId <Guid>] [-DomainController <Fqdn>] [-Force]
[<CommonParameters>]

Description
Acquiring tenant telephone numbers is a two step process.
+12127539059 +1 (212) 753 9059
Select-CsOnlineTelephoneNumberInventory -ReservationId 76ce711f-9da4-46d9-b81d-471172450443 -TelephoneNumbers
12127539058,12127539059 -RegionalGroup NOAM -CountryOrRegion US -Area NY -CapitalOrMajorCity NY

Examples
-------------------------- Example 1 --------------------------

Select-CsOnlineTelephoneNumberInventory -ReservationId 76ce711f-9da4-46d9-b81d-471172450443 -TelephoneNumbers


12127539058,12127539059 -RegionalGroup NOAM -CountryOrRegion US -Area NY -CapitalOrMajorCity NY

This example assigns two telephone numbers to New York City.

Parameters
-Area
Specifies the target geographical area for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CapitalOrMajorCity
Specifies the target geographical city for the cmdlet.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryOrRegion
Specifies the target country for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this
parameter are either the fully qualified domain name (FQDN ) or the computer name.
This parameter is reserved for internal Microsoft use.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LocationId
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RegionalGroup
Specifies the target geographical region for the cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReservationId
Specifies the telephone number reservation to access. The reservation itself is created by the
Search-CsOnlineTelephoneNumberInventory cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelephoneNumbers
Specifies the telephone numbers you wish to assign, separated by commas. The numbers must be in E.164 format.

Type: String[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Specifies the globally unique identifier (GUID ) of your Skype for Business Online tenant account. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" . You can find your tenant ID by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
This cmdlets returns an Microsoft.Rtc.Management.Hosted.Bvd.Types.NumberReservationResponse object.
minutes to read • Edit Online

Set-CsAccessEdgeConfiguration
In ths Article

Modifies the property values of an existing collection of Access Edge configuration settings for computers running
the Access Edge service. The Access Edge service running on these computers (also known as Edge servers)
provides a way for users outside your internal network to communicate with users inside that internal network.
This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsAccessEdgeConfiguration [[-Identity] <XdsIdentity>] [-AllowAnonymousUsers <Boolean>]
[-AllowFederatedUsers <Boolean>] [-AllowOutsideUsers <Boolean>] [-EnableArchivingDisclaimer <Boolean>]
[-KeepCrlsUpToDateForPeers <Boolean>] [-MarkSourceVerifiableOnOutgoingMessages <Boolean>]
[-OutgoingTlsCountForFederatedPartners <UInt32>] [-Force] [-WhatIf] [-Confirm]
[-CertificatesDeletedPercentage <UInt32>] [-DiscoveredPartnerReportPeriodMinutes <UInt32>]
[-DiscoveredPartnerStandardRate <UInt32>] [-EnableDiscoveredPartnerContactsLimit <Boolean>]
[-EnableUserReplicator <Boolean>] [-MaxAcceptedCertificatesStored <UInt32>]
[-MaxContactsPerDiscoveredPartner <UInt32>] [-MaxRejectedCertificatesStored <UInt32>]
[-DnsSrvCacheRecordCount <UInt32>] [-SkypeSearchUrl <String>] [<CommonParameters>]

Set-CsAccessEdgeConfiguration [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsAccessEdgeConfiguration [-AllowAnonymousUsers <Boolean>] [-AllowFederatedUsers <Boolean>]


[-AllowOutsideUsers <Boolean>] [-DefaultRouteFqdn <String>] [-EnableArchivingDisclaimer <Boolean>]
[-IsPublicProvider <Boolean>] [-KeepCrlsUpToDateForPeers <Boolean>]
[-MarkSourceVerifiableOnOutgoingMessages <Boolean>] [-OutgoingTlsCountForFederatedPartners <UInt32>]
[-VerificationLevel <VerificationLevelType>] [-Force] [-WhatIf] [-Confirm] [-UseDefaultRouting]
[-CertificatesDeletedPercentage <UInt32>] [-DiscoveredPartnerReportPeriodMinutes <UInt32>]
[-DiscoveredPartnerStandardRate <UInt32>] [-EnableDiscoveredPartnerContactsLimit <Boolean>]
[-EnableUserReplicator <Boolean>] [-MaxAcceptedCertificatesStored <UInt32>]
[-MaxContactsPerDiscoveredPartner <UInt32>] [-MaxRejectedCertificatesStored <UInt32>]
[-DnsSrvCacheRecordCount <UInt32>] [-SkypeSearchUrl <String>] [<CommonParameters>]

Set-CsAccessEdgeConfiguration [-AllowAnonymousUsers <Boolean>] [-AllowFederatedUsers <Boolean>]


[-AllowOutsideUsers <Boolean>] [-EnableArchivingDisclaimer <Boolean>] [-EnablePartnerDiscovery <Boolean>]
[-KeepCrlsUpToDateForPeers <Boolean>] [-MarkSourceVerifiableOnOutgoingMessages <Boolean>]
[-OutgoingTlsCountForFederatedPartners <UInt32>] [-UseDnsSrvRouting] [-Force] [-WhatIf] [-Confirm]
[-BeClearingHouse <Boolean>] [-CertificatesDeletedPercentage <UInt32>]
[-DiscoveredPartnerReportPeriodMinutes <UInt32>] [-DiscoveredPartnerStandardRate <UInt32>]
[-DiscoveredPartnerVerificationLevel <VerificationLevelType>]
[-EnableDiscoveredPartnerContactsLimit <Boolean>] [-EnableUserReplicator <Boolean>]
[-MaxAcceptedCertificatesStored <UInt32>] [-MaxContactsPerDiscoveredPartner <UInt32>]
[-MaxRejectedCertificatesStored <UInt32>] [-DnsSrvCacheRecordCount <UInt32>] [-SkypeSearchUrl <String>]
[<CommonParameters>]

Description
Edge servers (also known as access proxy servers) provide a way for you to extend the capabilities of Skype for
Business Server to people who are not logged on to your internal network. For example, if you have remote users,
authenticated users who log on to Skype for Business Server over the Internet rather than through the internal
network, you will need to set up an Edge server in order to provide access to these users. Likewise, Edge Servers
are required if you want to establish federation with another organization, or if you want to give your users the
right to communicate with people who have accounts with a public instant messaging service such as Yahoo!, AOL,
or MSN. Access Edge servers are located on the perimeter network and are used to make and validate SIP
connections between users inside and users outside your internal network.
In Skype for Business Server, the Access Edge servers are managed using a single, global collection of
configuration settings; the Set-CsAccessEdgeConfiguration cmdlet enables you to modify these global settings. Note
that the properties that can be modified depend on the routing type you choose for your Edge Servers. For
example, if you choose to use Domain Name System (DNS ) service routing, you will see and be able to change the
property values BeClearinghouse and EnablePartnerDiscovery. If you use default routing, those two property
values will not be available. Instead, you will see and be able to change the property values VerificationLevel and
IsPublicProvider.

Examples
-------------------------- Example 1 ------------------------

Set-CsAccessEdgeConfiguration -AllowAnonymousUsers $True -VerificationLevel "UseSourceVerification"

In Example 1, two properties of the Access Edge configuration settings are modified: the AllowAnonymousUsers
property is set to True and the VerificationLevel property is set to UseSourceVerification.
-------------------------- Example 2 ------------------------

Set-CsAccessEdgeConfiguration -UseDefaultRouting -DefaultRouteFqdn "atl-edge-001.litwareinc.com"

The command shown in Example 2 changes the routing method for the Edge server to default routing. In order to
do this the command must include both the UseDefaultRouting parameter and the DefaultRouteFqdn parameter,
along with a parameter value that specifies the fully qualified domain name of the Edge server.
-------------------------- Example 3 ------------------------

Set-CsAccessEdgeConfiguration -UseDnsSrvRouting -EnablePartnerDiscovery $True

Example 3 changes the routing method for the Edge server to DNS server routing. This requires the use of two
parameters: UseDnsSrvRouting (with no parameter value) and EnablePartnerDiscovery (with the parameter value
$True).

Parameters
-AllowAnonymousUsers
Indicates whether or not anonymous users (that is, unauthenticated users) are allowed to cross the firewall and join
meetings and conferences. The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowFederatedUsers
Indicates whether internal users are allowed to communicate with users from federated domains. This property
also determines whether internal users can communicate with users in a split domain scenario. (In a split domain,
some of your users have accounts hosted on-premises, while others have accounts hosted off-premises.) The
default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowOutsideUsers
Indicates whether users can access Skype for Business Server across the Internet. This includes both anonymous
users and remote users who are trying to log on to the system. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BeClearingHouse
Indicates whether your Edge servers are directly connected to other organizations. The default value is False. This
parameter should not be changed unless you are instructed to do so by Microsoft support personnel.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CertificatesDeletedPercentage
The default value is 20.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultRouteFqdn
Fully qualified domain name (FQDN ) of the server used for federation requests. This parameter is required if you
use default routing.
Note that you must delete all your hosting providers and all your public providers before you can assign a new
default route.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DiscoveredPartnerReportPeriodMinutes
The default value is 60.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DiscoveredPartnerStandardRate
The default value is 20.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DiscoveredPartnerVerificationLevel
Sets the verification level for messages sent to and from the discovered partner. Allowed values are:
AlwaysVerifiable
AlwaysUnverifiable
UseSourceVerification
Type: VerificationLevelType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DnsSrvCacheRecordCount
Maximum number of DNS SRV records that can be maintained in the cache. SRV records are used to specify
service locations and port numbers.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableArchivingDisclaimer
If set to True, Edge Servers send an archiving notification header to federated and clearinghouse partners. This
notification (which informs people that instant messaging (IM ) conversations might be archived) can be displayed
in the conversation window of a federated or clearinghouse user. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDiscoveredPartnerContactsLimit
When set to True (the default value), enables user enumeration protection for Discovered Partner federated peers.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePartnerDiscovery
If True, Skype for Business Server will use DNS records to try and discover partner domains not listed in the
AllowedDomains list. If False, Skype for Business Server will only federate with domains found on the
AllowedDomains list. This parameter is required if you use DNS service routing. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableUserReplicator
The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the Access Edge configuration settings to be returned. Because you can only have a single,
global instance of these settings, you do not have to include the Identity when calling the
Set-CsAccessEdgeConfiguration cmdlet. However, if you prefer, you can use the following syntax to modify the
global settings: -Identity global .

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-IsPublicProvider
Must be set to True if the default route requires a public instant messaging license.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeepCrlsUpToDateForPeers
Determines whether or not Edge servers periodically check the certificate revocation lists (CRLs) for federated
domain certificates. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MarkSourceVerifiableOnOutgoingMessages
If True, outgoing messages are marked as verifiable; this enables federated domains to determine the verification
level for each message. If False, outgoing messages are all marked as unverifiable. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxAcceptedCertificatesStored
Maximum number of allowed certificates cached by the Edge Server. The default value is 1000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxContactsPerDiscoveredPartner
Maximum number of contacts allowed per discovered partner. The default value is 1000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxRejectedCertificatesStored
Maximum number of rejected certificates cached by the Edge Server. The default value is 500.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OutgoingTlsCountForFederatedPartners
Specifies the maximum number of Transport Layer Security (TLS ) connections that can be used for each federated
partner. The minimum number of TLS connections is 1, and the maximum number is 4. By default,
OutgoingTlsCountForFederatedPartners is set to 4. This parameter should not be changed unless you are
instructed to do so by Microsoft support personnel.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkypeSearchUrl
URL for the Skype Graph Search service. This service enables Skype for Business to search for Skype contacts.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseDefaultRouting
Indicates that administrators must specify the fully qualified domain name of the server used to send and receive
federation requests. If you include the UseDefaultRouting parameter then you must also include the
DefaultRouteFqdn parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseDnsSrvRouting
Indicates that Edge servers should rely on DNS SRV records when sending and receiving federation requests. This
is the default routing method.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VerificationLevel
If you are using default routing, the VerificationLevel property is used to monitor and assess the verification level of
incoming messages. Valid values are:
AlwaysVerifiable: All requests received on the default route are marked as verified. If a verification header is not
present it will automatically be added to the message.
AlwaysUnverifiable: Messages are passed only if the addressee (the user the message is intended for) has
configured an Allow ACE (access control entry) for the person who sent the message.
UseSourceVerification: Message verification is based on the verification level included with the message. If no
verification header is present then the message will be marked as unverified.

Type: VerificationLevelType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Set-CsAccessEdgeConfiguration cmdlet does not accept pipelined input.

Outputs
The Set-CsAccessEdgeConfiguration cmdlet does not return any objects or values.

Related Links
Get-CsAccessEdgeConfiguration
minutes to read • Edit Online

Set-CsAddressBookConfiguration
In ths Article

Modifies an existing collection of Address Book configuration settings. This cmdlet was introduced in Lync Server
2010.

Syntax
Set-CsAddressBookConfiguration [[-Identity] <XdsIdentity>] [-EnableFileGeneration <Boolean>]
[-IgnoreGenericRules <Boolean>] [-KeepDuration <UInt32>] [-MaxDeltaFileSizePercentage <UInt32>]
[-RunTimeOfDay <DateTime>] [-SynchronizePollingInterval <TimeSpan>] [-UseNormalizationRules <Boolean>]
[-Force] [-WhatIf] [-Confirm] [-EnablePhotoSearch <Boolean>] [-EnableSearchByDialPad <Boolean>]
[-MaxFileShareThreadCount <Int32>] [-PhotoCacheRefreshInterval <TimeSpan>] [<CommonParameters>]

Set-CsAddressBookConfiguration [-Instance <PSObject>] [-EnableFileGeneration <Boolean>]


[-IgnoreGenericRules <Boolean>] [-KeepDuration <UInt32>] [-MaxDeltaFileSizePercentage <UInt32>]
[-RunTimeOfDay <DateTime>] [-SynchronizePollingInterval <TimeSpan>] [-UseNormalizationRules <Boolean>]
[-Force] [-WhatIf] [-Confirm] [-EnablePhotoSearch <Boolean>] [-EnableSearchByDialPad <Boolean>]
[-MaxFileShareThreadCount <Int32>] [-PhotoCacheRefreshInterval <TimeSpan>] [<CommonParameters>]

Description
Address Book servers are intermediaries between AD DS and Skype for Business Server. The Address Book server
ensures that the user information stored in Skype for Business Server is in synch with the user information stored
in AD DS. This is done by periodically synching Address Book files with information stored in the User database.
In addition, Address Book servers periodically generate index files that are downloaded to computers running
Skype for Business Server. When a user searches for contacts, he or she either search through these index files or
search the Address Book index files stored in the Central Management store.
Address Book servers are governed using Address Book configuration settings; these settings determine such
things as how often Address Book files are synchronized with the user database and how often these Address Book
index files are generated. When you install Skype for Business Server, a set of global Address Book settings is
created for you. You can also create custom configuration settings that can be applied to individual sites. These
settings, if they exist, apply to any Address Book servers operating in the site, and take precedence over the global
settings.
The Set-CsAddressBookConfiguration cmdlet enables you to modify any of the Address Book configuration settings
collection currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------

Set-CsAddressBookConfiguration -identity site:Redmond -RunTimeOfDay 23:00


This example sets the RunTimeOfDay property (the property that determines the time of day when Address Book
synchronization takes place) to 23:00 (11:00 PM on a 24-hour clock). The Identity parameter is used to limit the
change to the Address Book configuration settings with the identity site:Redmond.
-------------------------- Example 2 --------------------------

Get-CsAddressBookConfiguration -Filter site:* | Set-CsAddressBookConfiguration -RunTimeOfDay 23:00

In Example 2, the RunTimeOfDay property is set to 11:00 PM (23:00) for all the Address Book setting collections
configured at the site scope. To do this, the command first uses the Get-CsAddressBookConfiguration cmdlet and the
Filter parameter to return a collection of all the site-specific settings; the filter value "site:*" limits the returned data
to collections configured at the site scope. This information is then piped to the Set-CsAddressBookConfiguration
cmdlet, which modifies the value of the RunTimeOfDay property for each item in the collection.
-------------------------- Example 3 --------------------------

Get-CsAddressBookConfiguration | Where-Object {$_.KeepDuration -lt 30} | Set-CsAddressBookConfiguration -


KeepDuration 30

Example 3 modifies the KeepDuration property for any Address Book settings collections where KeepDuration is
less than 30 days. To carry out this task, the Get-CsAddressBookConfiguration cmdlet is used, without any additional
parameters, to return a collection of all the Address Book settings configured for use in the organization. This
collection is then piped to the Where-Object cmdlet, which selects only those settings where the KeepDuration
property is less than 30 days. This filtered collection is then piped to the Set-CsAddressBookConfiguration cmdlet,
which changes the value of the KeepDuration property for each item in the collection to 30 days.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFileGeneration
When set to True (the default value) the Address Book server generates Address Book index files that can be
downloaded by clients. When set to False, these index files are not generated. That means that client applications
will have to use the Address Book Web Query service when searching for contacts.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePhotoSearch
When set to True, user photos will be displayed in search results.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSearchByDialPad
When set to True, users will be able to search for contacts by using their mobile device keypad. This can be a
convenience for mobile users, but has the potential to greatly increase the size of your Address Book database.
The default value is True ($True).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier assigned to the collection of Address Book settings. To refer to the global settings, use this syntax:
-Identity global . To refer to a collection configured at the site scope, use syntax similar to this:
-Identity site:Redmond . You cannot use wildcard characters when specifying an Identity.

If this parameter is omitted, then the Set-CsAddressBookConfiguration cmdlet will modify the global settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IgnoreGenericRules
Indicates whether or not the Address Book server ignores the generic normalization rules used when parsing
phone numbers. Generic rules are the rules that are built into Skype for Business Server. These rules cannot be
changed; however, by setting the value of this property to True you can instruct your Address Book servers to
ignore these rules and instead use custom rules that you create yourself. The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-KeepDuration
Specifies the amount of time (in days) that Address Book servers will keep change files. Change files older than the
value of the KeepDuration property will be deleted. The KeepDuration can be set to any integer value between 1
and 90, inclusive. The default value is 30 days.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxDeltaFileSizePercentage
When changes are made to Active Directory (such as a new user being enabled for Skype for Business Server), the
Address Book server typically records these changes in a "delta file," a file consisting only of the updated
information; Skype for Business Server can then download the delta files rather than a complete Address Book file.
The MaxDeltaFileSizePercentage property determines how large the delta files can get before they are
incorporated into the complete Address Book file. By default, delta files can be as large as 20 percent of the
complete Address Book file before a new Address Book file is generated. At that point, clients will download the
complete file rather than a delta file.
MaxDeltaFileSizePercentage must be entered as a percentage value between 1 and 100, inclusive.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxFileShareThreadCount
Specifies the maximum number of system resources that can be used by the Address Book server if there are
problems accessing the service file share. The default value is 300.
Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PhotoCacheRefreshInterval
PARAMVALUE: TimeSpan

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RunTimeOfDay
Indicates the time of day when the servers generate new Address Book files. The RunTimeOfDay property is based
on a 24-hour clock (hours:minutes:seconds), with 00:00:00 representing midnight and 23:59:00 representing 11:59
P.M..
The default value is 01:30:00 (1:30 A.M.).

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SynchronizePollingInterval
Indicates how often Address Book servers synchronize their information with the information stored in the User
database. The SynchronizePollingInterval can be set to any value between 5 seconds (00:00:05) and 3 hours
(03:00:00). The default value is 5 minutes (00:05:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseNormalizationRules
Indicates whether Address Book servers should use phone normalization rules when retrieving phone numbers. If
set to False, phone numbers will be retrieved as-is and it will be up to the client application to apply normalization
rules when displaying these numbers.
The default value is True.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings object. The
Set-CsAddressBookConfiguration cmdlet accepts pipelined input of Address Book configuration objects.

Outputs
The Set-CsAddressBookConfiguration cmdlet does not return a value or object. Instead, the cmdlet configures
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings object.

Related Links
Get-CsAddressBookConfiguration
New -CsAddressBookConfiguration
Remove-CsAddressBookConfiguration
minutes to read • Edit Online

Set-CsAddressBookNormalizationConfiguration
In ths Article

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.

Syntax
Set-CsAddressBookNormalizationConfiguration [[-Identity] <XdsIdentity>]
[-AddressBookNormalizationRules <PSListModifier>] [-Confirm] [-Force] [-WhatIf] [<CommonParameters>]

Set-CsAddressBookNormalizationConfiguration [-AddressBookNormalizationRules <PSListModifier>] [-Confirm]


[-Force] [-Instance <PSObject>] [-WhatIf] [<CommonParameters>]

Description
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. (Note that an understanding of regular expressions is helpful
in order to understand what normalization rules do and how they do it.) In Skype for Business Server, the Address
Book normalization configuration settings represent collections of normalization rules designed to carry out these
conversions and translations for Address Book server. (These collections can be defined at the global scope or at
the site scope.) The Set-CsAddressBookNormalizationConfiguration cmdlet provides a way add or remove a
normalization rule from any of these collections.
In general, you will probably find it easier to add or remove rules by using the CsAddressBookNormalizationRule
cmdlets; these cmdlets enable you to add or remove rules using one command rather than two. However, as
Example 2 shows, the Set-CsAddressBookNormalizationConfiguration cmdlet does enable you to copy rules from one
collection to another.
Although Address Book normalization rules are very similar to voice normalization rules, the two are not
interchangeable: you cannot add voice normalization rules to an Address Book collection, nor can you add Address
Book normalization rules to a dial plan. That means that, in some cases, you might need to create identical rules:
one for assignment to Address Book servers, the other for assignment to dial plans.

Examples
-------------------------- Example 1 --------------------------

Remove-CsAddressBookNormalizationRule -Identity "global/LongDistanceRule"

The commands shown in Example 1 remove the Address Book normalization rule LongDistanceRule from the
global collection of Address Book normalization configuration settings. In order to carry out this task, the first
command in the example uses the Get-CsAddressBookNormalizationRule cmdlet to create an object reference to the
normalization rule with the Identity global/LongDistanceRule. The resulting object reference is stored in a variable
named $x.
The second command in the example then uses the Set-CsAddressBookNormalizationConfiguration cmdlet to remove
the rule global/LongDistanceRule from the global collection. This is done by including the
AddressBookNormalizationRules parameter and the syntax @{Remove=$x}.
$x = Get-CsAddressBookNormalizationRule -Identity "global/LongDistanceRule"

Set-CsAddressBookNormalizationConfiguration -Identity "global" -AddressBookNormalizationRules @{Remove=$x}

Alternatively, you could remove the rule by using the Remove-CsAddressBookNormalizationRule cmdlet
-------------------------- Example 2 --------------------------

$x = Get-CsAddressBookNormalizationRule -Identity "global/LongDistanceRule"

Set-CsAddressBookNormalizationConfiguration -Identity "site:Redmond" -AddressBookNormalizationRules @{Add=$x}

The commands shown in Example 2 demonstrate how you can use the
Set-CsAddressBookNormalizationConfiguration cmdlet to copy an Address Book normalization rule from one
collection to another. To do this, the first command in the example uses the Get-CsAddressBookNormalizationRule
cmdlet to create an object reference to the normalization rule with the Identity global/LongDistanceRule. The
resulting object reference is stored in a variable named $x.
The second command in the example then uses the Set-CsAddressBookNormalizationConfiguration cmdlet to add this
same rule to the configuration settings applied to the Redmond site. This is done by first connecting to the
configuration settings for the Redmond site, then using the AddressBookNormalizationRules parameter and the
syntax @{Add=$x} . When this command finishes running, both the global collection and the Redmond site collection
will have a normalization rule named LongDistanceRule.
-------------------------- Example 3 --------------------------

Set-CsAddressBookNormalizationConfiguration -Identity "site:Redmond" -AddressBookNormalizationRules $Null

In Example 3, all the Address Book normalization rules assigned to the Redmond site are deleted; this is done by
setting the AddressBookNormalizationRules parameter to a null value ($Null). Note that the Redmond site
collection will still exist. However, no normalization rules will be assigned to that collection.

Parameters
-AddressBookNormalizationRules
A set of normalization rules that have been applied to this collection of Address Book normalization configuration
settings.
While this set of rules can be modified directly using this cmdlet, it is recommended that you create normalization
rules with the New-CsAddressBookNormalizationRule cmdlet; this cmdlet creates the rule and assigns it to the specified
collection. You can then modify those rules by using the Set-CsAddressBookNormalizationRule cmdlet, or delete a
rule from a collection by using the Remove-CsAddressBookNormalizationRule cmdlet. In general, this is easier and less
error-prone than trying to modify a rules collection by using the Set-CsAddressBookNormalizationConfiguration
cmdlet and the AddressBookNormalizationRules parameter.
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of Address Book normalization configuration settings to be modified. To refer to
the global settings, use this syntax: -Identity "global"

To refer to a collection configured at the site scope, use syntax similar to this: -Identity "site:Redmond"

Note that you cannot use wildcards when specifying an Identity.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsAddressBookNormalizationConfiguration cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings object.

Outputs
None. Instead, the Set-CsAddressBookNormalizationConfiguration cmdlet modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings object.

Related Links
Get-CsAddressBookNormalizationConfiguration
New -CsAddressBookNormalizationConfiguration
Remove-CsAddressBookNormalizationConfiguration
Import-CsCompanyPhoneNormalizationRules
minutes to read • Edit Online

Set-CsAddressBookNormalizationRule
In ths Article

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.

Syntax
Set-CsAddressBookNormalizationRule [[-Identity] <XdsIdentity>] [-Confirm] [-Description <String>] [-Force]
[-Pattern <String>] [-Priority <Int32>] [-Translation <String>] [-WhatIf] [<CommonParameters>]

Set-CsAddressBookNormalizationRule [-Confirm] [-Description <String>] [-Force] [-Instance <PSObject>]


[-Pattern <String>] [-Priority <Int32>] [-Translation <String>] [-WhatIf] [<CommonParameters>]

Description
Normalization rules define the requirements for converting (or translating) numbers from an internal Skype for
Business Server format to a standard (E.164) format. (Note that an understanding of regular expressions is helpful
in order to understand what normalization rules do and how they do it.) Address Book normalization rules carry
out these conversions and translations for Address Book servers.
Although Address Book normalization rules are very similar to voice normalization rules, the two are not
interchangeable: you cannot add voice normalization rules to an Address Book collection, nor can you add Address
Book normalization rules to a dial plan. That means, in some cases, you might need to create identical rules: one for
assignment to Address Book servers, the other for assignment to dial plans.

Examples
-------------------------- Example 1 --------------------------

Set-CsAddressBookNormalizationRule -Identity "Global/RedmondAddresses" -Priority 1

The command shown in Example 1 changes the priority of the RedmondAddresses normalization rule found in the
global collection of Address Book normalization rules.
-------------------------- Example 2 --------------------------

Get-CsAddressBookNormalizationRule | Where-Object {$_.Translation -eq '+1206556$1'} Set-


CsAddressBookNormalizationRule -Translation '+1425556$1'

In Example 2, all the normalization rules that use the Translation +12065556$1 are updated to use the Translation
+14255556$1; this might be required if an area code changes from 206 to 425. To carry out this task, the
Get-CsAddressBookNormalizationRule cmdlet is called in order to return a collection of all the available normalization
rules. This collection is then piped to the Where-Object cmdlet, which picks out only those rules that have a
Translation equal to +12065556$1. Those rules are then piped to the Set-CsAddressBookTranslationRule , which
changes the Translation for each of these rules to +14255556$1.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide explanatory text that accompanies a normalization rule. For example, the
Description might explain how the rule converts phone numbers.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the rule. The Identity specified must include the scope followed by a slash followed by the
name; for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.
Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Pattern
A regular expression that the phone number must match in order for this rule to be applied.
The default value is ^(\d{11})$. This represents any set of numbers up to 11 digits.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
The order in which rules are applied; this is required because a given phone number might match more than one
rule. The Priority parameter sets the order in which the rules are tested against a number. If a phone number
matches multiple rules, the rule with the highest priority will be selected to do the conversion.
Note that, when you set a priority, any existing rules will renumber themselves accordingly.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Translation
The regular expression pattern that will be applied to the number to convert it to E.164 format.
The default value is +$. This prefixes the number with a plus sign (+).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsAddressBookNormalizationRule cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated
object.

Outputs
None. Instead, the Set-CsAddressBookNormalizationRule cmdlet modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated
object.

Related Links
Get-CsAddressBookNormalizationRule
New -CsAddressBookNormalizationRule
Remove-CsAddressBookNormalizationRule
minutes to read • Edit Online

Set-CsAdminRole
In ths Article

Modifies an existing role-based access control (RBAC ) role. RBAC roles are used to specify the management tasks
that users are allowed to carry out and to determine the scope in which users will be allowed to perform these
tasks. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsAdminRole [-Identity] <String>
[-ConfigScopes <System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.Core.ConfigScope]>]
[-UserScopes <System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.Core.UserScope]>]
[-Force] [-WhatIf] [-Confirm]
[-Cmdlets
<System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletTyp
e]>]
[-ScriptModules <System.Management.Automation.PSListModifier`1[System.String]>] [<CommonParameters>]

Description
RBAC enables administrators to delegate control of specific management tasks in Skype for Business Server. For
example, instead of granting your organization's help desk full administrator privileges you can give these
employees very specific rights: the right to manage only user accounts; the right to manage only Enterprise Voice
components; the right to manage only archiving and Archiving Server. In addition, these rights can be limited in
scope: someone can be given the right to manage Enterprise Voice, but only in the Redmond site; someone else can
be given the right to manage users, but only if those user accounts are in the Finance organizational unit (OU ).
The Skype for Business Server implementation of RBAC is based on two key elements: Active Directory security
groups and Windows PowerShell cmdlets. When you install Skype for Business Server, a number of universal
security groups, such as CsAdministrator, CsArchivingAdministrator and CsViewOnlyAdministrator, are created for
you. These universal security groups have a one-to-one correspondence with RBAC roles, which means that any
user who is in the CsArchivingAdministrator security group has all the rights granted to the
CsArchivingAdministrator RBAC role. In turn, the rights granted to an RBAC role are based on the cmdlets
assigned to that role (cmdlets can be assigned to multiple RBAC roles). For example, suppose a role has been
assigned the following cmdlets:
Get-ArchivingPolicy

Grant-ArchivingPolicy

New-ArchivingPolicy

Remove-ArchivingPolicy

Set-ArchivingPolicy

Get-ArchivingConfiguration
New-ArchivingConfiguration

Remove-ArchivingConfiguration

Set-ArchivingConfiguration

Get-CsUser

Export-CsArchivingData

Get-CsComputer

Get-CsPool

Get-CsService

Get-CsSite

The preceding list represents the only cmdlets that a user assigned a hypothetical RBAC role is allowed to run in a
remote Windows PowerShell command-line interface session. If the user tries to run the Disable-CsUser cmdlet,
that command will fail because users assigned the hypothetical role do not have the right to run the
Disable-CsUser cmdlet. This also applies to Skype for Business Server Control Panel. For example, an Archiving
Administrator cannot disable a user by using Skype for Business Server Control Panel because Skype for Business
Server Control Panel abides by RBAC roles. (Any time you run a command in Skype for Business Server Control
Panel, you are actually calling a Windows PowerShell cmdlet.) If you are not allowed to run the Disable-CsUser
cmdlet, it won't matter whether you directly run that cmdlet from Windows PowerShell or if you indirectly run the
cmdlet from within Skype for Business Server Control Panel: the command will fail.
Note that RBAC applies only to remote management. If you are logged on to a computer running Skype for
Business Server and you open Lync Server Management Shell, RBAC roles will not be enforced. Instead, security is
enforced primarily through the security groups RTCUniversalServerAdmins; RTCUniversalUserAdmins and
RTCUniversalReadOnlyAdmins.
When you install Skype for Business Server, Setup creates several built-in RBAC roles that cover common
administrative areas such as voice administration, user management and Response Group administration. These
built-in roles cannot be modified in any way: you cannot add or remove cmdlets to the roles and you cannot delete
these roles. (Any attempt to delete a built-in role will result in an error message.) However, you can use the built-in
roles to create custom RBAC roles. These custom roles can then be modified by changing the administrative
scopes; for example, you can limit the role to managing user accounts in a particular Active Directory OU.
Any custom role you create must be based on a template: an existing RBAC role. For example, to create a Dial-In
Conferencing Administrator role you must effectively clone an existing RBAC role (for example, you might base the
Dial-In Conferencing Administrator role on the existing Voice Administrator role). After the custom role has been
created, you can then use the Set-CsAdminRole cmdlet to modify the properties of that new role.

Examples
-------------------------- Example 1 ------------------------

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -UserScopes @{Add="OU:ou=Portland,dc=litwareinc,dc=com"}

Example 1 adds a new OU (Portland) to the UserScopes property for the RBAC role RedmondVoiceAdministrators.
To do this, the command includes the UserScopes parameter and the following parameter value:
@{Add="OU:ou=Portland,dc=litwareinc,dc=com"}. This syntax adds the OU with the distinguished name
"ou=Portland,dc=litwareinc,dc=com" to the OUs already in the UserScopes property.
-------------------------- Example 2 ------------------------

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -UserScopes


@{Remove="OU:ou=Portland,dc=litwareinc,dc=com"}

The command shown in Example 2 removes the Portland OU from the RBAC role RedmondVoiceAdministrators.
To do this, the command includes the UserScopes parameter and the following parameter value:
@{Remove="OU:ou=Portland,dc=litwareinc,dc=com"}. This syntax deletes the OU with the distinguished name
"ou=Portland,dc=litwareinc,dc=com" from the collection of OUs already in the UserScopes property.
-------------------------- Example 3 ------------------------

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -ConfigScopes @{Add="site:Redmond"}

In Example 3, a new site (one with the SiteId Redmond) is added to the ConfigScopes property for the RBAC role
RedmondVoiceAdministrators. To do this, the command includes the ConfigScopes parameter and the following
parameter value: @{Add="OU:ou=Portland,dc=litwareinc,dc=com"}. This syntax adds the Redmond site to any
items already in the ConfigScopes property.
-------------------------- Example 4 ------------------------

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -ConfigScopes @{Remove="site:Redmond"}

The command shown in Example 4 removes the Redmond site from the RBAC role RedmondVoiceAdministrators.
To do this, the command includes the ConfigScopes parameter and the following parameter value:
@{Remove="site:Redmond"}. This parameter deletes the Redmond site from the collection of items already in the
ConfigScopes property. Note that this command will fail if the Redmond site is the only site in the ConfigScopes
property. If you are removing the only site in the ConfigScopes property you should use a command similar to this,
which replaces all the items in ConfigScopes with the Global property:
Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -ConfigScopes @{Replace="Global"}

Parameters
-Cmdlets
Enables you to specify the cmdlets that will be available to users who hold the RBAC role. For example, to provide
access to just one cmdlet (the Export-CsArchivingData cmdlet) use syntax like this:

-Cmdlets "Export-CsArchivingData"

The preceding syntax replaces all the items currently stored in the Cmdlets property with the single item
Export-CsArchivingData . If you want to add the Export-CsArchivingData cmdlet to the cmdlets already stored in that
property, use this syntax instead:
-Cmdlets @{Add="Export-CsArchivingData"}

Multiple cmdlets can be added by separated the cmdlet names using commas:
-Cmdlets @{Add="Export-CsArchivingData","Invoke-CsArchivingDatabasePurge"}

To remove a cmdlet from a role, use this syntax:


-Cmdlets @{Remove="Export-CsArchivingData"}
Type:
System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletType
]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConfigScopes
Limits the scope of the cmdlet to configuration settings within the specified site. To limit the cmdlet scope to a
single site, use syntax similar to this: -ConfigScopes site:Redmond . Multiple sites can be specified by using a comma-
separated list: -ConfigScopes "site:Redmond, "site:Dublin" . You can also set the ConfigScopes property to "global".

When assigning a value to the ConfigScopes parameter you must use the "site:" prefix followed by the value of the
site's SiteId property; the SiteId is not necessarily the same value as the site's Identity or the site's DisplayName. To
determine the SiteId for a given site you can use a command similar to this:
Get-CsSite "Redmond" | Select-Object SiteId

You must specify a value for either (or both) the ConfigScopes and UserScopes properties.

Type: System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.Core.ConfigScope]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the RBAC role to be modified. The Identity for an RBAC role must be the same as the
SamAccountName for the Active Directory universal security group associated with that role. For example, the help
desk role has an Identity equal to CsHelpDesk; CsHelpDesk is also the SamAccountName of the Active Directory
security group associated with that role.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-ScriptModules
Enables you to specify a function within a Windows PowerShell script that will then be available to users who hold
the new RBAC role. For example, this syntax provides access to a function named Reset in a script named
UpdateDatabase.ps1 :
-ScriptCmdlets "UpdateDatabase.ps1:Reset"

The preceding command replaces any scripts currently stored in the ScriptCmdlets property with the Reset
function and the UpdateDatabase.ps1 script. To add this script/function to items currently stored in the
ScriptCmdlets property use this syntax:
-ScriptCmdlets @{Add="UpdateDatabase.ps1:Reset"}

To remove a script/function use this syntax:


-ScriptCmdlets @{Add="UpdateDatabase.ps1:Reset"}

You can delete all the ScriptCmdlets assigned to a role by using this syntax:
-ScriptCmdlets $Null

Type: System.Management.Automation.PSListModifier`1[System.String]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserScopes
Limits the scope of the cmdlet to user management activities within the specified OU. To limit the cmdlet scope to a
single OU, use syntax similar to this: -UserScopes "OU:ou=Redmond,dc=litwareinc,dc=com" . Multiple OUs can be
specified by using a comma-separated list:
-UserScopes "OU:ou=Redmond,dc=litwareinc,dc=com", "OU:ou=Dublin,dc=litwareinc,dc=com" . To add new scopes (or
remove existing scopes) from a role, use the Windows PowerShell list modifiers syntax. For details, see the
Examples section in this Help topic.
You must specify a value for either (or both) the ConfigScopes and UserScopes properties.

Type: System.Management.Automation.PSListModifier`1[Microsoft.Rtc.Management.Core.UserScope]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None.

Outputs
The Set-CsAdminRole cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role object.
minutes to read • Edit Online

Set-CsAllowedDomain
In ths Article

Modifies property values for a domain (or domains) included on the list of domains approved for federation. After
a domain has been approved for federation (by being added to the allowed list), your users can exchange instant
messages and presence information with people who have accounts in the federated domain. This cmdlet was
introduced in Lync Server 2010.

Syntax
Set-CsAllowedDomain [[-Identity] <XdsGlobalRelativeIdentity>] [-Comment <String>]
[-MarkForMonitoring <Boolean>] [-ProxyFqdn <String>] [-Force] [-WhatIf] [-Confirm]
[-VerificationLevel <VerificationLevelType>] [<CommonParameters>]

Set-CsAllowedDomain [-Instance <PSObject>] [-Comment <String>] [-MarkForMonitoring <Boolean>]


[-ProxyFqdn <String>] [-Force] [-WhatIf] [-Confirm] [-VerificationLevel <VerificationLevelType>]
[<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications and otherwise communicate with one another by using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider
and 3) federation between your organization and a third-party hosting provider.
Setting up direct federation with another organization involves several tasks. To begin with, you must enable your
servers running the Skype for Business Server Access Edge service to allow federation. In addition, the other
organization must enable federation with you; federation cannot be established unless both parties agree to the
relationship.
To set up a federated relationship you might also need to manage two federation-related lists: the allowed list and
the blocked list. The allowed list represents the organizations you have chosen to federate with. If a domain appears
on the allowed list then (depending on your configuration settings) your users will be able to exchange instant
messages and presence information with users who have accounts in that federated domain. Conversely, the
blocked list represents domains that users are expressly forbidden from federating with; for example, messages
sent from a blocked domain will automatically be rejected by Skype for Business Server.
The Set-CsAllowedDomain cmdlet provides a way for you to modify property values for any domain on the list of
allowed domains.

Examples
-------------------------- Example 1 ------------------------
Set-CsAllowedDomain -Identity fabrikam.com -Comment "Contact: Ken Myer (kenmyer@fabrikam.com)"

The command shown in Example 1 modifies the Comment property for the allowed domain with the Identity
"fabrikam.com". This is done by including the Comment parameter and the appropriate parameter value: "Contact:
Ken Myer (kenmyer@fabrikam.com)".
-------------------------- Example 2 ------------------------

Get-CsAllowedDomain -Filter *fabrikam* | Set-CsAllowedDomain -Comment "Contact: Ken Myer


(kenmyer@fabrikam.com)"

Example 2 modifies the Comment property for all of the allowed domains that have the string value "fabrikam"
somewhere in their Identity. To carry out this task, the command first calls the Get-CsAllowedDomain cmdlet and the
Filter parameter. The filter value "fabrikam" instructs the Get-CsAllowedDomain cmdlet to return any domain where
the Identity includes the string value "fabrikam". (For example, this command returns domains such as
fabrikam.com, us.fabrikam.net and fabrikam-users.org). The filtered collection is then piped to the
Set-CsAllowedDomain cmdlet, which modifies for Comment property.

-------------------------- Example 3 ------------------------

Get-CsAllowedDomain | Where-Object {$_.Comment -eq $Null} | Set-CsAllowedDomain -Comment "Need contact


information."

Example 3 adds a generic comment ("Need contact information.") to each domain on the allowed list where the
Comment property currently has no value. To carry out this task, the command first calls the Get-CsAllowedDomain
cmdlet to retrieve a collection of all the domains on the allowed list. This collection is then piped to the
Where-Object cmdlet, which picks out those domains where the Comment property is equal to a null value. That
filtered collection is then piped to the Set-CsAllowedDomain cmdlet, which modifies the Comment property for each
item in the collection.
-------------------------- Example 4 ------------------------

Get-CsAllowedDomain | Where-Object {$_.Comment -eq $Null} | Set-CsAllowedDomain -Comment "Need contact


information."

Example 4 adds a generic comment ("Need contact information.") to each domain on the allowed list where the
Comment property currently has no value. To carry out this task, the command first calls Get-CsAllowedDomain to
retrieve a collection of all the domains on the allowed list. This collection is then piped to Where-Object , which picks
out those domains where the Comment property is equal to a null value. That filtered collection is then piped to
Set-CsAllowedDomain , which modifies the Comment property for each item in the collection.

Parameters
-Comment
Optional string value that provides additional information about the domain being modified. For example, you
might add a Comment that provides contact information for the federated domain.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the allowed domain for which the property values are being modified. For
example:
-Identity fabrikam.com

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MarkForMonitoring
Indicates whether the federation connection between your domain and the remote domain will be monitored by
Monitoring Server. By default, MarkForMonitoring is set to False, meaning that the connection will not be
monitored.
This property has been deprecated and should be ignored.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ProxyFqdn
Fully qualified domain name (for example, proxy-server.fabrikam.com) of the SIP proxy server deployed in the
domain being added to the allowed list. This property is optional: if it is not specified then DNS SRV discovery
procedures will be used to determine the location of the SIP proxy server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VerificationLevel
Indicates how (or if) messages sent from a domain are verified to ensure that they were sent from that domain. The
VerificationLevel must be set to one of the following values:
AlwaysVerifiable. All messages purportedly sent from this domain will be accepted. If a verification header is not
found in the message it will be added by Skype for Business Server 2015.
AlwaysUnverifiable. All messages purportedly sent from a domain are considered unverified. They will be delivered
only if they were sent from a person who is on the recipient's Contacts list. For example, if Ken Myer is on your
Contacts list you will be able to receive messages from him. If David Longmire is not on your Contacts list then you
will not be able to receive messages from him. Note that Skype for Business users can manually override this
setting, thereby allowing themselves to receive messages people not on their Contacts list.
UseSourceVerification. Uses the verification header added to the message by the public provider. If the verification
information is missing the message will be rejected. This is the default value.

Type: VerificationLevelType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain object. The Set-CsAllowedDomain cmdlet
accepts pipelined instances of the allowed domain object.

Outputs
The Set-CsAllowedDomain cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain object.

Related Links
Get-CsAllowedDomain
New -CsAllowedDomain
Remove-CsAllowedDomain
Set-CsAccessEdgeConfiguration
minutes to read • Edit Online

Set-CsAnalogDevice
In ths Article

Modifies an existing device in the collection of analog devices that can be managed by using Skype for Business
Server. An analog device is a telephone or other device that is connected to the public switched telephone network
(PSTN ). This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsAnalogDevice [-Identity] <UserIdParameter> [-Gateway <Fqdn>] [-AnalogFax <Boolean>] [-LineURI <String>]
[-SipAddress <String>] [-DisplayName <String>] [-DisplayNumber <String>] [-DomainController <Fqdn>]
[-EnterpriseVoiceEnabled <Boolean>] [-PassThru] [-WhatIf] [-Confirm] [-Enabled <Boolean>]
[-ExchangeArchivingPolicy <ExchangeArchivingPolicyOptionsEnum>] [<CommonParameters>]

Description
Analog devices include telephones, fax machines, modems and teletype/telecommunication device for the deaf
(TTY/TDD ) devices that are connected to the public switched telephone network (PSTN ). Unlike devices that take
advantage of Enterprise Voice (that is, the Voice over Internet Protocol (VoIP ) solution offered by Microsoft), analog
devices do not transmit information by using digital packets. Instead, information is transmitted by using a
continuous signal. This signal is commonly referred to as an analog signal; hence the term "analog devices."
In order to enable administrators to manage analog devices, Skype for Business Server lets you associate analog
devices with Active Directory contact objects. After a device has been associated with a contact object, you can then
manage the analog device by assigning policies and dial plans to the contact.
The Set-CsAnalogDevice cmdlet provides a way for you to modify the properties of the contact objects associated
with analog devices. For example, you can change the contact's Active Directory display name or the line Uniform
Resource Identifier (URI) associated with the device.

Examples
-------------------------- Example 1 ------------------------

Set-CsAnalogDevice -Identity "CN={ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com" -


LineUri "TEL:+14255551298"

Example 1 changes the value of the LineUri property for the analog device that has the Identity CN={ce84964a-
c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com.
-------------------------- Example 2 ------------------------

Get-CsAnalogDevice -Filter {Gateway -eq "192.168.0.240"} | Set-CsAnalogDevice -Gateway "192.168.1.100"

The command shown in Example 2 changes the gateway for each analog device currently using the gateway
192.168.0.240. To perform this task, the Get-CsAnalogDevice cmdlet is called along with the Filter parameter; the
filter value {Gateway -eq "192.168.0.240"} ensures that only devices with a Gateway equal to (-eq) 192.168.0.240
are returned. This filtered collection is then piped to the Set-CsAnalogDevice cmdlet, which takes each item in the
collection and changes the value of the Gateway property to 192.168.1.100.

Parameters
-AnalogFax
Set to True ($True) if the analog device is a fax machine. Set to False ($False) if the device is not a fax machine.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Configures the Active Directory display name of the analog device.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
Phone number as displayed in Skype for Business. The DisplayNumber property can be formatted any way you
prefer; for example 1-800-555-1234; 1-(800)-555-1234; 1.800.555.1234; etc.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to modify contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-mcs-001) or its fully qualified domain name (FQDN ) (for example, atl-mcs-001.litwareinc.com).
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
When set to True ($True) the analog device can be used with Skype for Business.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnterpriseVoiceEnabled
Indicates whether the contact object for the analog device has been enabled for Enterprise Voice, the VoIP solution
offered by Microsoft. With Enterprise Voice, telephone calls can be made using the Internet rather than using the
standard telephone network.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExchangeArchivingPolicy
Indicates where the contact's instant messaging sessions are archived. Allowed values are:
Uninitialized
UseLyncArchivingPolicy
ArchivingToExchange
NoArchiving

Type: ExchangeArchivingPolicyOptionsEnum
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Gateway
IP address of the PSTN gateway to be used by the analog device.
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the analog device being modified. Analog devices are identified by using the Active Directory
distinguished name (DN ) of the associated contact object. By default, analog devices use a GUID (globally unique
identifier) as their common name, which means devices will typically have an Identity similar to this: CN=
{ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com. This means you might find it
easier to modify analog devices by using the Get-CsAnalogDevice cmdlet to return the analog devices objects and
then piping those objects to the Set-CsAnalogDevice cmdlet.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LineURI
Phone number for the analog device. The line URI should be specified by using the E.164 format, and be prefixed
by the "TEL:" prefix. For example: TEL:+14255551297. Any extension number should be added to the end of the
line URI; for example: TEL:+14255551297;ext=51297.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Returns an object representing the common area phone.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
Unique identifier that allows the analog device to communicate with SIP devices such as Skype for Business Server.
The SIP address must be prefaced by the prefix "sip:". For example: sip:bldg14lobby@litwareinc.com.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact object. The Set-CsAnalogDevice
cmdlet accepts pipelined instances of the analog device object.

Outputs
By default, the Set-CsAnalogDevice cmdlet does not return any objects or values. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact object.

Related Links
Get-CsAnalogDevice
Move-CsAnalogDevice
New -CsAnalogDevice
Remove-CsAnalogDevice
minutes to read • Edit Online

Set-CsAnnouncement
In ths Article

Modifies the property values of an existing Skype for Business Server announcement. Announcements are played
when users dial a valid but unassigned phone number. An announcement can be a message (such as "This number
is temporarily out of service") or a busy signal. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsAnnouncement [[-Identity] <XdsIdentity>] [-Name <String>] [-AudioFilePrompt <String>]
[-TextToSpeechPrompt <String>] [-Language <String>] [-TargetUri <String>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Set-CsAnnouncement [-Instance <PSObject>] [-Name <String>] [-AudioFilePrompt <String>]


[-TextToSpeechPrompt <String>] [-Language <String>] [-TargetUri <String>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
An organization can own phone numbers that are not assigned to users or phones, but that are still valid numbers
that can be called. By default when someone dials one of those numbers, that person will receive a busy signal and
the call may result in an error returned to the SIP client. By applying announcement settings to unassigned
numbers, administrators have the option of playing a message, returning a busy signal, or redirecting the call. This
cmdlet modifies these announcement settings.

Examples
-------------------------- Example 1 ------------------------

Get-CsAnnouncement | Where-Object {$_.Name -eq "Help Desk Announcement"} | Set-CsAnnouncement -AudioFilePrompt


"helpdesk.wav"

The command shown in Example 1 assigns a new audio file to the Help Desk announcement. To perform this task,
the command first uses the Get-CsAnnouncement cmdlet, without any parameters, to return a collection of all the
announcements currently available. This collection is then piped to the Where-Object cmdlet, which picks the one
announcement where the Name is equal to (-eq) "Help Desk Announcement". In turn, that announcement is then
piped to the Set-CsAnnouncement cmdlet, which sets the value of the AudioFilePrompt property to helpdesk.wav.
Note that if this announcement already has a TextToSpeechPrompt value assigned to it, this command will generate
a warning that the TextToSpeechPrompt value will be ignored.
-------------------------- Example 2 ------------------------
Get-CsAnnouncement | Where-Object {$_.Name -eq "Help Desk Announcement"} | Set-CsAnnouncement -
TextToSpeechPrompt $Null

In Example 2, the TextToSpeechPrompt property for the announcement Help Desk Announcement is set to a null
value; this effectively erases the property value. To do this, the command first uses the Get-CsAnnouncement cmdlet
to return a collection of all the announcements currently available. This collection is then piped to the Where-Object
cmdlet, which selects the announcement where the Name is equal to (-eq) "Help Desk Announcement". This
announcement is then piped to the Set-CsAnnouncement cmdlet, which sets the TextToSpeechPrompt property to a
null value ($Null).
-------------------------- Example 3 ------------------------

Get-CsAnnouncement | Where-Object {$_.Name -eq "Help Desk Announcement"} | Set-CsAnnouncement -TargetUri


"sip:kmyer@litwareinc.com;opaque=app:voicemail"

This example updates the TargetUri for the Announcement with the name Help Desk Announcement. The
command first uses the Get-CsAnnouncement cmdlet to return a collection of all the announcements currently
available. This collection is then piped to the Where-Object cmdlet, which selects the announcement where the
Name is equal to (-eq) "Help Desk Announcement". This announcement is then piped to the Set-CsAnnouncement
cmdlet, which sets the TargetUri property to a voice mail location
(sip:kmyer@litwareinc.com;opaque=app:voicemail).

Parameters
-AudioFilePrompt
The name of the audio file to be played for the announcement. Audio files are stored in the File Store. To save an
audio file to the File Store, use the Import-CsAnnouncementFile cmdlet.
Valid file types: WAV and WMA

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier for the Announcement. This value will always be in the format <serviceID>/<GUID>, where
serviceID is the Identity of the Application Server running the Announcement service and GUID is a globally
unique identifier associated with these announcement settings. For example:
ApplicationServer:redmond.litwareinc.com/bef5fa3b-3c97-4af0-abe7-611deee7616c.
Because GUIDs can be difficult to enter correctly at the command line, you'll most likely retrieve announcements by
using the Get-CsAnnouncement cmdlet and pipe them to the Set-CsAnnouncement cmdlet for modification. (For
details, see the Examples section.)

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
A reference to the Announcement object you want to change. This object must be of type
Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement, which can be
retrieved by calling the Get-CsAnnouncement cmdlet.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Language
The language in which the TTS prompt will be played. If a value is entered for TextToSpeechPrompt this parameter
is required.
Values are entered as a string representing the language and locale to be used. The following is a list of valid values,
followed by the language and locale in parentheses: ca-ES (Catalan, Spain); da-DK (Danish, Denmark); de-DE
(German, Germany); en-AU (English, Australia); en-CA (English, Canada); en-GB (English, United Kingdom); en-IN
(English, India); en-US (English, United States); es-ES (Spanish, Spain); es-MX (Spanish, Mexico); fi-FI (Finnish,
Finland); fr-CA (French, Canada); fr-FR (French, France); it-IT (Italian, Italy); ja-JP (Japanese, Japan); ko-KR (Korean,
Korea); nb-NO (Norwegian, Bokmal, Norway); nl-NL (Dutch, Netherlands); pl-PL (Polish, Poland); pt-BR
(Portuguese, Brazil); pt-PT (Portuguese, Portugal); ru-RU (Russian, Russia); sv-SE (Swedish, Sweden); zh-CN
(Chinese, People's Republic of China); zh-HK (Chinese, Hong Kong SAR ); zh-TW (Chinese, Taiwan)
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
Enter a value for this parameter to change the name of the announcement. Names must be unique within a service.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TargetUri
The URI to which the caller will be transferred after the announcement has been played. This value must be a SIP
address entered in the format sip: followed by the SIP address. For example, sip:kmyer@litwareinc.com. Note that
the SIP address can also be a telephone number or voice mail, for example
sip:+14255551212@litwareinc.com;user=phone for a phone number or
sip:kmyer@litwareinc.com;opaque=app:voicemail for voice mail.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TextToSpeechPrompt
A text-to-speech (TTS ) prompt. This is a string that will be converted to audio and played as the announcement.
If both AudioFilePrompt and TextToSpeechPrompt are specified for a single announcement, you will receive a
warning that the audio file will take precedence and the TTS prompt will be ignored.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement object. Accepts
pipelined input of announcement objects.

Outputs
The Set-CsAnnouncement cmdlet does not return any objects or values. Instead, the cmdlet modifies existing
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement
object.

Related Links
New -CsAnnouncement
Remove-CsAnnouncement
Get-CsAnnouncement
Import-CsAnnouncementFile
minutes to read • Edit Online

Set-CsApplicationServer
In ths Article

Enables you to modify configuration properties of one or more servers running the Application service. These
servers (also known as Application Servers) host software programs, such as the Call Park application, that were
developed using the Microsoft Unified Communications Managed API (UCMA) set. This cmdlet was introduced in
Lync Server 2010.

Syntax
Set-CsApplicationServer [[-Identity] <XdsGlobalRelativeIdentity>] [-ApplicationDatabase <String>]
[-AppSharingPortCount <UInt16>] [-AppSharingPortStart <UInt16>] [-AtsSipPort <UInt16>]
[-AudioPortCount <UInt16>] [-AudioPortStart <UInt16>] [-CaaSipPort <UInt16>] [-CasSipPort <UInt16>]
[-CpsSipPort <UInt16>] [-PdpSipPort <UInt16>] [-PdpTurnPort <UInt16>] [-RgsSipPort <UInt16>]
[-RgsWcfMtlsPort <UInt16>] [-VideoPortCount <UInt16>] [-VideoPortStart <UInt16>] [-Force] [-WhatIf] [-Confirm]
[-Registrar <String>] [<CommonParameters>]

Description
The Application service hosts a number of Skype for Business Server programs that are not part of the core server
components; these programs include the Response Group application, the Conferencing Attendant application and
the Conferencing Announcement application. The Application service takes these programs and fully integrates
them into the Skype for Business Server environment.
The Set-CsApplicationServer cmdlet enables administrators to modify the configuration settings for any (or all) of
the Application Servers deployed in their organization. For example, you can modify the ports used for audio,
video, or application sharing traffic, or assign new values to ports used by individual applications such as the
Conferencing Attendant application or the Conferencing Announcement application. Note that any time you
change ports you will then need to restart the corresponding service.

Examples
-------------------------- Example 1 ------------------------

Set-CsApplicationServer -Identity "ApplicationServer:atl-cs-001.litwareinc.com" -CasSipPort 5074

The command shown in Example 1 configures the SIP port for the Conferencing Announcement application on the
Application Server ApplicationServer:atl-cs-001.litwareinc.com to 5074.
-------------------------- Example 2 ------------------------

Set-CsApplicationServer -Identity "ApplicationServer:atl-cs-001.litwareinc.com" -AudioPortStart 49500 -


AudioPortCount 5500

Example 2 configures audio ports for the Application Server ApplicationServer:atl-cs-001.litwareinc.com. In this
example, the starting audio port is set to 49500 and a total of 5500 ports are set aside for audio traffic.
-------------------------- Example 3 ------------------------

Get-CsService -ApplicationServer | ForEach-Object {Set-CsApplicationServer -Identity $_.Identity -CasSipPort


5074}

In Example 3, the SIP port for the Conferencing Announcement application is set to 5074 for all of the Application
Servers in the organization. To do this, the command first uses the Get-CsService cmdlet to return a collection of all
the Application Servers currently in use. This collection is then piped to the ForEach-Object cmdlet, which takes
each server in the collection and uses the Set-CsApplicationServer cmdlet to set the Conferencing Announcement
application SIP port to 5074.

Parameters
-ApplicationDatabase
Service location of the Application database. For example:
-ApplicationDatabase "ApplicationDatabase:atl-cs-001.litwareinc.com" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AppSharingPortCount
Total number of ports allocated for application sharing. The actual ports to be opened will start with the value
configured for AppSharingPortStart and continue through the number of ports specified for AppSharingPortCount.
For example, if the AppSharingPortStart is set to 60000 and the AppSharingPortCount is set to 100 then ports
60000 through 60099 will be used for application sharing.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AppSharingPortStart
First port in the range of ports allocated for application sharing. For example: -AppSharingPortStart 60000 .

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AtsSipPort
Port used for the Audio Test service.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioPortCount
Total number of ports allocated for sending and receiving audio traffic. The actual ports to be opened will start with
the value configured for AudioPortStart and continue through the number of ports specified for AudioPortCount.
For example, if the AudioPortStart is set to 60000 and the AudioPortCount is set to 100, then ports 60000 through
60099 will be used for audio traffic.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioPortStart
First port in the range of ports allocated for sending and receiving audio traffic. For example:
-AudioPortStart 60000 .

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CaaSipPort
SIP port used by the Conferencing Attendant application, used when connecting users to a dial-in conference.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CasSipPort
SIP port used by the Conferencing Announcement application, used to play announcements (for example, "Ken
Myer is now exiting") during a conference.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CpsSipPort
SIP port used by the Call Park service. The Call Park service enables you to place a call on hold from one telephone,
then have that call retrieved from a different phone.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service location of the Application Server to be modified. For example:
-Identity "ApplicationServer:atl-cs-001.litwareinc.com" .

Note that you can leave off the prefix "ApplicationServer:" when specifying an Application server. For example:
-Identity "atl-cs-001.litwareinc.com" .

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PdpSipPort
SIP port used by the Policy Decision Point Server. The Policy Decision Point Server is used for bandwidth
management.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PdpTurnPort
Turn traffic port used by the Policy Decision Point Server.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Registrar
Fully qualified domain name of the Registrar associated with the Policy Decision Point Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RgsSipPort
SIP port used by the Response Group application. The Response Group application provides a way to direct
incoming phone calls to a specific group of people, such as an organization's support team.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RgsWcfMtlsPort
Port used for Windows Communication Foundation (WCF ) mutual TLS (MTLS ) traffic used by the Response
Group application.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoPortCount
Total number of ports allocated for sending and receiving video traffic. The actual ports to be opened will start with
the value configured for VideoPortStart and continue through the number of ports specified for VideoPortCount.
For example, if the VideoPortStart is set to 60000 and the VideoPortCount is set to 100, then ports 60000 through
60099 will be used for video traffic.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoPortStart
First port in the range of ports allocated for sending and receiving video traffic. For example -VideoPortStart 60000
.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Set-CsApplicationServer cmdlet does not accept pipelined input.

Outputs
The Set-CsApplicationServer cmdlet does not return any values or objects. Instead, the cmdlet modifies existing
instances of the Microsoft.Rtc.Management.Xds.DisplayApplicationServer object.

Related Links
Get-CsServerApplication
minutes to read • Edit Online

Set-CsArchivingConfiguration
In ths Article

Modifies an existing collection of instant messaging (IM ) archiving settings. This cmdlet was introduced in Lync
Server 2010.

Syntax
Set-CsArchivingConfiguration [[-Identity] <XdsIdentity>] [-ArchiveDuplicateMessages <Boolean>]
[-BlockOnArchiveFailure <Boolean>] [-CachePurgingInterval <UInt32>] [-EnableArchiving <EnableArchiving>]
[-EnablePurging <Boolean>] [-KeepArchivingDataForDays <UInt32>] [-PurgeExportedArchivesOnly <Boolean>]
[-PurgeHourOfDay <UInt32>] [-Force] [-WhatIf] [-Confirm] [-EnableExchangeArchiving <Boolean>]
[<CommonParameters>]

Set-CsArchivingConfiguration [-Instance <PSObject>] [-ArchiveDuplicateMessages <Boolean>]


[-BlockOnArchiveFailure <Boolean>] [-CachePurgingInterval <UInt32>] [-EnableArchiving <EnableArchiving>]
[-EnablePurging <Boolean>] [-KeepArchivingDataForDays <UInt32>] [-PurgeExportedArchivesOnly <Boolean>]
[-PurgeHourOfDay <UInt32>] [-Force] [-WhatIf] [-Confirm] [-EnableExchangeArchiving <Boolean>]
[<CommonParameters>]

Description
Many organizations find it useful to keep a transcript of all the IM sessions and conferences their users participate
in. For other organizations, it's mandatory to keep such transcripts; for example, many organizations in the financial
world are required by law to keep copies of all their electronic communications.
In order to archive instant messages, you must set up at least one Archiving Server. After the Archiving Server is
set up, you must perform two additional steps. First, you need to enable archiving at the global scope (for details,
see the Set-CsArchivingConfiguration cmdlet help topic). Optionally, you can also configure custom archiving
settings for different sites.
Second, you must use archiving policies to indicate which users will have their IM sessions archived. IM sessions
will not be archived unless a policy is in force that requires IM sessions to be archived.
When you install Skype for Business Server, a collection of global archiving configuration settings will be created
for you; by default, these settings will apply to your entire organization. Alternatively, you can use the
New-CsArchivingConfiguration cmdlet to create custom configuration settings on a site-by-site basis. Either way, you
can use the Set-CsArchivingConfiguration cmdlet to modify the property values of an existing collection or
archiving configuration settings.

Examples
-------------------------- Example 1 --------------------------

Set-CsArchivingConfiguration -Identity site:Redmond -ArchiveDuplicateMessages $False -KeepArchivingDataForDays


30
In Example 1, the Set-CsArchivingConfiguration cmdlet is used to modify two properties of the archiving
configuration settings that have the Identity site:Redmond. First, the command sets the ArchiveDuplicateMessages
property to False; this prevents the server from archiving the same instant message session multiple times. The
command also uses the KeepArchivingDataForDays parameter to instruct the server to keep instant messages for
30 days.
-------------------------- Example 2 --------------------------

Get-CsArchivingConfiguration -Filter "site:*" | Set-CsArchivingConfiguration -ArchiveDuplicateMessages $False -


KeepArchivingDataForDays 30

Example 2 is a variation of the command shown in Example 1: in this case, however, the values of the
ArchiveDuplicateMessages and KeepArchivingDataForDays properties are modified for all the archiving settings
that have been configured at the site scope. To carry out this task, the command first uses the
Get-CsArchivingConfiguration cmdlet and the Filter parameter to return a collection of all the archiving settings
configured at the site scope; the filter value "site:*" ensures that only settings that have an Identity that begins with
the characters "site:" are returned. The filtered collection is then piped to the Set-CsArchivingConfiguration cmdlet,
which modifies the two property values for each item in the collection.
-------------------------- Example 3 --------------------------

Get-CsArchivingConfiguration | Where-Object {$_.EnableArchiving -eq "ImAndWebConf"} | Set-


CsArchivingConfiguration -EnableArchiving "ImOnly"

In Example 3, all of the archiving configuration settings that allow both IM session and web conferencing archiving
are modified; after the command completes, those settings will allow only for IM session archiving. To do this, the
command first calls the Get-CsArchivingConfiguration cmdlet without any parameters in order to return a collection
of all the archiving configuration settings currently in use in the organization. This collection is then piped to the
Where-Object cmdlet, which picks out only those settings where the EnableArchiving property is equal to (-eq)
"ImAndWebConf". The filtered collection is then piped to the Set-CsArchivingConfiguration cmdlet, which takes
each item in the collection and changes the value of EnableArchiving to "ImOnly".

Parameters
-ArchiveDuplicateMessages
Specifies how "cross-pool" instant messages should be archived. Consider a simple example: Ken Myer (with an
account in Pool 1) sends an instant message to Pilar Ackerman, who has an account in Pool 2. Pilar, in turn, sends a
reply to Ken's instant message. If ArchiveDuplicateMessages is set to False, then (based on a built-in algorithm) the
session transcript will be logged in either Pool 1 or Pool 2, but not both. If ArchiveDuplicateMessages is set to True
(the default value), the transcript will be logged in both pools.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BlockOnArchiveFailure
If True, then the IM service will be suspended any time instant messages cannot be archived. If set to False (the
default value), IM will continue even if instant messages cannot be archived.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CachePurgingInterval
Indicates how often (in hours) the system is purged of transcripts where none of the participants have been
enabled for archiving. By design, all group IM sessions and conferencing sessions are recorded when they take
place. At the specified interval, the system determines whether any of the participants in these sessions have been
enabled for archiving. If the system finds a session where none of the participants have been enabled for archiving,
then that transcript will be deleted from the database.
The CachePurgingInterval property can be set to any integer value between 4 and 168, inclusive. The default value
is 24.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableArchiving
Indicates which items (if any) are saved to the archiving database. Valid values are:
None. No items are archived to the database. This is the default value.
ImOnly. IM sessions are archived to the database.
ImAndWebConf. Both IM and web conferencing sessions are archived to the database.

Type: EnableArchiving
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExchangeArchiving
When set to True, Skype for Business Server instant message and conferencing transcripts are stored in Exchange
rather than a separate SQL Server database. Note that if you enable Exchange archiving then users will be
managed by the Exchange archiving policies instead of Skype for Business Server archiving policies.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePurging
If True, then archived instant messages will periodically be removed from the database, provided that these instant
messages: 1) are older than the value specified in the KeepArchivingDataForDays property; or 2) have been
exported and marked for deletion.
If False, instant messages will not automatically be deleted from the database.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Represents the unique identifier of the collection of archiving configuration settings to be modified. To modify the
global settings, either leave out this parameter or use the following syntax: -Identity global . To modify settings at
the site scope, use the prefix "site:" followed by the site name. For example: -Identity "site:Redmond" .

To modify settings assigned to an individual Registrar pool use syntax similar to this:
-Identity "service:Registrar:atl-cs-001.litwareinc.com"

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.
Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-KeepArchivingDataForDays
Number of days (between 1 and 2562) that archived instant messages are kept in the database before being
automatically deleted. The default value is 14.
This property takes effect only if EnablePurging has been set to True.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeExportedArchivesOnly
If True, then the system will only purge instant messages that have been exported (and, as a result, have been
marked for deletion). Instant messages that have not been exported will remain in the database, even if those
instant messages are older than the value specified by the KeepArchivingDataForDays property.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeHourOfDay
Indicates the time of day when expired records are deleted from the archiving database. The time of day is specified
using a 24-hour clock, with 0 representing midnight (12:00 AM ) and 23 representing 11:00 PM. Note that you can
only specify the hour of the day. This means that you can schedule purging to take place at 4:00 AM but you cannot
schedule it to take place at, for instance, 4:30 AM or 4:15 AM. The default value is 2 (2:00 AM ).
Database purging takes place only if the EnablePurging property is set to True.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings object. The
Set-CsArchivingConfiguration cmdlet accepts pipelined input of archiving configuration objects.

Outputs
The Set-CsArchivingConfiguration cmdlet does not return a value or object. Instead, the cmdlet configures
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings object.

Related Links
Get-CsArchivingConfiguration
New -CsArchivingConfiguration
Remove-CsArchivingConfiguration
Set-CsArchivingServer
minutes to read • Edit Online

Set-CsArchivingPolicy
In ths Article

Modifies an existing instant messaging (IM ) archiving policy. An archiving policy gives you the ability to archive all
IM sessions and conferences that take place between internal users; you can also archive sessions that take place
between internal users and federated partners. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsArchivingPolicy [[-Identity] <XdsIdentity>] [-ArchiveExternal <Boolean>] [-ArchiveInternal <Boolean>]
[-Description <String>] [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>] [<CommonParameters>]

Set-CsArchivingPolicy [-Instance <PSObject>] [-ArchiveExternal <Boolean>] [-ArchiveInternal <Boolean>]


[-Description <String>] [-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>] [<CommonParameters>]

Description
Many organizations find it useful to keep an archive of all the IM sessions that their users take part in. Other
organizations are legally required to keep such an archive. In order to archive IM sessions with Skype for Business
Server, you must perform two steps. First, you need to enable archiving at the global and/or the site scope by using
the Set-CsArchivingConfiguration cmdlet. This gives you the ability to archive IM sessions; however, it does not
automatically begin archiving those sessions.
To actually save transcripts of your IM sessions, you must complete step two: create one or more archiving policies
that determine which users will have their IM sessions recorded and which type of IM sessions (internal and/or
external) will be archived. Internal IM sessions are sessions where all the participants are authenticated users who
have Active Directory accounts within your organization; external IM sessions are sessions where at least one
participant is an unauthenticated user who does not have an Active Directory account within your organization. You
can choose to archive only internal sessions, only external sessions, or both internal and external sessions.
Archiving policies (created using the New-CsArchivingPolicy cmdlet) can be assigned to the global site or to the site
scope. In addition, these policies can be assigned to the per-user scope; that means that a policy can be created and
then applied to a specific user or group of users. For example, you might have a global policy that archives internal
IM sessions for all of your users. In addition, you might create a second policy, one that archives both internal and
external sessions and apply that second policy only to your sales staff. Because per-user policies take precedence
over global and site policies, members of the sales staff will have all their IM sessions archived. Other users (users
who are not part of the sales department and are not affected by the sales policy) will have only their internal IM
sessions archived.
The Set-CsArchivingPolicy cmdlet enables you to modify the property values for any of the IM session archiving
policies currently in use in your organization.

Examples
-------------------------- Example 1 --------------------------
Set-CsArchivingPolicy -Identity global -ArchiveInternal $True

In this example, the Set-CsArchivingPolicy cmdlet is used to modify the global archiving policy. In this case, the
ArchiveInternal property is set to True.
-------------------------- Example 2 --------------------------

Get-CsArchivingPolicy | Set-CsArchivingPolicy -ArchiveInternal $True

Example 2 is a variation of the command shown in Example 1. This time, however, all of the archiving policies in the
organization are configured to allow for the archiving of IM sessions. To do this, the command first uses the
Get-CsArchivingPolicy cmdlet to return a collection of all the IM session archiving policies currently in use. That
collection is then piped to the Set-CsArchivingPolicy cmdlet, which sets the ArchiveInternal property of each policy
to True.

Parameters
-ArchiveExternal
Indicates whether external IM sessions are archived. (An external IM session is one in which at least one of the
participants is an unauthenticated user who does not have an Active Directory account within your organization.)
The default value is False, which means that IM sessions that include external users are not archived.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ArchiveInternal
Indicates whether internal IM sessions are archived. (An internal IM session is one in which all the participants are
authenticated users who have Active Directory accounts within your organization.) The default value is False, which
means that internal IM sessions are not archived.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Description
Enables administrators to provide additional text regarding the policy. For example, the Description property might
be used to detail which users the policy should be applied to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the archiving policy to be modified. Archiving policies can be configured at the global, site, or
per-user scopes. To modify the global policy, use this syntax: -Identity global . To modify a site policy, use syntax
similar to this: -Identity site:Redmond . To modify a per-user policy, use syntax similar to this:
-Identity SalesArchivingPolicy . If this parameter is not specified, then the global policy will be modified.

Wildcards are not allowed when specifying an Identity.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the archiving policy is
being modified. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.IM.IMArchivingPolicy object. The Remove-CsArchivingPolicy
cmdlet accepts pipelined input of archiving policy objects.

Outputs
The Set-CsArchivingPolicy cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Policy.IM.IMArchivingPolicy object.

Related Links
Get-CsArchivingPolicy
Grant-CsArchivingPolicy
New -CsArchivingPolicy
Remove-CsArchivingPolicy
minutes to read • Edit Online

Set-CsArchivingServer
In ths Article

Enables you to specify a new database location for one or more Archiving Servers. This cmdlet was introduced in
Lync Server 2010.

Syntax
Set-CsArchivingServer [[-Identity] <XdsGlobalRelativeIdentity>] [-ArchivingDatabase <String>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Archiving Servers provide a way for you to save complete transcripts of the instant messaging (IM ) sessions that
take place in your organization. In some organizations, it can be useful to have copies of these IM sessions. In other
organizations, where records must be kept of all electronic communications, it can be mandatory to have copies of
these IM sessions.
Archiving Server records the transcript of each IM session (as well as information about when the session took
place and who participated in the session) in a SQL Server database. The location of this database must be
specified when you install Archiving Server; in most cases, you will not need to change the location of that
database. However, if a hardware failure or other problem should occur, you can point Archiving Server to a new
database by using the Set-CsArchivingServer cmdlet.

Examples
-------------------------- Example 1 ------------------------

Set-CsArchivingServer -Identity "ArchivingServer:atl-cs-001.litwareinc.com" -ArchivingDatabase


"ArchivingDatabase:atl-sql-001.litwareinc.com"

The command shown in Example 1 changes the location of the Archiving database for the ArchivingServer:atl-cs-
001.litwareinc.com Archiving Server . In this example, the new database is located at ArchivingDatabase:atl-sql-
001.litwareinc.com.

Parameters
-ArchivingDatabase
Service location where the new Archiving database is located. For example:
-ArchivingDatabase ArchivingDatabase:atl-sql-001.litwareinc.com . Make sure you use the service location and not
the SQL Server path when specifying the database location.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service location of the Archiving Server instance to be modified. For example:
-Identity ArchivingServer:atl-cs-001.litwareinc.com . You can retrieve the service location for all your Archiving
servers by running this command:
Get-CsService -ArchivingServer | Select-Object Identity

Note that you can leave off the prefix "ArchivingServer:" when specifying an Archiving server. For example:
-Identity "atl-cs-001.litwareinc.com" .

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
None. The Set-CsArchivingServer cmdlet does not accept pipelined input.

Outputs
The Set-CsArchivingServer cmdlet does not return any objects or values. Instead, the cmdlet modifies instances of
the Microsoft.Rtc.Management.Xds.DisplayArchivingServer object.

Related Links
Get-CsArchivingConfiguration
minutes to read • Edit Online

Set-CsAudioTestServiceApplication
In ths Article

Enables you to modify the property values for any of the Audio Test service application contacts currently in use in
your organization. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsAudioTestServiceApplication [-Identity] <UserIdParameter> [-Enabled <Boolean>] [-DisplayName <String>]
[-DisplayNumber <String>] [-EnabledForFederation <Boolean>] [-EnterpriseVoiceEnabled <Boolean>]
[-PrimaryLanguage <String>]
[-SecondaryLanguages <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]>]
[-SipAddress <String>] [-Type <String>] [-PassThru] [-WhatIf] [-Confirm] [-LineURI <String>]
[-ExchangeArchivingPolicy <ExchangeArchivingPolicyOptionsEnum>] [<CommonParameters>]

Description
The Audio Test service enables Skype for Business Server users to test their voice connections before they make a
voice call. To do this, users click the Check call quality button found on the Audio Device tab of the Skype for
Business Options dialog box. When a user clicks this button, a call will be made to the automated Audio Test
service. The call will be answered and, after an introductory prompt is played, the caller will be asked to record a
brief message (10 seconds maximum). That recording will then be replayed, enabling the caller to hear what he or
she sounds like over the current connection.
The Audio Test service relies, in part, on Active Directory contact objects. These objects are automatically created
for you when you install Audio Bot; there is no way to manually create these objects. However, administrators can
use the Get-CsAudioTestServiceApplication cmdlet to retrieve information about the various test service contacts
currently in use in the organization. Administrators can also use the Set-CsAudioTestServiceApplication cmdlet to
modify the properties of these contacts.

Examples
-------------------------- Example 1 ------------------------

Set-CsAudioTestServiceApplication -Identity "sip:RedmondAudioTest@litwareinc.com" -PrimaryLanguage "en-US"

In Example 1, the primary language for the Audio Test service contact sip:RedmondAudioTest@litwareinc.com is set
to U.S. English (en-US ).
-------------------------- Example 2 ------------------------

Set-CsAudioTestServiceApplication -Identity "sip:RedmondAudioTest@litwareinc.com" -PrimaryLanguage $Null

Example 2 clears the value of the PrimaryLanguage property for the Audio Test service contact
sip:RedmondAudioTest@litwareinc.com. This is done by including the PrimaryLanguage parameter and setting the
parameter value to $Null.
-------------------------- Example 3 ------------------------

Get-CsAudioTestServiceApplication | Set-CsAudioTestServiceApplication -PrimaryLanguage "en-US"

In Example 3, all the Audio Test service contacts in use in the organization are configured to use U.S. English as
their primary language. To do this, the Get-CsAudioTestServiceApplication cmdlet is first called without any
parameters in order to return a collection of the Audio Test service contacts. This collection is then piped to the
Set-CsAudioTestServiceApplication , which assigns U.S. English (en-Us) to the PrimaryLanguage property for each
contact in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Active Directory display name of the contact object.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
Although a valid property, DisplayNumber is not actually used with the Audio Test service.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether or not the contact object has been enabled for Skype for Business Server. If you set this value to
False ($False), the contact will no longer be able to log on to Skype for Business Server; setting this value to True
($True) re-enables the contact's logon privileges.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnabledForFederation
Indicates whether this contact is available to users from a federated domain. If set to False, only users within your
organization will have access to the contact.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnterpriseVoiceEnabled
Indicates whether the contact object has been enabled for Enterprise Voice, which is the Microsoft implementation
of Voice over Internet Protocol (VoIP ). With Enterprise Voice, users can use make telephone calls by using the
Internet rather than by using the standard telephone network.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExchangeArchivingPolicy
Indicates where the contact's instant messaging sessions are archived. Allowed values are:
Uninitialized
UseLyncArchivingPolicy
ArchivingToExchange
NoArchiving

Type: ExchangeArchivingPolicyOptionsEnum
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
SIP address of the audio test service contact to be modified.
Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-LineURI
Although a valid property, LineUri is not actually used with the Audio Test service.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By
default, the Set-CsAudioTestServiceApplication cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryLanguage
Primary language used for the audio test service. The language must be configured using one of the allowed
language codes; for example, en-US for U.S. English; fr-FR for French; etc. To return a list of the available language
codes, type the following command at the Windows PowerShell prompt:
Get-CsDialInConferencingLanguageList | Select-Object -ExpandProperty Languages .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecondaryLanguages
Although a valid property, SecondaryLanguages is not actually used with the Audio Test service.

Type: Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
This parameter is currently disabled. You cannot change the SIP address using Set-CsAudioTestServiceApplication .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Indicates the type of test contact being deployed. By default, contacts are listed as Automaton, which means they
can interact with callers.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsAudioTestServiceApplication cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact object.

Outputs
The Set-CsAudioTestServiceApplication cmdlet does not return any objects or values.

Related Links
Get-CsAudioTestServiceApplication
minutes to read • Edit Online

Set-CsAuthConfig
In ths Article

Use the Set-CsAuthConfig cmdlet to modify the authentication configuration for your organization.

Syntax
Set-CsAuthConfig [-Scenario] <AuthConfigScenario> [[-Pool] <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Use the Set-CsAuthConfig cmdlet to modify the authentication configuration for your organization. The 5
supported scenarios are described in the following list. Scenario is a required parameter. All other parameters are
optional. MA is Modern Authentication and Win is Windows Integrated Authentication in the following list.
Scenario 1: External: MA + Win; Internal: MA + Win; Parameter: AllowAllExternallyAndInternally. This is the
default scenario when MA is turned on for Skype for Business Server. In other words, this is the starting point
when MA is configured.
Scenario 2: External: MA; Internal: MA + Win; Parameter: BlockWindowsAuthExternally. This topology blocks
NTLM externally, but allows NTLM or Kerberos (for clients that don't support ADAL ) to work internally. If your
clients do support ADAL they will use MA internally.
Scenario 3: External: MA; Internal: MA; Parameter: BlockWindowsAuthExternallyAndInternally. This topology
requires MA for all users. All your ADAL -capable clients will work in this topology, and passwords will not be
leveraged if, for example, you turn off the use of passwords with Certificate-based Auth.
Scenario 4: External: MA; Internal: Win; Parameter: BlockWindowsAuthExternallyAndModernAuthInternally.
This topology blocks NTLM externally and MA internally. It allows all clients to use legacy authentication
methods internally (even ADAL -capable clients).
Scenario 5: External: MA + Win; Internal: Win; Parameter: BlockModernAuthInternally. Externally, your modern
ADAL clients will use MA and any clients that don't support ADAL will use legacy authentication methods. But,
internally all clients will use legacy authentication (including all ADAL -capable clients).
This cmdlet sets configuration on both the Registrar and the Web Services roles.
It is only meant to be run at the global level (and not at the pool level), and we highly recommend that you only use
it in this manner. However, technically it can be run at a pool level. But realize that if the pool only has one of the
roles needed (say, Registrar and not Web Services), then only the settings for Registrar will be set and the Web
Services settings will come from the global setting. No special warning will be given because some settings were
not set. If a client uses the Registrar settings from one pool and the Web Services settings from another pool and
the authentication settings are in an inconsistent state, the client may be unable to log on. If neither role is present
for a pool, Get will return an error message. If both roles are present for a pool but policies aren't defined at the
pool level, Get will return an error message.
Examples
Example 1

PS C:\> Set-CsAuthConfig -Scenario BlockWindowsAuthExternally

This example forces all external clients to use MA but allows NTLM or Kerberos (for clients that don't support
ADAL ) to work internally. If your clients do support ADAL they will use MA internally.
Example 2

PS C:\> Set-CsAuthConfig -Scenario BlockWindowsAuthExternallyAndModernAuthInternally

This example blocks NTLM externally and MA internally. It forces all external clients to use MA, but allows all
clients to use legacy authentication methods internally (even ADAL -capable clients).

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Pool
{{Fill Pool Description}}

Type: String
Required: False
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Scenario
{{Fill Scenario Description}}

Type: AuthConfigScenario
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Authentication.AuthConfigScenario

Inputs
System.String

Outputs
System.Object

Notes
After changing CsAuthConfig, you must run Enable-CsComputer on each Skype for Business Server machine
before your changes take effect.
minutes to read • Edit Online

Set-CsAutoAttendant
In ths Article

Use the Set-CsAutoAttendant cmdlet to modify the properties of an existing Auto Attendant (AA).

Syntax
Set-CsAutoAttendant -Instance <Object> [-Tenant <Guid>] [<CommonParameters>]

Description
The Set-CsAutoAttendant cmdlet lets you modify the properties of an auto attendant. For example, you can change
the operator, the greeting, or the menu prompts.

Examples
-------------------------- Example 1 --------------------------

$autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5"

$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas


from December 24 to December 26. Please call back later."
$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic
$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption)
$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu
$christmasMenu

$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017"


$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr)

$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId


$christmasSchedule.Id -CallFlowId $christmasCallFlow.Id

$autoAttendant.CallFlows += @($christmasCallFlow)
$autoAttendant.CallHandlingAssociations += @($christmasCallHandlingAssociation)

Set-CsAutoAttendant -Instance $autoAttendant

This example adds a Christmas holiday to an AA that has an Identity of fa9081d6-b4f3-5c96-baec-0b00077709e5.


-------------------------- Example 2 --------------------------
$autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5"

$autoAttendant.CallFlows

# Id : e68dfc2f-587b-42ee-98c7-b9c9ebd46fd1
# Name : After hours
# Greetings :
# Menu : After Hours Menu

# Id : 8ab460f0-770c-4d30-a2ff-a6469718844f
# Name : Christmas CallFlow
# Greetings :
# Menu : Christmas Menu

$autoAttendant.CallFlows[1].Greetings

# ActiveType : TextToSpeech
# TextToSpeechPrompt : We are closed for Christmas. Please call back later.
# AudioFilePrompt :

$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas


from December 24 to December 26. Please call back later."
$autoAttendant.CallFlows[1].Greetings = @($christmasGreetingPrompt)

Set-CsAutoAttendant -Instance $autoAttendant

This example modifies the Christmas holiday greeting for the AA that has an Identity of fa9081d6-b4f3-5c96-baec-
0b00077709e5.
-------------------------- Example 3 --------------------------

$autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5"


$autoAttendant.CallHandlingAssociations

# Type : Holiday
# ScheduleId : 578745b2-1f94-4a38-844c-6bf6996463ee
# CallFlowId : a661e694-e2df-4aaa-a183-67bf819c3cac
# Enabled : True

# Type : AfterHours
# ScheduleId : c2f160ca-119d-55d8-818c-def2bcb85515
# CallFlowId : e7dd255b-ee20-57f0-8a2b-fc403321e284
# Enabled : True

$autoAttendant.CallHandlingAssociations = $autoAttendant.CallHandlingAssociations | Where-Object {$_.ScheduleId


-ne "578745b2-1f94-4a38-844c-6bf6996463ee"}

$autoAttendant.CallFlows

# Id : e68dfc2f-587b-42ee-98c7-b9c9ebd46fd1
# Name : After hours
# Greetings :
# Menu : After Hours Menu

# Id : 8ab460f0-770c-4d30-a2ff-a6469718844f
# Name : Christmas CallFlow
# Greetings :
# Menu : Christmas Menu

$autoAttendant.CallFlows = $autoAttendant.CallFlows | Where-Object {$_.Id -ne "8ab460f0-770c-4d30-a2ff-


a6469718844f"}

Set-CsAutoAttendant -Instance $autoAttendant


This example modifies an existing AA, removing the Christmas holiday call handling. We removed the call handling
association for Christmas holiday, along with the related call flow.

Parameters
-Instance
The Instance parameter is the object reference to the AA to be modified.
You can retrieve an object reference to an existing AA by using the Get-CsAutoAttendant cmdlet and assigning the
returned value to a variable.

Type: Object
Required: True
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False

-Tenant

Type: System.Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant
The Set-CsAutoAttendant cmdlet accepts a Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant object as the
Instance parameter.

Outputs
Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant
The modified instance of the Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant object.

Related Links
New -CsAutoAttendant
Get-CsAutoAttendant
Get-CsAutoAttendantStatus
Remove-CsAutoAttendant
Update-CsAutoAttendant
minutes to read • Edit Online

Set-CsAutodiscoverConfiguration
In ths Article

Modifies an existing collection of Autodiscover Service configuration settings. The Autodiscover Service provides a
way for client applications such as Lync Web App or Lync Mobile to locate key resources such as a user's home
pool or the URL for joining a dial-in conference. This cmdlet was introduced in the cumulative update for Lync
Server 2010: November 2011.

Syntax
Set-CsAutodiscoverConfiguration [[-Identity] <XdsIdentity>] [-Confirm] [-ExternalSipClientAccessFqdn <String>]
[-ExternalSipClientAccessPort <UInt32>] [-Force] [-WebLinks <PSListModifier>] [-WhatIf]
[-EnableCertificateProvisioningServiceUrl <Boolean>] [<CommonParameters>]

Set-CsAutodiscoverConfiguration [-Confirm] [-ExternalSipClientAccessFqdn <String>]


[-ExternalSipClientAccessPort <UInt32>] [-Force] [-Instance <PSObject>] [-WebLinks <PSListModifier>] [-WhatIf]
[-EnableCertificateProvisioningServiceUrl <Boolean>] [<CommonParameters>]

Description
For client applications to make the most effective use of Skype for Business Server those applications need to know
the location of key Skype for Business Server components. For example, authenticated users must be able to locate
their home pool; after all, they can only be authenticated by that home pool. Likewise, unauthenticated users must
be able to do such things as locate the URL used for joining a conference.
If all your users logged on from behind the organization's firewall discovering these locations would be a relatively
simple task. However, this relatively simple task gets more and more complicated as users access the system from
external locations using Lync Mobile.
This is especially true in split-domain scenarios, scenarios in which some of an organization's users have accounts
on the on-premises version of Skype for Business Server while other users have accounts on Skype for Business
Online. In cases such as this, user accounts might be located in different Active Directory forests. That can pose a
problem: for example, if a US -based user logs on from Europe the system must be able to recognize his or her
forest and then refer the logon request to the proper pool.
The Autodiscover Service was introduced in the cumulative update for Lync Server: November 2011 in order to
address these issues. When a client application attempts to access Skype for Business Server, the Autodiscover
service parses the client SIP address and then redirects that request to the appropriate pool. Client applications
connect to the Autodiscover service by sending an HTTP request to an Autodiscover URL; these URLs must be
configured by administrators in order for the Autodiscover service to work. (Note that, in addition to configuring
URLs, administrators must also create DNS records that correspond to these URLs.)
Autodiscover URLs are assigned to Autodiscover Service configuration settings. In turn, these settings can be
applied to the global scope or to the site scope. When you install Skype for Business Server a global collection of
settings will be created for you. (However, no Autodiscover URLs will be assigned to that collection.) If a single
collection of Autodiscover settings will not fill your needs, then you can use the New-CsAutoDiscoverConfiguration
cmdlet to create additional configuration settings at the site scope. From there, you can use the
Set-CsAutoDiscoverConfiguration cmdlet to add or remove Autodiscover URLs from the global collection or from
any site-scoped collection.

Examples
-------------------------- Example 1 --------------------------

$Link1 = New-CsWebLink -Token "Fabrikam" -Href "http://LyncDiscover.fabrikam.com"

Set-CsAutoDiscoverConfiguration -Identity "site:Redmond" -WebLinks @{Add=$Link1}

The commands shown in Example 1 add a new Autodiscover URL (http://LyncDiscover.fabrikam.com) to the
Autodiscover configuration settings assigned to the Redmond site. To do this, the first command in the example
uses the New-CsWebLink cmdlet to create a new Autodiscover URL; that URL is stored in a variable named $Link1.
In the second command, the Set-CsAutoDiscoverConfiguration cmdlet is used to add the new URL to any URLs
already assigned to these settings. This is done by using the WebLinks parameter and the parameter value
@{Add=$Link1}.
-------------------------- Example 2 --------------------------

$Link1 = Get-CsAutoDiscoverConfiguration -Identity "site:Redmond" | Select-Object -ExpandProperty WebLinks |


Where-Object {$_.Token -eq "Fabrikam"}

Set-CsAutoDiscoverConfiguration -Identity "site:Redmond" -WebLinks @{Remove=$Link1}

The commands shown in Example 2 demonstrate how you can remove a URL from a collection of Autodiscover
Service configuration settings. In order to do this, the first command in the collection retrieves an object reference
to the URL to be deleted (a URL that has a Token equal to "Fabrikam"). This is done by first calling the
Get-CsAutoDiscoverConfiguration cmdlet in order to retrieve the Autodiscover Service settings for the Redmond
site. That collection in then piped to the Select-Object cmdlet, which uses the ExpandProperty parameter to
"expand" the WebLinks property. (When a property is expanded, that provides the Get-CsAutoDiscoverConfiguration
cmdlet access to the individual objects stored in that property.) These WebLinks objects are then piped to the
Where-Object cmdlet, which selects the one object where the Token property is equal to "Fabrikam". That WebLinks
object is then stored in a variable named $Link1.
After that the second command in the example uses the Set-CsAutoDiscoverConfiguration cmdlet to remove the
object stored in $Link1. To do this, the command uses the WebLinks parameter and the parameter value
@{Remove=$Link1}.
-------------------------- Example 3 --------------------------

$Link2 = New-CsWebLink -Token "Contoso" -Href "http://LyncDiscover.contoso.com"

Set-CsAutoDiscoverConfiguration -Identity "site:Redmond" -WebLinks @{Replace=$Link2}

Example 3 shows how you can replace an existing collection of Autodiscover URLs with, in this case, a single URL.
To carry out this task, the first command in the example uses the New-CsWebLink cmdlet to create a new
Autodiscover URL for http://LyncDiscover.contoso.com; the resulting URL is stored in a variable named $Link2.
The second command then uses the Set-CsAutoDiscoverConfiguration cmdlet and the WebLinks parameter to
remove any URLs previously assigned to the Redmond site and replace them with the URL for
http://LyncDiscover.contoso.com. To do this, the command uses the Replace method instead of the Add or Remove
method.
-------------------------- Example 4 --------------------------

Set-CsAutoDiscoverConfiguration -Identity "site:Redmond" -WebLinks $Null

The command shown in Example 4 removes all the Autodiscover URLs that have been assigned to the Redmond
site. To do this, the command sets the WebLinks property to a null value. In turn, that deletes any URLs previously
assigned to that property.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCertificateProvisioningServiceUrl
When set to True (the default value), the Certificate Provisioning Service URL is included in Autodiscover Service
responses.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalSipClientAccessFqdn
Fully qualified domain name (FQDN ) of the server that is used for external client access.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalSipClientAccessPort
Port used for eternal client access.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of Autodiscover configuration settings to be modified. To modify to the global
collection, use this syntax:
-Identity "global"

To modify a collection configured at the site scope, use syntax similar to this:
-Identity "site:Redmond"

If this parameter is not specified, then the Set-CsAutoDiscoverConfiguration cmdlet will automatically modify the
global settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WebLinks
Collection of Autodiscover URLs. These URLs must be created by using the New-CsWebLink cmdlet.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsAutoDiscoverConfiguration cmdlet accepts pipelined input of the
Microsoft.Rtc.Management.WriteableConfig.Settings.AutoDiscoverConfiguration.AutoDiscoverConfiguration
object.

Outputs
None. The Set-CsAutoDiscoverConfiguration cmdlet modifies instances of the
Microsoft.Rtc.Management.WriteableConfig.Settings.AutoDiscoverConfiguration.AutoDiscoverConfiguration
object.
minutes to read • Edit Online

Set-CsAVEdgeConfiguration
In ths Article

Enables you to modify configuration settings for computers running the A/V Edge service (these computers are
also known as A/V Edge servers). An A/V Edge server enables internal users to share audio and video data with
external users (that is, users who are not logged on to your internal network), as well as exchange files and
participate in desktop sharing sessions. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsAVEdgeConfiguration [[-Identity] <XdsIdentity>] [-MaxTokenLifetime <TimeSpan>] [-Force] [-WhatIf]
[-Confirm] [-MaxBandwidthPerPortKb <UInt32>] [-MaxBandwidthPerUserKb <UInt32>] [<CommonParameters>]

Set-CsAVEdgeConfiguration [-Instance <PSObject>] [-MaxTokenLifetime <TimeSpan>] [-Force] [-WhatIf] [-Confirm]


[-MaxBandwidthPerPortKb <UInt32>] [-MaxBandwidthPerUserKb <UInt32>] [<CommonParameters>]

Description
An A/V Edge server provides a way for audio and video traffic to be exchanged across an organization's firewall.
Among other things, this enables users to use Skype for Business Server across the Internet and then exchange
audio and video data with users who have logged onto the system from inside the firewall. Edge Server
configuration settings can be assigned at the global scope, the site scope and the service scope. These configuration
settings enable administrators to do such things as manage the amount of time that user authentication is valid
before it must be renewed and to limit the amount of bandwidth that can be used by a single user or a single port.
The Set-CsAVEdgeConfiguration cmdlet provides a way for you to modify the A/V Edge configuration settings
currently in use in your organization. However, unless instructed by Microsoft support personnel, it is
recommended that administrators do not modify the default A/V Edge settings.

Examples
-------------------------- Example 1 ------------------------

Set-CsAVEdgeConfiguration -Identity global -MaxTokenLifetime "04:00:00"

In Example 1, the command modifies the MaxTokenLifetime property for the global A/V Edge configuration
settings. In this example, the maximum token lifetime is set to 4 hours (04 hours : 00 minutes : 00 seconds).

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of A/V Edge configuration settings to be modified. To modify the global
collection, use the following syntax: -Identity global . To modify a site collection use syntax similar to this:
-Identity site:Redmond . Settings configured at the service scope should be referred to using syntax similar to this:
-Identity service:EdgeServer:atl-cs-001.litwareinc.com .

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MaxBandwidthPerPortKb
Indicates the maximum amount of bandwidth (in kilobits per second) that can be allocated to a single port. The
maximum bandwidth can be set to any integer value between 1 and 4294967296 (4096 gigabits) per second; the
default value is 3000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxBandwidthPerUserKb
Indicates the maximum amount of bandwidth (in kilobits per second) that can be allocated to any one user. The
maximum bandwidth can be set to any integer value between 1 and 4294967296 (4096 gigabits) per second; the
default value is 10000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxTokenLifetime
The maximum amount of time that an authentication token can be used before it expires and must be renewed.
Token lifetimes are expressed using the following format: Days.Hours:Minutes:Seconds. For example, 13 days must
be expressed like this, with a period (.) following the number of days, and colons (:) used to separate the hours,
minutes, and seconds:
13.00:00:00
The default value of 8 hours must be expressed like this:
08:00:00
The minimum allowed token lifetime is 1 minute (00:01:00); the maximum allowed lifetime is 180 days
(180.00:00:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings object. The
Set-CsAVEdgeConfiguration cmdlet accepts pipelined input of media relay settings objects.

Outputs
The Set-CsAVEdgeConfiguration cmdlet does not return a value or object. Instead, the cmdlet configures instances of
the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings object.
Related Links
Get-CsAVEdgeConfiguration
New -CsAVEdgeConfiguration
Remove-CsAVEdgeConfiguration
minutes to read • Edit Online

Set-CsBackupServiceConfiguration
In ths Article

Retrieves the backup service configuration settings for Skype for Business Server. These settings include
information about the maximum number of simultaneous Windows Communication Framework calls that can be
made to the backup service as well as the backup service synchronization interval. This cmdlet was introduced in
Lync Server 2013.

Syntax
Set-CsBackupServiceConfiguration [[-Identity] <XdsIdentity>] [-AuthorizedLocalAccounts <String>]
[-AuthorizedUniversalGroups <String>] [-Confirm] [-Force] [-MaxBatchesPerCmsSync <Int32>]
[-MaxBatchesPerUserStoreSync <Int32>] [-MaxConcurrentCalls <Int32>] [-MaxDataConfPackageSizeKB <Int32>]
[-SyncInterval <TimeSpan>] [-WhatIf] [-MaxHighPriQueuePercentagePerUserStoreSync <Int32>] [<CommonParameters>]

Set-CsBackupServiceConfiguration [-AuthorizedLocalAccounts <String>] [-AuthorizedUniversalGroups <String>]


[-Confirm] [-Force] [-Instance <PSObject>] [-MaxBatchesPerCmsSync <Int32>]
[-MaxBatchesPerUserStoreSync <Int32>] [-MaxConcurrentCalls <Int32>] [-MaxDataConfPackageSizeKB <Int32>]
[-SyncInterval <TimeSpan>] [-WhatIf] [-MaxHighPriQueuePercentagePerUserStoreSync <Int32>] [<CommonParameters>]

Description
The backup service configuration settings are used to manage pool backups in Skype for Business Server. Note
that Skype for Business Server allows only for a single, global collection of backup configuration settings. Among
other things, that means that all your pools must be backed up using the same synchronization schedule and that
users and groups authorized to backup Pool A are also allowed to backup Pools B, C, D and E.
Skype for Business Server Control Panel: The functions carried out by the Set-CsBackupServiceConfiguration cmdlet
are not available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Set-CsBackupServiceConfiguration -Identity "global" -AuthorizedUniversalGroups "Schema Admins"

The command shown in Example 1 assigns the Active Directory security group Schema Admins to the
AuthorizedUniversalGroups property for the global collection of backup service settings.
-------------------------- Example 2 --------------------------

Set-CsBackupServiceConfiguration -Identity "global" -MaxConcurrentCalls 12

In Example 2, the MaxConcurrentCalls property of the global collection of backup service settings is set to 12.
-------------------------- Example 3 --------------------------

Set-CsBackupServiceConfiguration -Identity "global" -SyncInterval "00:10:00"

Example 3 modifies the SyncInterval property of the global collection of backup service settings. In this example,
SyncInterval is set to 10 minutes: 00 hours : 10 minutes : 00 seconds.

Parameters
-AuthorizedLocalAccounts
Names of the local users/local groups that are authorized to run the backup service. The default value is Network
Service.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AuthorizedUniversalGroups
Names of the universal groups authorized to run the backup service. The default value is Schema admins.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the backup service configuration settings. Because you can only have a single, global instance
of these settings, you do not need to specify an Identity when calling the Set-CsBackupServiceConfiguration cmdlet.
If you prefer, however, you can use the following syntax to reference the global settings:
-Identity global

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MaxBatchesPerCmsSync
Maximum number of batches that the CMS backup module will export during each export cycle. The default value
is 500.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxBatchesPerUserStoreSync
Maximum number of batches that the User Store backup module will export during each export cycle. The default
value is 500.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxConcurrentCalls
The maximum number of Windows Communication Foundation (WCF ) calls that can be made to the backup
service at the same time. The default value is 10.
Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxDataConfPackageSizeKB
Maximum size of the data package (in kilobytes) that the Data Conference module will export during each export
cycle. The default value is 102400.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxHighPriQueuePercentagePerUserStoreSync
PARAMVALUE: Int32

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SyncInterval
Specifies the amount of time that the service waits before synchronizing a pool with its backup pool. The default
value is 2 minutes (00:02:00, or 00 hours, 02 minutes, 00 seconds). The SyncInterval can be configured to any value
between 5 seconds (00:00:05) and 3 hours (03:00:00), inclusive.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsBackupServiceConfiguration cmdlet accepts piped instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.BackupService.BackupServiceConfiguration object.

Outputs
None. Instead, the Set-CsBackupServiceConfiguration cmdlet modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.BackupService.BackupServiceConfiguration object.

Related Links
Get-CsBackupServiceConfiguration
Remove-CsBackupServiceConfiguration
minutes to read • Edit Online

Set-CsBandwidthPolicyServiceConfiguration
In ths Article

Modifies an existing bandwidth policy service configuration. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsBandwidthPolicyServiceConfiguration [[-Identity] <XdsIdentity>] [-EnableLogging <Boolean>]
[-LogCleanUpInterval <TimeSpan>] [-MaxLogFileSizeMb <UInt32>] [-MaxTokenLifetime <TimeSpan>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsBandwidthPolicyServiceConfiguration [-Instance <PSObject>] [-EnableLogging <Boolean>]


[-LogCleanUpInterval <TimeSpan>] [-MaxLogFileSizeMb <UInt32>] [-MaxTokenLifetime <TimeSpan>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call admission control (CAC ) is a way of determining whether to allow real-time communications sessions, such as
voice or video calls, to be established based on bandwidth constraints. Within the Skype for Business Server
implementation of CAC, regions, sites and subnets are defined within a network along with the relationships and links
between those entities in order to place bandwidth constraints between them. Bandwidth Policy service is the
component that performs CAC functionality in the Skype for Business Server deployment, enabling the decision as to
whether sufficient bandwidth exists for a call to be established. This cmdlet modifies an existing bandwidth policy
service configuration.

Examples
-------------------------- Example 1 --------------------------

Set-CsBandwidthPolicyServiceConfiguration -Identity site:Redmond -EnableLogging $true -MaxTokenLifetime 3:00:00 -


LogCleanUpInterval 5.00:00:00

This example modifies the bandwidth policy service configuration for the site Redmond (-Identity site:Redmond). The
configuration is modified to enable logging, change the maximum lifetime of a token to three hours and the number of
days before log cleanup to five days. This is all accomplished in this one command. To enable logging, the
EnableLogging parameter is set to True ($true). Next the MaxTokenLifetime parameter receives a value of 3:00:00, which
represents three hours. Finally, the LogCleanUpInterval parameter receives a value of 5.00:00:00, which signifies five
days.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableLogging
Set this parameter to True to generate CAC failure and link status logs related to the bandwidth policy service.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the configuration you want to change. This identifier will consist of the scope (for the global
configuration) or the scope and name (for a site-level configuration, such as site:Redmond).

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
A reference to a bandwidth policy service configuration object. This object must be of type
BandwidthPolicyServiceConfiguration, which can be retrieved by calling the Get-CsBandwidthPolicyServiceConfiguration
cmdlet.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-LogCleanUpInterval
The period of time after which CAC failure and link status logs will be removed.
This value must be within the range 1 day through 60 days. The value must be entered in the format dd.hh:mm:ss,
where d is days, h is hours, m is minutes, and s is seconds. For example, 20 days would be 20.00:00:00.
Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxLogFileSizeMb
The maximum size the log file is allowed to reach. The value for this parameter must be a positive number and specifies
the file size in megabytes. For example, to allow the log file to reach a maximum size of 10 megabytes, enter the value
10.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxTokenLifetime
The maximum amount of time the token issued by the Bandwidth Policy Authentication service will exist.
This value must be in the range 1 hour through 24 hours. The value must be entered in the format dd.hh:mm:ss, where
d is days, h is hours, m is minutes, and s is seconds. For example, the value for 12 hours would be 12:00:00.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicyServiceConfiguration
object. Accepts pipelined input of bandwidth policy service configuration objects.

Outputs
This cmdlet does not return a value. It modifies an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicyServiceConfiguration.

Related Links
New-CsBandwidthPolicyServiceConfiguration
Remove-CsBandwidthPolicyServiceConfiguration
Get-CsBandwidthPolicyServiceConfiguration
minutes to read • Edit Online

Set-CsBlockedDomain
In ths Article

Modifies the Comment property for one or more of the domains included on the list of domains that are blocked
for federation. By definition, your users are not allowed to use Skype for Business Server applications to
communicate with people from the blocked domain; for example, users cannot employ Skype for Business to
exchange instant messages with anyone with a SIP account in a domain that appears on the blocked list. This
cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsBlockedDomain [[-Identity] <XdsGlobalRelativeIdentity>] [-Comment <String>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Set-CsBlockedDomain [-Instance <PSObject>] [-Comment <String>] [-Force] [-WhatIf] [-Confirm]


[<CommonParameters>]

Description
Federation is a means by which two organizations can set up a trust relationship that facilitates communication
between the two groups. When federation has been established, users in the two organizations can send each other
instant messages, subscribe for presence notifications, and otherwise communicate with one another by using SIP
applications such as Skype for Business. Skype for Business Server allows for three types of federation: 1) direct
federation between your organization and another; 2) federation between your organization and a public provider
and 3) federation between your organization and a third-party hosting provider.
Setting up direct federation with another organization involves several tasks. To begin with, you must enable your
Access Edge servers to allow federation. In addition, the other organization must enable federation with you;
federation cannot be established unless both parties agree to the relationship.
To set up a federated relationship you might also need to manage two federation-related lists: the allowed list and
the blocked list. The allowed list represents the organizations you have chosen to federate with; if a domain appears
on the allowed list then (depending on your configuration settings) your users will be able to exchange instant
messages and presence information with users who have accounts in that federated domain. Conversely, the
blocked list represents domains that users are expressly forbidden from federating with; for example, messages
sent from a blocked domain will automatically be rejected by Skype for Business Server.
The Comment property, the only property of a blocked domain that can be modified, is used to store additional
information about a domain on the blocked list (for example, why the domain is being blocked; when the domain
can be removed from the blocked list; or who to contact if you would like to have the domain removed from the
blocked list). If you need to change the Comment property for any domain on the list of blocked domains, use the
Set-CsBlockedDomain cmdlet.

Examples
-------------------------- Example 1 ------------------------

Set-CsBlockedDomain -Identity fabrikam.com -Comment "Block this domain pending legal review."

The command shown in Example 1 modifies the Comment for the blocked domain with the Identity
"fabrikam.com". In this example, the Comment parameter is included along with the parameter value, "Block this
domain pending legal review."
-------------------------- Example 2 ------------------------

Get-CsBlockedDomain | Set-CsBlockedDomain -Comment "Block this domain pending legal review."

In Example 2, the Comment property is updated for all the domains included on the blocked domains list. To do
this, the command first calls the Get-CsBlockedDomain cmdlet, which returns a collection of all the domains currently
on the blocked domain list. That collection is then piped to the Set-CsBlockedDomain cmdlet, which proceeds to
modify the Comment property for each domain in the collection.
-------------------------- Example 3 ------------------------

Get-CsBlockedDomain | Where-Object {$_.Comment -eq $Null} | Set-CsBlockedDomain -Comment "Block this domain
pending legal review."

In Example 3, a new comment ("Block this domain pending legal review.") is added to each domain on the blocked
list that doesn't already have a value configured for the Comment property. To carry out this task, the command
first uses the Get-CsBlockedDomain cmdlet to return a collection of all the domains currently on the blocked list. This
collection is then piped to the Where-Object cmdlet, which picks out only those domains where the Comment
property is equal to a null value. The filtered collection is then piped to the Set-CsBlockedDomain cmdlet, which
assigns the same comment to the Comment property of each domain in the filtered collection.

Parameters
-Comment
Enables you to provide additional information about the domain being modified. For example, you might add a
Comment that indicates why the domain has been placed on the blocked list.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Fully qualified domain name (FQDN ) of the blocked domain for which the Comment property is being modified.
For example: fabrikam.com

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain object. The Set-CsBlockedDomain cmdlet
accepts pipelined instances of the blocked domain object.

Outputs
The Set-CsBlockedDomain cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain object.

Related Links
Get-CsBlockedDomain
New -CsBlockedDomain
Remove-CsBlockedDomain
Set-CsAccessEdgeConfiguration
minutes to read • Edit Online

Set-CsBroadcastMeetingConfiguration
In ths Article

Use the `Set-CsBroadcastMeetingConfiguration` cmdlet to modify the settings of your global (and only) broadcast
meeting configuration.

Syntax
Set-CsBroadcastMeetingConfiguration [-Tenant <Guid>] [-EnableBroadcastMeeting <Boolean>]
[-EnableOpenBroadcastMeeting <Boolean>] [-EnableBroadcastMeetingRecording <Boolean>]
[-EnableAnonymousBroadcastMeeting <Boolean>] [-EnforceBroadcastMeetingRecording <Boolean>]
[-BroadcastMeetingSupportUrl <String>] [-EnableSdnProviderForBroadcastMeeting <Boolean>]
[-SdnFallbackAttendeeThresholdCountForBroadcastMeeting <UInt32>] [-EnableTechPreviewFeatures <Boolean>]
[[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsBroadcastMeetingConfiguration -SdnProviderName <String> [-SdnLicenseId <String>]


[-SdnAzureSubscriptionId <String>] -SdnApiTemplateUrl <String> [-SdnApiToken <String>] [-Tenant <Guid>]
[-EnableBroadcastMeeting <Boolean>] [-EnableOpenBroadcastMeeting <Boolean>]
[-EnableBroadcastMeetingRecording <Boolean>] [-EnableAnonymousBroadcastMeeting <Boolean>]
[-EnforceBroadcastMeetingRecording <Boolean>] [-BroadcastMeetingSupportUrl <String>]
[-EnableSdnProviderForBroadcastMeeting <Boolean>]
[-SdnFallbackAttendeeThresholdCountForBroadcastMeeting <UInt32>] [-EnableTechPreviewFeatures <Boolean>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsBroadcastMeetingConfiguration [-Tenant <Guid>] [-EnableBroadcastMeeting <Boolean>]


[-EnableOpenBroadcastMeeting <Boolean>] [-EnableBroadcastMeetingRecording <Boolean>]
[-EnableAnonymousBroadcastMeeting <Boolean>] [-EnforceBroadcastMeetingRecording <Boolean>]
[-BroadcastMeetingSupportUrl <String>] [-EnableSdnProviderForBroadcastMeeting <Boolean>]
[-SdnFallbackAttendeeThresholdCountForBroadcastMeeting <UInt32>] [-EnableTechPreviewFeatures <Boolean>]
[-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Use the Set-CsBroadcastMeetingConfiguration cmdlet to modify the settings of your global (and only) broadcast
meeting configuration.
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command:
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "\<DesiredCmdletName\>"}

Examples
-------------------------- Example 1 --------------------------

Set-CsBroadcastMeetingConfiguration -Identity Global -EnableAnonymousBroadcastMeeting $true -


EnableBroadcastMeetingRecording $true
This example sets the global configuration to enable unauthenticated attendees and recorded meetings.
-------------------------- Example 2 --------------------------

Set-CsBroadcastMeetingConfiguration -EnableSdnProviderForBroadcastMeeting $true -SdnProviderName "SDNCo" -


SdnLicenseId 24030-38291-39042-2048-253904 -SdnApiTemplateUrl "https://api.SDNCo.com/template?auth={0}" -
SdnFallbackAttendeeThresholdCountForBroadcastMeeting 1000

This example enables Software Defined Network (SDN ) management of broadcast meetings and provides all the
required and optional settings to enable SDN support.
-------------------------- Example 3 --------------------------

Set-CsBroadcastMeetingConfiguration -SdnFallbackAttendeeThresholdCountForBroadcastMeeting 500

This example adjusts the broadcast meeting configuration to set the number of meeting attendees who can fall
back from a Software Defined Network (SDN ) to the content delivery network to 500.

Parameters
-BroadcastMeetingSupportUrl
Specifies a URL where broadcast meeting attendees can find support information or FAQs specific to that meeting.
The URL will be displayed during the broadcast meeting.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
The Confirm switch causes the command to pause processing and requires confirmation to proceed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAnonymousBroadcastMeeting
Specifies whether non-authenticated attendees are allowed to join and view the web-based portion of the meeting.
Valid input for this parameter is $true or $false. The default value is $true.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableBroadcastMeeting
Specifies whether broadcast meetings are enabled. Valid input for this parameter is $true or $false. The default
value is $false.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableBroadcastMeetingRecording
Specifies whether broadcast meetings can be recorded at the server level. Valid input for this parameter is $true or
$false. The default value is $true.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOpenBroadcastMeeting
Specifies if the organizer is allowed to create broadcast meetings that allows anyone in the organizer's organization
to attend. The default and only setting is $true.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSdnProviderForBroadcastMeeting
If set to $true, broadcast meeting streams are enabled to take advantage of the network and bandwidth
management capabilities of your Software Defined Network (SDN ) provider. The default is $false.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableTechPreviewFeatures
Set to $true to enable use of features available in a technical preview program. Set to $false to disable the technical
preview features.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-EnforceBroadcastMeetingRecording
Specifies whether all meetings will be recorded. Valid input for this parameter is $true or $false. The default value is
$false.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to
suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative
input if required.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This parameter is reserved for internal Microsoft use.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SdnApiTemplateUrl
Specifies the Software Defined Network (SDN ) provider's HTTP API endpoint. This information is provided to you
by the SDN provider. This parameter is only required if EnableSdnProviderForBroadcastMeeting is set to $true.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SdnApiToken
Specifies the Software Defined Network (SDN ) provider's authentication token which is required to use their SDN
license. This is required by some SDN providers who will give you the required token. This parameter is only
required if EnableSdnProviderForBroadcastMeeting is set to $true.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SdnAzureSubscriptionId
Specifies your Microsoft Azure subscription id which is required by some providers to access the Software Defined
Network (SDN ) provider's services.
The SdnAzureSubscriptionId parameter is not currently supported.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SdnFallbackAttendeeThresholdCountForBroadcastMeeting
Specifies the number of broadcast meeting attendees that are allowed to fallback from a Software Defined
Network (SDN ) connection to the standard content delivery network. If this number is exceeded, additional
meeting attendees who are not able to use the SDN service will not be allowed to join the meeting.
The SdnFallbackAttendeeThresholdCountForBroadcastMeeting parameter is not currently supported.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SdnLicenseId
Specifies the Software Defined Network (SDN ) license identifier. This is required and provided by some SDN
providers. This parameter is only required if EnableSdnProviderForBroadcastMeeting is set to $true.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SdnProviderName
Specifies the Software Defined Network (SDN ) provider's name. This parameter is only required if
EnableSdnProviderForBroadcastMeeting is set to $true.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes
would occur without having to commit those changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
None
minutes to read • Edit Online

Set-CsBusyOptions
In ths Article

Sets up the processing of incoming calls for users who are already engaged in another communication stream. This
cmdlet was introduced in Skype for Business Server 2015 June 2016 Cumulative Update.

Syntax
Set-CsBusyOptions [-Identity] <UserIdParameter> -ActionType <ActionType> [-Confirm] [-PassThru] [-WhatIf]
[<CommonParameters>]

Description
This cmdlet sets the configuration for processing of incoming calls defined for a specific user. If Busy Options is
enabled for the organization, all users in your organization, both Enterprise Voice and non-Enterprise Voice users,
can use the following features:
Busy on Busy - In which new incoming calls will be rejected with a busy signal if the user is busy.
Voicemail on Busy - In which new incoming calls will be forwarded to voice mail if the user is busy.
The Busy Options feature provides failover capability. If a problem occurs and users fail over to another Front End
Server or to another pool in Skype for Business Server, their Busy Options settings will be preserved.
Regardless of how their busy options are configured, users in a call or conference, or those with a call on hold, are
not prevented from initiating new calls or conferences.
After configuration, the Busy Options setting is in effect for all the user's Skype for Business call devices and clients.
Based on the user's Busy Options settings, the call that is rejected or sent to voice mail would not ring on any of the
user's call devices--including Macintosh, Windows Desktop, mobile clients, or IP phones--on which the user is
signed in.
Users will see missed-call notifications on their Skype for Business clients and devices, and they will be notified by
email as well. Callers whose call was rejected due to Busy on Busy will see a notification in their Skype for Business
client stating that the user they attempted to reach is busy on another call.
For more information about how to enable Busy Options in your organization, see (https://docs.microsoft.com/en-
us/skypeforbusiness/deploy/deploy-enterprise-voice/install-and-configure-busy-options).

Examples
-------------------------- Example 1 --------------------------

Set-CsBusyOptions -Identity "Ken Myer" -ActionType BusyOnBusy

This cmdlet configures busy options for the user "Ken Myer". In this configuration, any call to "Ken Myer" will return
a busy signal when he is already in a call.
-------------------------- Example 2 --------------------------

Set-CsBusyOptions -Identity "Chrystal Velasquez" -ActionType VoicemailOnBusy

This cmdlet configures busy options for the user "Chrystal Velasquez". In this configuration, new incoming calls to
"Chrystal Velasquez" will be forwarded to voice mail when she is already in a call.

Parameters
-ActionType
There are two Action Type options:
BusyOnBusy - In which new incoming calls will be rejected with a busy signal if the user is busy.
VoicemailOnBusy - In which new incoming calls will be forwarded to voice mail if the user is busy.

Type: ActionType
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the user account to be modified. User Identities can be specified using one of four formats:
1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon name, in
the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for
example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name.
You can use the asterisk (*) wildcard character when using the display name as the user Identity. For example, the
Identity "*Smith" returns all the users who have a display name that ends with the string value "Smith".

Type: UserIdParameter
Required: True
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any
output.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Bob.Cmdlets.ActionType object. Microsoft.Rtc.Management.AD.UserIdParameter
object.

Outputs
Microsoft.Rtc.Management.Bob.Cmdlets.ActionType object. Microsoft.Rtc.Management.AD.UserIdParameter
object.

Related Links
Get-CsBusyOptions
Remove-CsBusyOptions
minutes to read • Edit Online

Set-CsCallerIdPolicy
In ths Article

Provide the topic introduction here.

Syntax
Set-CsCallerIdPolicy [-Tenant <Guid>] [-Description <String>] [-Name <String>]
[-EnableUserOverride <Boolean>] [-ServiceNumber <String>] [-CallerIDSubstitute <CallerIDSubstitute>]
[[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsCallerIdPolicy [-Tenant <Guid>] [-Description <String>] [-Name <String>]


[-EnableUserOverride <Boolean>] [-ServiceNumber <String>] [-CallerIDSubstitute <CallerIDSubstitute>]
[-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-CallerIDSubstitute
PARAMVALUE: Anonymous | Service | LineUri

Type: CallerIDSubstitute
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableUserOverride
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsIdentity

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
PARAMVALUE: PSObject
Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServiceNumber
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Set-CsCallingLineIdentity
In ths Article

Provide the topic introduction here.

Syntax
Set-CsCallingLineIdentity [-Tenant <Guid>] [-Description <String>] [-EnableUserOverride <Boolean>]
[-ServiceNumber <String>] [-CallingIDSubstitute <CallingIDSubstituteType>]
[-BlockIncomingPstnCallerID <Boolean>] [[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Set-CsCallingLineIdentity [-Tenant <Guid>] [-Description <String>] [-EnableUserOverride <Boolean>]


[-ServiceNumber <String>] [-CallingIDSubstitute <CallingIDSubstituteType>]
[-BlockIncomingPstnCallerID <Boolean>] [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-BlockIncomingPstnCallerID
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CallingIDSubstitute
PARAMVALUE: Anonymous | Service | LineUri
Type: CallingIDSubstituteType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableUserOverride
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsIdentity
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
PARAMVALUE: PSObject

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ServiceNumber
PARAMVALUE: String
Note: Do not add ‘+’ to the Service number. For example, if the Service number is +1425-xxx-xxxx then valid input
is 1425xxxxxxx

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Set-CsCallParkOrbit
In ths Article

Sets the properties for an existing call park orbit range within an organization. This cmdlet was introduced in Lync
Server 2010.

Syntax
Set-CsCallParkOrbit [[-Identity] <XdsGlobalRelativeIdentity>] [[-NumberRangeStart] <String>]
[[-NumberRangeEnd] <String>] [[-CallParkService] <String>] [-Force] [-WhatIf] [-Confirm] [-Type <OrbitType>]
[<CommonParameters>]

Set-CsCallParkOrbit [[-NumberRangeStart] <String>] [[-NumberRangeEnd] <String>] [[-CallParkService] <String>]


[-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [-Type <OrbitType>] [<CommonParameters>]

Description
Parking a call assigns a received phone call to a number within a specific range for later retrieval. A call park orbit is
the set of numbers defined for this purpose. The Set-CsCallParkOrbit cmdlet enables you to change the number
ranges and the ID of the Call Park service. The new range of numbers must be unique among all call park orbits
defined within the organization.

Examples
-------------------------- Example 1 --------------------------

Set-CsCallParkOrbit -Identity "Redmond CPO 1" -NumberRangeStart 500 -NumberRangeEnd 699

This example changes the range of numbers for the call park orbit named "Redmond CPO 1" to 500 through 699.
All values within this range must be unique among all call park orbit ranges within the organization.
-------------------------- Example 2 --------------------------

Set-CsCallParkOrbit -Identity "Redmond CPO 2" -NumberRangeStart "*7000" -NumberRangeEnd "*7100"

This example changes the range of numbers for the call park orbit named "Redmond CPO 2" to *7000 through
*7100. All values within this range must be unique among all call park orbit ranges within the organization. Note
that, unlike the preceding example, double quote marks were included around the values assigned to
NumberRangeStart and NumberRangeEnd. If these values begin with a * or # (the only non-numeric values
allowed) you must enclose the value in double quotes.

Parameters
-CallParkService
The fully qualified domain name (FQDN ) or service ID of the Application service that hosts the Call Park
application. All calls parked to numbers within the range specified by the NumberRangeStart and
NumberRangeEnd parameters will be routed to this server or pool.

Type: String
Required: False
Position: 5
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier of the call park orbit range to be modified. If the Identity includes spaces, this value must be
included within double quotes.

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. This object
must be of type DisplayCallParkOrbit, which can be retrieved by calling the Get-CsCallParkOrbit cmdlet.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False
-NumberRangeEnd
The last number in the range for this call park orbit. The value must be greater than or equal to the
NumberRangeStart. The value must also be the same length as the value of the NumberRangeStart. For example, if
NumberRangeStart is set to 100, NumberRangeEnd cannot be set to 1001. In addition, if the NumberRangeStart
begins with a * or #, then NumberRangeEnd must begin with the same character.
Valid values: Must match the regular expression string ([*|#]?[1-9]\d{0,7})|([1-9]\d{0,8}). This means that the value
must be a string beginning with either the character * or # or a number 1 through 9 (the first character cannot be a
zero). If the first character is * or # the following character must be a number 1 through 9 (it cannot be a zero).
Subsequent characters can be any number 0 through 9 up to seven additional characters. (For example, "#6000",
"92000", and "95551212".) If the first character is not * or #, the first character must be a number 1 through 9 (it
cannot be zero), followed by up to eight characters, each a number 0 through 9. (For example,
915551212;41212;300.)

Type: String
Required: False
Position: 4
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NumberRangeStart
The first number in the range for this call park orbit. The value must be less than or equal to the NumberRangeEnd.
The value must also be the same length as the value of the NumberRangeEnd.
Valid values: Must match the regular expression string ([*|#]?[1-9]\d{0,7})|([1-9]\d{0,8}). This means that the value
must be a string beginning with either the character * or # or a number 1 through 9 (the first character cannot be a
zero). If the first character is * or # the following character must be a number 1 through 9 (it cannot be a zero).
Subsequent characters can be any number 0 through 9 up to seven additional characters. (For example, "#6000",
"92000", and "95551212".) The number following the * or # must be greater than 100. If the first character is not *
or #, the first character must be a number 1 through 9 (it cannot be zero), followed by up to eight characters, each a
number 0 through 9. (For example, 915551212;41212;300.)

Type: String
Required: False
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Specifies the type of call park orbit. Skype for Business Server allows for two different types of call park orbits:
CallPark. This is the standard call park orbit, in which a user places a call on hold and then can retrieve that call from
any phone by dialing the specified call park number. CallPark is the default orbit type and will be used if the Type
parameter is not specified.
GroupPickup. With group pickup, users can answer any incoming call that is made to any member of their call
pickup group. Call pickup groups are configured by administrators.
To specify a call park orbit type, use syntax similar to this:
-Type GroupPickup
This parameter was introduced in the February 2013 release of Lync Server 2013.

Type: OrbitType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Voice.Helpers.DisplayCallParkOrbit object. Accepts pipelined input of call park orbit
objects.

Outputs
This cmdlet modifies an object of type Microsoft.Rtc.Management.Voice.Helpers.DisplayCallParkOrbit.

Related Links
New -CsCallParkOrbit
Remove-CsCallParkOrbit
Get-CsCallParkOrbit
minutes to read • Edit Online

Set-CsCallParkServiceMusicOnHoldFile
In ths Article

Changes the audio file that will be played to callers who are on hold in a parked call. This cmdlet was introduced in
Lync Server 2010.

Syntax
Set-CsCallParkServiceMusicOnHoldFile [-Service] <String> -Content <Byte[]> [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Call parking is a service that allows a user to "park" an incoming phone call. Parking a call transfers it to a number
in a specified range and immediately places it on hold. Based on configuration settings for the Call Park service,
music on hold can be played to the caller while the call is parked. Use this cmdlet to change the audio file (music on
hold) that is played to a parked caller who is on hold.
Music on hold is played only if the EnableMusicOnHold property of the Call Park service has been set to True. You
can check this property by calling the Get-CsCpsConfiguration cmdlet. You can set the property either when the Call
Park configuration is created with the New-CsCpsConfiguration cmdlet or after the Call Park configuration exists by
calling the Set-CsCpsConfiguration cmdlet. This property is True by default.
Skype for Business Server ships with a default Call Park service music on hold file. If you don't assign an audio file,
the default file will be used.
Audio files must be in the following format: Windows Media Audio 9, 44 kHz, 16 bits, Mono, CBR, or 32 kbps.

Examples
-------------------------- Example 1 --------------------------

$a = Get-Content -ReadCount 0 -Encoding byte "C:\MoHFiles\soothingmusic.wma"

Set-CsCallParkServiceMusicOnHoldFile -Service ApplicationServer:pool0.litwareinc.com -Content $a

This example sets the file SoothingMusic.wma to be the audio file that is played to callers whose calls are parked.
The first line of this example is a call to the Get-Content cmdlet. This cmdlet simply reads the contents of a file and
assigns them, in this case, to the variable $a. We pass a value of 0 to the ReadCount parameter so the Get-Content
cmdlet will read the entire file at once (rather than try to read it line by line, which doesn't apply to an audio file).
We set the Encoding parameter to byte. This tells the Get-Content cmdlet that the content we want to read into
variable $a is a byte array rather than the audio file in .wma format.
Line 2 in this example is where we actually assign the audio file. We call the Set-CsCallParkServiceMusicOnHoldFile
cmdlet and specify the service ID where the Call Park service is running. We then pass the audio file contents that
we read into variable $a to the Content parameter. (Remember that these contents must be in byte format.)
Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Content
The contents of the audio file in byte format.
Use the Get-Content cmdlet to retrieve the contents of the audio file in byte format. (For details, see the Examples
section in this topic.)

Type: Byte[]
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Service
The ID of the service where the Call Park service resides; for example, ApplicationServer:pool0.litwareinc.com.

Type: String
Required: True
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Byte[]. Accepts pipelined input of a byte array containing the music on hold file.

Outputs
This cmdlet does not return a value.

Related Links
New -CsCpsConfiguration
Remove-CsCpsConfiguration
Set-CsCpsConfiguration
Get-CsCpsConfiguration
minutes to read • Edit Online

Set-CsCallViaWorkPolicy
In ths Article

Use the `Set-CsCallViaWorkPolicy` cmdlet to modify an existing call via work policy that enables and manages the
characteristics of outbound calls placed through the Skype for Business client.

Syntax
Set-CsCallViaWorkPolicy [[-Identity] <XdsIdentity>] [-AdminCallbackNumber <String>] [-Confirm]
[-Enabled <Boolean>] [-Force] [-Tenant <Guid>] [-UseAdminCallbackNumber <Boolean>] [-WhatIf]
[<CommonParameters>]

Set-CsCallViaWorkPolicy [-AdminCallbackNumber <String>] [-Confirm] [-Enabled <Boolean>] [-Force]


[-Instance <PSObject>] [-Tenant <Guid>] [-UseAdminCallbackNumber <Boolean>] [-WhatIf] [<CommonParameters>]

Description
To return a list of all the Role-Based Access Control (RBAC ) roles a cmdlet has been assigned to (including any
custom RBAC roles you have created), run the following command from the Windows PowerShell prompt.
Get-CsAdminRole | Where-Object {$_.Cmdlets -Match "<DesiredCmdletName>"}

Examples
-------------------------- Example 1 --------------------------

Set-CsCallViaWorkPolicy -Identity Site:Redmond -Enabled $true -AdminCallbackNumber +14258881234 -


UseAdminCallbackNumber $true

This example enables the existing call via work policy of the Redmond site and enforces the use of the specified
callback number.

Parameters
-AdminCallbackNumber
Specifies the number that will be called during the call back to the Skype for Business user before placing the
external call. Typically this is the user's desk phone. If you want the user be able to change the callback number, use
the UseAdminCallbackNumber switch. The input must contain only digits and can optionally start with a "+". For
instance, "12068881234" or "+12068881234".
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
If true ($True) the policy is enabled. The default at policy creation is false ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error messages and completes the cmdlet operation.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Specifies the unique identifier assigned to the policy when it was created. Call via work policies can be assigned at
the global, site, or per-user scope.
Global syntax: -Identity Global

Site syntax: -Identity Site:Redmond

Per-user syntax: -Identity CallviaWorkStandard

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Tenant
This parameter is reserved for internal Microsoft use.

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UseAdminCallbackNumber
If true ($True), the number specified in the AdminCallbackNumber is the only number that will be used for the
callback to the user, or first leg, of the outbound call. If false ($False), the user has the opportunity to change the
callback number through the client. The user might choose to change the call back number to a conference room or
home number.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Input Types
None.

Outputs
None.
Related Links
Remove-CsCallViaWorkPolicy
New -CsCallViaWorkPolicy
Grant-CsCallViaWorkPolicy
Get-CsCallViaWorkPolicy
minutes to read • Edit Online

Set-CsCceApplianceConfigurationReplicationStatus
In ths Article

{{Fill in the Synopsis}}

Syntax
Set-CsCceApplianceConfigurationReplicationStatus [-Identity] <XdsGlobalRelativeIdentity>
[-Tenant <Guid>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsCceApplianceConfigurationReplicationStatus [-Identity] <XdsGlobalRelativeIdentity>


[-Tenant <Guid>] [-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
{{Fill in the Description}}

Examples
-------------------------- Example 1 --------------------------

PS C:\> {{ Add example code here }}

{{ Add example description here }}

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
{{Fill Force Description}}
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
{{Fill Identity Description}}

Type: XdsGlobalRelativeIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
{{Fill Instance Description}}

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.Management.Automation.PSObject

Outputs
System.Object
minutes to read • Edit Online

Set-CsCceApplianceDeploymentStatus
In ths Article

Provide the topic introduction here.

Syntax
Set-CsCceApplianceDeploymentStatus -Action <HybridPstnApplianceAction>
-Status <HybridPstnApplianceActionStatus> [-Version <String>] [-Error <String>]
[-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Set-CsCceApplianceDeploymentStatus -Action <HybridPstnApplianceAction>


-Status <HybridPstnApplianceActionStatus> [-Version <String>] [-Error <String>]
[-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>] [-Instance <PSObject>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Action
PARAMVALUE: Deploy | BitsUpdate | OsUpdate | Remove

Type: HybridPstnApplianceAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
PARAMVALUE: SwitchParameter
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Error
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsGlobalRelativeIdentity

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
PARAMVALUE: PSObject

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Status
PARAMVALUE: Started | Finished | Error
Type: HybridPstnApplianceActionStatus
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Version
PARAMVALUE: String

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Set-CsCceApplianceStatus
In ths Article

Provide the topic introduction here.

Syntax
Set-CsCceApplianceStatus [-Status <HybridPstnApplianceRunningStatus>] [-Version <String>] [-Error <String>]
[-ConfigurationSnapshot <String>] [-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsCceApplianceStatus [-Status <HybridPstnApplianceRunningStatus>] [-Version <String>] [-Error <String>]


[-ConfigurationSnapshot <String>] [-Identity] <XdsGlobalRelativeIdentity> [-Tenant <Guid>]
[-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Provide the detailed description here.

Examples
-------------------------- Example 1 --------------------------

Insert example commands for example 1.

Insert descriptive text for example 1.

Parameters
-Confirm
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Error
PARAMVALUE: String
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
PARAMVALUE: XdsGlobalRelativeIdentity

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
PARAMVALUE: PSObject

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Status
PARAMVALUE: None | Running | Maintenance | Error

Type: HybridPstnApplianceRunningStatus
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
PARAMVALUE: Guid
Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Version
{{Fill Version Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
PARAMVALUE: SwitchParameter

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
minutes to read • Edit Online

Set-CsCdrConfiguration
In ths Article

Modifies an existing collection of call detail recording (CDR ) settings. CDR enables you to track usage of such
things as peer-to-peer instant messaging sessions, Voice over Internet Protocol (VoIP ) phone calls and
conferencing calls. This usage data includes information about who called whom, when they called and how long
they talked. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsCdrConfiguration [[-Identity] <XdsIdentity>] [-EnableCDR <Boolean>] [-EnablePurging <Boolean>]
[-KeepCallDetailForDays <UInt32>] [-KeepErrorReportForDays <UInt32>] [-PurgeHourOfDay <UInt32>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsCdrConfiguration [-Instance <PSObject>] [-EnableCDR <Boolean>] [-EnablePurging <Boolean>]


[-KeepCallDetailForDays <UInt32>] [-KeepErrorReportForDays <UInt32>] [-PurgeHourOfDay <UInt32>] [-Force]
[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call detail recording (CDR ) provides a way for you to track usage of Skype for Business Server capabilities such as
Voice over Internet Protocol (VoIP ) phone calls; instant messaging (IM ); file transfers; audio/video (A/V )
conferencing and application sharing sessions. CDR (which is available only if you have deployed the Monitoring
service) keeps usage information: it logs information such as the parties involved in the call; the length of the call;
and whether or not any files were transferred. However, CDR does not make a recording of the call itself.
CDR also keeps track of call error information: detailed diagnostic data for both peer-to-peer sessions and for
conferencing calls.
As an administrator, you can determine whether or not CDR is used in your organization; assuming that the
Monitoring Service has been deployed, you can easily enable or disable CDR. In addition, you can make this
decision globally (in which case CDR will either be enabled or disabled throughout the organization) or on a site-
by-site basis. For example, you could use CDR in the Redmond site but not use CDR in the Paris site.
Administrators can also manage the CDR database; for example, you can specify the number of days CDR records
are maintained before they are purged from that database. Changes such as these can be made by using the
Set-CsCdrConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

Set-CsCdrConfiguration -Identity site:Redmond -PurgeHourOfDay 23

Example 1 sets the time of day for purging old records. In this case the time is set to 23 (11:00 P.M. on a 24-hour
clock). The Identity parameter is used to ensure that these changes are only made to the CDR settings that have the
Identity site:Redmond.
-------------------------- Example 2 --------------------------

Get-CsCdrConfiguration | Set-CsCdrConfiguration -PurgeHourOfDay 23

Example 2 is a variation of the command shown in Example 1. In this case, the PurgeHourOfDay property is
modified for each collection of CDR configuration settings currently in use in the organization. To do this, the
command first calls the Get-CsCdrConfiguration cmdlet without any parameters in order to return a collection of all
the CDR settings currently in use. This collection is then piped to the Set-CsCdrConfiguration cmdlet, which takes
each item in the collection and changes the value of the PurgeHourOfDay property to 11:00 PM (23).
-------------------------- Example 3 --------------------------

Get-CsCdrConfiguration -Filter "site:*"| Set-CsCdrConfiguration -PurgeHourOfDay 23

Another variation of the command used in Example 1 is shown in Example 3. In this example, the PurgeHourOfDay
property is changed for all the CDR settings that have been configured at the site scope. To perform this task, the
command first calls the Get-CsCdrConfiguration cmdlet along with the Filter parameter; the filter value "site:*"
ensures that only CDR settings that have an Identity that begins with the string value "site:" will be returned. The
filtered collection is then piped to the Set-CsCdrConfiguration cmdlet, which changes the PurgeHourOfDay
property for each item in that collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCDR
Indicates whether or not CDR is enabled. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePurging
Indicates whether or not CDR records will periodically be deleted from the CDR database. If True (the default
value), records will be deleted after the time period specified by the properties KeepCallDetailForDays (for CDR
records) and KeepErrorReportForDays (for CDR errors). If False, CDR records will be maintained indefinitely.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier assigned to the collection of CDR configuration settings. To refer to the global settings, use this
syntax: -Identity global . To refer to a collection configured at the site scope, use syntax similar to this:
-Identity site:Redmond . Note that you cannot use wildcard characters when specifying an Identity.

If this parameter is omitted then the Set-CsCdrConfiguration cmdlet will modify the global settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-KeepCallDetailForDays
Indicates the number of days that CDR records will be kept in the CDR database; any records older than the
specified number of days will automatically be deleted. (Note that purging will take only place if the EnablePurging
property has been set to true.)
You can set this property to any integer value between 1 and 2562 days (approximately 7 years). The default value
is 60.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-KeepErrorReportForDays
Indicates the number of days that CDR error reports are kept; any reports older than the specified number of days
will automatically be deleted. CDR error reports are diagnostic reports uploaded by client applications such as
Skype for Business.
You can set this property to any integer value between 1 and 2562 days (approximately 7 years). The default value
is 60.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PurgeHourOfDay
Indicates the local time of day when expired records are deleted from the CDR database. The time of day is
specified using a 24-hour clock, with 0 representing midnight (12:00 A.M.) and 23 representing 11:00 P.M. Note
that you can only specify the hour of the day; that means that you can schedule purging to take place at 4:00 A.M.,
but you cannot schedule it to take place at 4:30 A.M. or 4:15 A.M.. The default value is 2 (2:00 A.M.). It is
recommended that purging take place during non-working hours.
Database purging takes place only if the EnablePurging property is set to True.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CdrSettings. The Set-CsCdrConfiguration
cmdlet accepts pipelined input of call detail recording configuration objects.
Outputs
The Set-CsCdrConfiguration cmdlet does not return a value or object. Instead, the cmdlet configures instances of
the Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CDRSettings object.

Related Links
Get-CsCdrConfiguration
New -CsCdrConfiguration
Remove-CsCdrConfiguration
minutes to read • Edit Online

Set-CsCertificate
In ths Article

Enables you to assign a certificate to a Skype for Business Server server or server role. This cmdlet was introduced
in Lync Server 2010.

Syntax
Set-CsCertificate [-NetportId <String>] -Reference <CertificateReference> [-Type <CertType[]>] [-Force]
[-Report <String>] [-WhatIf] [-Confirm] [-Identity <XdsIdentity>] [-EffectiveDate <DateTime>] [-Roll]
[<CommonParameters>]

Set-CsCertificate [-NetportId <String>] -Thumbprint <String> [-Type <CertType[]>] [-Force] [-Report <String>]
[-WhatIf] [-Confirm] [-Identity <XdsIdentity>] [-EffectiveDate <DateTime>] [-Roll] [<CommonParameters>]

Set-CsCertificate -Identity <XdsIdentity> -Path <String> -Type <CertType[]> [-Confirm]


[-EffectiveDate <DateTime>] [-Force] [-Password <String>] [-Report <String>] [-Roll] [-WhatIf]
[<CommonParameters>]

Description
Skype for Business Server uses certificates as a way for servers and server roles to verify their identities; for
example, an Edge Server uses certificates to verify that the computer it is communicating with really is a Front End
Server and vice versa. In order to fully implement Skype for Business Server, you will need to have the appropriate
certificates assigned to the appropriate server roles.
The Set-CsCertificate cmdlet enables administrators to assign a certificate to a server or server role. Note that
you can only assign certificates that have already been configured for use with Skype for Business Server. To
identify certificates available for assignment, use the Get-CsCertificate cmdlet.

Examples
-------------------------- Example 1 ------------------------

Set-CsCertificate -Type WebServicesExternal -Thumbprint "B142918E463981A76503828BB1278391B716280987B"

The command shown in Example 1 assigns the certificate with the Thumbprint
B142918E463981A76503828BB1278391B716280987B to the WebServicesExternal role on the local computer.
-------------------------- Example 2 ------------------------

Set-CsCertificate -Type Default, WebServicesInternal, WebServicesExternal -Thumbprint


"B142918E463981A76503828BB1278391B716280987B"
Example 2 assigns the assigns the certificate with the Thumbprint
B142918E463981A76503828BB1278391B716280987B to three different roles on the local computer: Default,
WebServicesInternal and WebServicesExternal.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EffectiveDate
Date and time when the certificate can first be used. For example, to configure a certificate for first use at 8:00 AM
on July 31, 2012 use this syntax on a server running under the US English Region and Language settings:
-EffectiveDate "7/31/2012 8:00 AM"

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
When set to Global, enables the certificate to function at the global scope. Global certificates will automatically be
copied and distributed to the appropriate computers.

Type: XdsIdentity
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
When set to Global, enables the certificate to function at the global scope. Global certificates will automatically be
copied and distributed to the appropriate computers.

Type: XdsIdentity
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetportId
Reserved for future use. This parameter is for certificates dedicated to a specific port, a scenario not yet supported
by Lync Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Password
Password for the certificate.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Path
Full path to the .PFX certificate file.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Reference
Object reference to a certificate configured for use with Skype for Business Server. The following command returns
an object reference (the variable $x) representing a certificate with the thumbprint
B142918E463981A76503828BB1278391B716280987B:
$x = Get-CsCertificate | Where-Object {$_.Thumbprint -eq "B142918E463981A76503828BB1278391B716280987B" .

Type: CertificateReference
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False
-Report
Enables you to record detailed information about the procedures carried out by the Set-CsCertificate cmdlet. The
parameter value should be the full path to the HTML file to be generated; for example:
-Report C:\Logs\Certificates.html . If the specified file already exists it will automatically be overwritten with the
new information.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Roll
Enables you to update the specified certificate at the date and time specified by the EffectiveDate parameter; this
enables you to specify a date and time when the new certificate will become the primary certificate. Note that your
command will fail if you specify the Roll parameter without including the EffectiveDate parameter.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Thumbprint
Unique identifier for the certificate. A certificate thumbprint looks similar to this:
B142918E463981A76503828BB1278391B716280987B.

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Type of certificate being assigned. Certificate types include, but are not limited to, the following:
AccessEdgeExternal
AudioVideoAuthentication
DataEdgeExternal
Default
External
Internal
iPhoneAPNService
iPadAPNService
MPNService
PICWebService (Skype for Business Online only)
ProvisionService (Skype for Business Online only)
WebServicesExternal
WebServicesInternal
WsFedTokenTransfer
For example, this syntax assigns the Default certificate: -Type Default .

You can specify multiple types in a single command by separating the certificate types with commas:
-Type Internal,External,Default

Type: CertType[]
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Type
Type of certificate being assigned. Certificate types include, but are not limited to, the following:
AccessEdgeExternal
AudioVideoAuthentication
DataEdgeExternal
Default
External
Internal
iPhoneAPNService
iPadAPNService
MPNService
PICWebService (Skype for Business Online only)
ProvisionService (Skype for Business Online only)
WebServicesExternal
WebServicesInternal
WsFedTokenTransfer
For example, this syntax assigns the Default certificate: -Type Default .

You can specify multiple types in a single command by separating the certificate types with commas:
-Type Internal,External,Default
Type: CertType[]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Deployment.CertificateReference.

Outputs
The Set-CsCertificate cmdlet does not return any values or objects.

Related Links
Get-CsCertificate
Import-CsCertificate
Remove-CsCertificate
Request-CsCertificate
minutes to read • Edit Online

Set-CsClientPin
In ths Article

Assigns a new personal identification number (PIN ) to the specified user. This cmdlet was introduced in Lync Server
2010.

Syntax
Set-CsClientPin [-Identity] <UserIdParameter> [[-Pin] <String>] [-Force] [-WhatIf] [-Confirm]
[<CommonParameters>]

Description
Skype for Business Server enables users to connect to the system or to join public switched telephone network
(PSTN ) conferences by using a telephone. Typically, logging on to the system or joining a conference requires the
user to enter a user name or password. However, entering a user name and password can be a problem if you are
using a phone that does not have an alphanumeric keypad. Because of that, enables you to supply users with
numeric-only PINs; when prompted, users can then log on to the system or join a conference by entering the PIN
instead of a user name and password.
Users are not assigned a PIN when they are enabled for Skype for Business Server; that means that, by default,
users cannot access the system by using PIN authentication. Users can obtain a PIN from the Dial-In Conferencing
webpage; alternatively, administrators can assign each user a PIN by using the Set-CsClientPin cmdlet. With the
Set-CsClientPin cmdlet you can either assign a user a specific PIN or you can allow Skype for Business Server to
generate a PIN for you. To auto-generate a PIN, simply omit the PIN parameter when calling the Set-CsClientPin
cmdlet. If you do that, a new PIN will be generated and the user's Identity and his or her new PIN will be displayed
on the screen when the command completes.
Note that the PINs you explicitly assign must meet the conditions specified in the PIN authentication policy
governing the user in question; for example, the PIN must have at least as many digits as specified by the
MinPasswordLength property. Also note that PINs can contain only numbers; letters or other non-numeric
characters are not allowed.
When you set a client PIN using the Set-CsClientPin cmdlet, the PIN history count is not enforced. For example,
suppose a user has a PIN number of 12345 and their client PIN policy prevents them from immediately reusing
the same PIN number. If that user tries to renew his or her client PIN using the Dial-In Conferencing Web page,
any attempt to reuse the same PIN number (12345) will be rejected. However, by using the Set-CsClientPin
cmdlet an administrator can issue that user the PIN 12345. That's because the Set-CsClientPin cmdlet is not
bound by the PIN policy history count.
Note that, by default, the firewall exceptions for SQL Server Express are not enabled when you install the Standard
Edition of Skype for Business Server. That means that you will not be able to run the Set-CsClientPin cmdlet from
a remote instance of Windows PowerShell; that's because your command will not be able to traverse the firewall
and access the SQL Server Express database. (However, you can still run the cmdlet locally on the Standard Edition
server itself.) To run the Set-CsClientPin cmdlet remotely against a Standard Edition server you will need to
manually enable the firewall exceptions for SQL Server Express.

Examples
-------------------------- Example 1 ------------------------

Set-CsClientPin -Identity "litwareinc\kenmyer"

In Example 1, the user litwareinc\kenmyer is assigned a new auto-generated PIN. To assign an auto-generated PIN,
leave off the Pin parameter when calling the Set-CsClientPin cmdlet. After the command completes, the new PIN
assigned to Ken Myer will be displayed on the screen and that information can then be relayed to the user.
-------------------------- Example 2 ------------------------

Set-CsClientPin -Identity "litwareinc\kenmyer" -Pin 18723834

The command in Example 2 assigns the PIN 18723834 to the user litwareinc\kenmyer. You can assign a specific
PIN by using the Pin parameter followed by the number to be assigned.
-------------------------- Example 3 ------------------------

Get-CsUser -OU "OU=Finance,DC=litwareinc,DC=com" | Set-CsClientPin

Example 3 shows how you can auto-assign new PINs to all the users in a given Active Directory organizational unit
(OU ). To do this, the Get-CsUser cmdlet is used along with the OU parameter to return a collection of all the users
who have accounts in the Finance OU. That collection is then piped to the Set-CsClientPin cmdlet, which generates
a new PIN for each user in the collection.
-------------------------- Example 4 ------------------------

Get-CsUser | Get-CsClientPinInfo | Where-Object {$_.IsPinSet -eq $False} | Set-CsClientPin

The command shown in Example 4 assigns a new PIN to all the users who do not currently have a PIN assigned to
them. To accomplish this task, the Get-CsUser cmdlet is used to return a collection of all the users who have been
enabled for Skype for Business Server. That collection is then piped to the Get-CsClientPin cmdlet and the
Where-Object cmdlet; these two cmdlets are used to select only those users where the IsPinSet property is equal to
False. The resulting collection, which contains only users who do not have a PIN, is then piped to the
Set-CsClientPin cmdlet, which auto-generates a PIN for each user in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Identity of the user account for which the PIN should be set. User Identities can be specified by using one of four
formats: 1) the user's SIP address; 2) the user's user principal name (UPN ); 3) the user's domain name and logon
name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name
(for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished
name.
In addition, you can use the asterisk () wildcard character when using the Display Name as the user Identity. For
example, the Identity " Smith" returns all the users who have a display name that ends with the string value "
Smith".

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Pin
Optional PIN to be assigned to the user. If you do not include the PIN parameter, then Skype for Business Server
will randomly generate a PIN and assign it to the user in question. Note that the PIN must adhere to the minimum
length and common pattern settings found in the client PIN policy assigned to the user.

Type: String
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The Set-CsClientPin cmdlet
accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts
pipelined input of user objects.

Outputs
The Set-CsClientPin cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.UserPinService.PinInfoDetails object.

Related Links
Get-CsClientPinInfo
Lock-CsClientPin
Unlock-CsClientPin
minutes to read • Edit Online

Set-CsClientPolicy
In ths Article

Modifies the property values of an existing client policy. Among other things, client policies help determine the
features of Skype for Business that are available to users; for example, you might give some users the right to
transfer files while denying this right to other users. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsClientPolicy [-Tenant <Guid>] [-PolicyEntry <PSListModifier>] [-Description <String>]
[-AddressBookAvailability <AddressBookAvailability>] [-AttendantSafeTransfer <Boolean>]
[-AutoDiscoveryRetryInterval <TimeSpan>] [-BlockConversationFromFederatedContacts <Boolean>]
[-CalendarStatePublicationInterval <UInt32>] [-CustomizedHelpUrl <String>]
[-CustomLinkInErrorMessages <String>] [-CustomStateUrl <String>] [-DGRefreshInterval <TimeSpan>]
[-DisableCalendarPresence <Boolean>] [-DisableContactCardOrganizationTab <Boolean>]
[-DisableEmailComparisonCheck <Boolean>] [-DisableEmoticons <Boolean>]
[-DisableFeedsTab <Boolean>] [-DisableFederatedPromptDisplayName <Boolean>]
[-DisableFreeBusyInfo <Boolean>] [-DisableHandsetOnLockedMachine <Boolean>]
[-DisableMeetingSubjectAndLocation <Boolean>] [-DisableHtmlIm <Boolean>]
[-DisableInkIM <Boolean>] [-DisableOneNote12Integration <Boolean>]
[-DisableOnlineContextualSearch <Boolean>] [-DisablePhonePresence <Boolean>]
[-DisablePICPromptDisplayName <Boolean>] [-DisablePoorDeviceWarnings <Boolean>]
[-DisablePoorNetworkWarnings <Boolean>] [-DisablePresenceNote <Boolean>]
[-DisableRTFIM <Boolean>] [-DisableSavingIM <Boolean>] [-DisplayPhoto <DisplayPhoto>]
[-EnableAppearOffline <Boolean>] [-EnableCallLogAutoArchiving <Boolean>]
[-EnableClientAutoPopulateWithTeam <Boolean>] [-EnableClientMusicOnHold <Boolean>]
[-EnableConversationWindowTabs <Boolean>] [-EnableEnterpriseCustomizedHelp <Boolean>]
[-EnableEventLogging <Boolean>] [-EnableExchangeContactSync <Boolean>]
[-EnableExchangeDelegateSync <Boolean>] [-EnableExchangeContactsFolder <Boolean>]
[-EnableFullScreenVideo <Boolean>] [-EnableHighPerformanceConferencingAppSharing <Boolean>]
[-EnableHotdesking <Boolean>] [-EnableIMAutoArchiving <Boolean>]
[-EnableMediaRedirection <Boolean>] [-EnableMeetingEngagement <Boolean>]
[-EnableNotificationForNewSubscribers <Boolean>] [-EnableServerConversationHistory <Boolean>]
[-EnableSkypeUI <Boolean>] [-EnableSQMData <Boolean>] [-EnableTracing <Boolean>]
[-EnableURL <Boolean>] [-EnableUnencryptedFileTransfer <Boolean>]
[-EnableVOIPCallDefault <Boolean>] [-ExcludedContactFolders <String>] [-HotdeskingTimeout <TimeSpan>]
[-IMWarning <String>] [-MAPIPollInterval <TimeSpan>] [-MaximumDGsAllowedInContactList <UInt32>]
[-MaximumNumberOfContacts <UInt16>] [-MaxPhotoSizeKB <UInt32>] [-MusicOnHoldAudioFile <String>]
[-P2PAppSharingEncryption <P2PAppSharingEncryption>] [-EnableHighPerformanceP2PAppSharing <Boolean>]
[-PlayAbbreviatedDialTone <Boolean>] [-RequireContentPin <String>] [-SearchPrefixFlags <UInt16>]
[-ShowRecentContacts <Boolean>] [-ShowManagePrivacyRelationships <Boolean>]
[-ShowSharepointPhotoEditLink <Boolean>] [-SPSearchInternalURL <String>] [-SPSearchExternalURL <String>]
[-SPSearchCenterInternalURL <String>] [-SPSearchCenterExternalURL <String>] [-TabURL <String>]
[-TracingLevel <TracingLevel>] [-TelemetryTier <String>] [-PublicationBatchDelay <UInt32>]
[-EnableViewBasedSubscriptionMode <Boolean>] [-WebServicePollInterval <TimeSpan>]
[-HelpEnvironment <String>] [-RateMyCallDisplayPercentage <UInt16>]
[-RateMyCallAllowCustomUserFeedback <Boolean>] [-IMLatencySpinnerDelay <UInt32>]
[-IMLatencyErrorThreshold <UInt32>] [-SupportModernFilePicker <Boolean>] [-EnableOnlineFeedback <Boolean>]
[-EnableOnlineFeedbackScreenshots <Boolean>] [-ConferenceIMIdleTimeout <TimeSpan>]
[[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]
Set-CsClientPolicy [-Tenant <Guid>] [-PolicyEntry <PSListModifier>] [-Description <String>]
[-AddressBookAvailability <AddressBookAvailability>] [-AttendantSafeTransfer <Boolean>]
[-AutoDiscoveryRetryInterval <TimeSpan>] [-BlockConversationFromFederatedContacts <Boolean>]
[-CalendarStatePublicationInterval <UInt32>] [-CustomizedHelpUrl <String>]
[-CustomLinkInErrorMessages <String>] [-CustomStateUrl <String>] [-DGRefreshInterval <TimeSpan>]
[-DisableCalendarPresence <Boolean>] [-DisableContactCardOrganizationTab <Boolean>]
[-DisableEmailComparisonCheck <Boolean>] [-DisableEmoticons <Boolean>]
[-DisableFeedsTab <Boolean>] [-DisableFederatedPromptDisplayName <Boolean>]
[-DisableFreeBusyInfo <Boolean>] [-DisableHandsetOnLockedMachine <Boolean>]
[-DisableMeetingSubjectAndLocation <Boolean>] [-DisableHtmlIm <Boolean>]
[-DisableInkIM <Boolean>] [-DisableOneNote12Integration <Boolean>]
[-DisableOnlineContextualSearch <Boolean>] [-DisablePhonePresence <Boolean>]
[-DisablePICPromptDisplayName <Boolean>] [-DisablePoorDeviceWarnings <Boolean>]
[-DisablePoorNetworkWarnings <Boolean>] [-DisablePresenceNote <Boolean>]
[-DisableRTFIM <Boolean>] [-DisableSavingIM <Boolean>] [-DisplayPhoto <DisplayPhoto>]
[-EnableAppearOffline <Boolean>] [-EnableCallLogAutoArchiving <Boolean>]
[-EnableClientAutoPopulateWithTeam <Boolean>] [-EnableClientMusicOnHold <Boolean>]
[-EnableConversationWindowTabs <Boolean>] [-EnableEnterpriseCustomizedHelp <Boolean>]
[-EnableEventLogging <Boolean>] [-EnableExchangeContactSync <Boolean>]
[-EnableExchangeDelegateSync <Boolean>] [-EnableExchangeContactsFolder <Boolean>]
[-EnableFullScreenVideo <Boolean>] [-EnableHighPerformanceConferencingAppSharing <Boolean>]
[-EnableHotdesking <Boolean>] [-EnableIMAutoArchiving <Boolean>]
[-EnableMediaRedirection <Boolean>] [-EnableMeetingEngagement <Boolean>]
[-EnableNotificationForNewSubscribers <Boolean>] [-EnableServerConversationHistory <Boolean>]
[-EnableSkypeUI <Boolean>] [-EnableSQMData <Boolean>] [-EnableTracing <Boolean>]
[-EnableURL <Boolean>] [-EnableUnencryptedFileTransfer <Boolean>]
[-EnableVOIPCallDefault <Boolean>] [-ExcludedContactFolders <String>] [-HotdeskingTimeout <TimeSpan>]
[-IMWarning <String>] [-MAPIPollInterval <TimeSpan>] [-MaximumDGsAllowedInContactList <UInt32>]
[-MaximumNumberOfContacts <UInt16>] [-MaxPhotoSizeKB <UInt32>] [-MusicOnHoldAudioFile <String>]
[-P2PAppSharingEncryption <P2PAppSharingEncryption>] [-EnableHighPerformanceP2PAppSharing <Boolean>]
[-PlayAbbreviatedDialTone <Boolean>] [-RequireContentPin <String>] [-SearchPrefixFlags <UInt16>]
[-ShowRecentContacts <Boolean>] [-ShowManagePrivacyRelationships <Boolean>]
[-ShowSharepointPhotoEditLink <Boolean>] [-SPSearchInternalURL <String>] [-SPSearchExternalURL <String>]
[-SPSearchCenterInternalURL <String>] [-SPSearchCenterExternalURL <String>] [-TabURL <String>]
[-TracingLevel <TracingLevel>] [-TelemetryTier <String>] [-PublicationBatchDelay <UInt32>]
[-EnableViewBasedSubscriptionMode <Boolean>] [-WebServicePollInterval <TimeSpan>]
[-HelpEnvironment <String>] [-RateMyCallDisplayPercentage <UInt16>]
[-RateMyCallAllowCustomUserFeedback <Boolean>] [-IMLatencySpinnerDelay <UInt32>]
[-IMLatencyErrorThreshold <UInt32>] [-SupportModernFilePicker <Boolean>] [-EnableOnlineFeedback <Boolean>]
[-EnableOnlineFeedbackScreenshots <Boolean>] [-ConferenceIMIdleTimeout <TimeSpan>]
[-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Client policies are applied each time a user accesses the system, regardless of where the user logs on from and
regardless of the type of device the user logs on with. In addition, client policies, like other Skype for Business
Server policies, can readily be targeted toward selected groups of users. You can even create a custom policy that
gets assigned to a single user.
Client policies can be configured at the global, site and per-user scopes. The Set-CsClientPolicy cmdlet enables
you to modify any (or all) of the client policies that have been configured for use in your organization.
Keep in mind that client policies differ from many other policies in that most of the policy settings do not have
default values.
The following parameters are not applicable to Skype for Business Online: AddressBookAvailability, AsJob,
AttendantSafeTransfer, AutoDiscoveryRetryInterval, BlockConversationFromFederatedContacts,
CalendarStatePublicationInterval, ConferenceIMIdleTimeout, CustomizedHelpUrl, CustomLinkInErrorMessages,
CustomStateUrl, Description, DGRefreshInterval, DisableContactCardOrganizationTab,
DisableFederatedPromptDisplayName, DisableFeedsTab, DisableMeetingSubjectAndLocation,
DisableOneNote12Integration, DisableOnlineContextualSearch, DisablePhonePresence,
DisablePICPromptDisplayName, EnableEventLogging, EnableExchangeContactsFolder,
EnableExchangeDelegateSync, EnableFullScreenVideo, EnableHighPerformanceConferencingAppSharing,
EnableHighPerformanceP2PAppSharing, EnableMediaRedirection, EnableMeetingEngagement,
EnableNotificationForNewSubscribers, EnableOnlineFeedback, EnableOnlineFeedbackScreenshots,
EnableSQMData, EnableTracing, EnableViewBasedSubscriptionMode, EnableVOIPCallDefault, Force,
HelpEnvironment, Identity, IMLatencyErrorThreshold, IMLatencySpinnerDelay, Instance, MAPIPollInterval,
MaximumDGsAllowedInContactList, MaximumNumberOfContacts, MaxPhotoSizeKB, P2PAppSharingEncryption,
PipelineVariable, PolicyEntry, PublicationBatchDelay, RateMyCallAllowCustomUserFeedback, RequireContentPin,
SearchPrefixFlags, SPSearchCenterExternalURL, SPSearchCenterInternalURL, SPSearchExternalURL,
SPSearchInternalURL, SupportModernFilePicker, TabURL, TelemetryTier, Tenant, and WebServicePollInterval

Examples
-------------------------- Example 1 --------------------------

Set-CsClientPolicy -Identity RedmondClientPolicy -WebServicePollInterval "00:15:00"

The command shown in Example 1 modifies the client policy RedmondClientPolicy. In this example, the
WebServicePollInterval property is set to 15 minutes (00 hours: 15 minutes: 00 seconds).
-------------------------- Example 2 --------------------------

Set-CsClientPolicy -Identity RedmondClientPolicy -DisableEmoticons $True -DisableHtmlIm $True -DisableRTFIm


$True

In Example 2, three different property values are modified for the client policy RedmondClientPolicy: the properties
DisableEmoticons, DisableHtmlIm, and DisableRTFIm are all set to True.
-------------------------- Example 3 --------------------------

Get-CsClientPolicy -Filter "*site:*" | Set-CsClientPolicy -DisableEmoticons $True -DisableHtmlIm $True -


DisableRTFIm $True

Example 3 also modifies the properties DisableEmoticons, DisableHtmlIm and DisableRTFIm. In this example,
however, the modifications are made to all the client policies that have been configured at the site scope. To do this,
the command first uses the Get-CsClientPolicy cmdlet and the Filter property to return all the client policies where
the Identity begins with the characters "site:"; by definition, those are policies configured at the site scope. This
filtered collection is then piped to the Set-CsClientPolicy cmdlet, which takes each policy in the collection and
modifies the values of DisableEmoticons, DisableHtmlIm and DisableRTFIm.
-------------------------- Example 4 --------------------------

Get-CsClientPolicy | Where-Object {$_.MaxPhotoSizeKb -gt 10} | Set-CsClientPolicy -MaxPhotoSizeKb 10

In Example 4, all the client policies that allow for photos larger than 10 kilobytes are modified; after the
modifications these policies will have a maximum photo size of 10 KB. To carry out this task, the
Get-CsClientPolicy cmdlet is first called without any parameters in order to return a collection of all the client
policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which picks
out only those policies where the MaxPhotoSizeKb property is greater than (-gt) 10 KB. The filtered collection is
then piped to the Set-CsClientPolicy cmdlet, which sets the value of the MaxPhotoSizeKb property for each policy
in the collection to 10 KB.
Parameters
-AddressBookAvailability
Indicates how users are allowed to access information in the Address Book server (that is, by using the Address
Book Web Query service and/or by downloading a copy of the Address Book to their local computer).
AddressBookAvailability must be set to one of the following values:
WebSearchAndFileDownload
WebSearchOnly
FileDownloadOnly

Type: AddressBookAvailability
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AttendantSafeTransfer
When set to True, Skype for Business Attendant operates in "safe transfer" mode; this means that transferred calls
that do not reach the intended recipient will reappear in the incoming area along with a "Failed Transfer" notice.
When set to False, transferred calls that fail to reach the intended recipient will not reappear in the incoming area.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AutoDiscoveryRetryInterval
After a failed connection attempt, specifies the amount of time Skype for Business waits before again trying to
connect to Skype for Business Server. The AutoDiscoveryRetryInterval can be set to value between 1 second and
60 minutes (1 hour), inclusive.
When specifying the AutoDiscoveryRetryInterval you must use the format hours:minutes:seconds. For example, to
set the interval to 25 minutes use this syntax:
-AutoDiscoveryRetryInterval 00:25:00

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BlockConversationFromFederatedContacts
When set to True, contacts from outside your organization will not be allowed to initiate instant message
conversations with any user that this policy applies to. However, outside users will be able to participate in
conversations as long the internal user initiates that conversation. When set to False, outside contacts are allowed
to send unsolicited instant messages to users in your organization.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CalendarStatePublicationInterval
Specifies the amount of time, in seconds, that Skype for Business waits before retrieving calendar information from
Outlook and adding this data to your presence information.
For example, to set the CalendarStatePublicationInterval to 10 minutes (600 seconds) use this syntax:
-CalendarStatePublicationInterval 600

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConferenceIMIdleTimeout
Indicates the number of minutes that a user can remain in an instant messaging session without either sending or
receiving an instant message.
The ConferenceIMIdleTimeout must be less than or equal to 1 hour and must be specified using the format
hours:minutes:seconds. For example, this syntax sets the timeout value to 45 minutes:
-ConferenceIMIdleTimeout 00:45:00

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomizedHelpUrl
URL for custom Skype for Business help set up by an organization. This parameter has been deprecated for use
with Skype for Business Server.
Customized help will not be available unless you also set EnableEnterpriseCustomizedHelp to True.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomLinkInErrorMessages
URL for the website that can be added to error messages that appear in Skype for Business. If a URL is specified,
that URL will appear at the bottom of any error message that occurs in Skype for Business. Users can then click
that link and be taken to a custom website that contains additional information, troubleshooting tips, etc.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CustomStateUrl
Specifies the location of the XML file used to add custom presence states to Skype for Business. (Skype for
Business allows up to four custom presence states in addition to the built-in states such as Available, Busy and Do
Not Disturb.) The location of the XML file should be specified using the HTTPS protocol.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Allows administrators to provide additional information about a policy. For example, the Description might indicate
the users that the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DGRefreshInterval
Indicates the amount of time Skype for Business waits before automatically refreshing the membership list of any
distribution group that has been "expanded" in the Contacts list. (Expanding a distribution group means displaying
all the members in that group.) DGRefreshInterval can be set to any integer value between 30 seconds and 28,800
seconds (8 hours), inclusive. The default value is 28,800 seconds.
Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableCalendarPresence
When set to True, calendar data taken from Outlook will not be included in your presence information. When set to
False, calendar data will be included in your presence information. For example, free/busy information will be
reported in your contact card; likewise, your status will automatically be set to Busy any time Outlook shows that
you are in a meeting.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableContactCardOrganizationTab
When set to True, the contact card organization tab is not visible within the Skype for Business user interface. When
set to False, the contact card organization tab is available in Skype for Business.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableEmailComparisonCheck
When set to True, Skype for Business will not attempt to verify that any currently running instance of Outlook
belongs to the same user running Skype for Business; for example, the software will not verify that both Outlook
and Skype for Business are running under Ken Myer's user account. Instead, it will be assumed that the two
applications are running under the same account and, in turn, will include contact and calendar data in Outlook with
Skype for Business.
When set to False, Skype for Business will use SMTP addresses to verify that Outlook and Skype for Business are
running under the same account. If the SMTP addresses do not match then contact and calendar data in Outlook
will not be incorporated into Skype for Business.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableEmoticons
When set to True, users will not be able to send or receive emoticons in their instant messages; instead they will be
see the text equivalent of those emoticons. For example, instead of seeing a graphical "smiley face" users will see
the text equivalent:
:)
When set to False users will be able to include emoticons in their instant messages and to view emoticons in instant
messages they receive.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableFederatedPromptDisplayName
When set to True, any notification dialog generated when you are added to a federated user's Contacts list will use
the federated user's SIP address (for example, sip:kenmyer@fabrikam.com). When set to False, the notification
dialog will use the federated user's display name (for example, Ken Myer) instead.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableFeedsTab
When set to True, the activity feeds tab will not be displayed in Skype for Business. When set to False, the feeds tab
will be available within Skype for Business.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableFreeBusyInfo
When set to True, free/busy information retrieved from Microsoft Outlook will not be displayed in your contact
card. When set to False, free/busy information is displayed in your contact card. For example, your contact card
might include a note similar to this:
Calendar: Free until 2:00 PM

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableHandsetOnLockedMachine
When set to True, users will not be able to use their Polycom handset if the computer that the handset is connected
to is locked. To use the handset, users will first have to unlock the computer.
When set to False, users will be allowed to use their handset even if the computer the handset is connected to is
locked.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableHtmlIm
When set to True, any HTML text copied from a webpage will be converted to plain text when pasted into an instant
message. When set to False, HTML formatting (such as font size and color, drop-down lists and buttons, etc.) will be
retained when pasted into an instant message.
Note that, even when set to False, scripts and other potentially malicious items (such as tags that play a sound) will
not be copied into an instant message. You can copy and paste buttons and other controls into a message, but any
scripts attached to those controls will automatically be removed.
This setting is equivalent to the Office Communications Server 2007 R2 Group Policy setting "Prevent HTML text
in instant messages."

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableICE
When set to True, Lync 2010 will not use the Interactive Connectivity Establishment (ICE ) protocol to traverse
firewalls and network address translation (NAT) devices; this effectively prevents users from making Lync 2010
calls across the Internet. When set to False, Lync 2010 will use the ICE protocol to enable Lync 2010 calls to
traverse firewalls and (NAT) devices.
This setting is equivalent to the Office Communications Server 2007 R2 Group Policy setting "Disable Interactive
Connectivity Establishment (ICE )."

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableInkIM
When set to True, users will not be allowed to receive instant messages containing Tablet PC ink. (Ink is a
technology that enables you to insert handwritten notes into a document.) When set to False, users will be allowed
to receive messages that contain Table PC ink.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableMeetingSubjectAndLocation
When set to False, detailed information about a meeting -- namely, the meeting subject and the location where the
meeting is being held -- will be displayed as a tooltip when you view free/busy information in a contact card. When
set to True, this detailed information will not be displayed. To completely prevent the display of meeting-related
information you should also set DisableCalendarPresence to True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableOneNote12Integration
When set to True, the ability to start OneNote from within Skype for Business (and the ability to automatically link
instant message sessions and OneNote notes) is disabled. When set to False, the option Take Notes Using One
Note is enabled in Skype for Business. In addition, if you locate an instant message transcript in Microsoft
Outlook's Conversation History you can retrieve any OneNote notes associated with that conversation just by
clicking the Edit conversation notes button.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableOnlineContextualSearch
When set to True, disables the Find Previous Conversations menu option that appears when you right-click a user
in your Contacts list. (This option enables you to search the Outlook Conversation History folder for previous
instant messaging sessions involving the user in question.) When set to False, the Find Previous Conversations
option will be available when you right-click a user in your Contacts list.
Note that this setting only applies to users who are not running Outlook in cached mode. That's because any
searches conducted by those users must take place on the Exchange Servers and administrators might want to limit
the network traffic causes by these searches. If you are running Outlook in cached mode, searches take place on a
user's locally-cached copy of his or her Inbox. Cached searches are not affected by this setting.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePhonePresence
When set to True, Skype for Business does not take phone calls into consideration when determining your current
status. When set to False, phone calls are taken into consideration when determining your status. For example, any
time you are on the phone your status will automatically be set to Busy.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePICPromptDisplayName
When set to True, any notification dialog box generated when you are added to the Contacts list of a user with an
account on a public instant messaging service such as MSN will display that person's SIP address (for example,
sip:kenmyer@litwareinc.com). When set to False, the notification dialog box will use the person's display name (for
example, Ken Myer) instead.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePoorDeviceWarnings
When set to True, Skype for Business will not issue warnings (upon startup, in the Tuning Wizard, in the
Conversation window, etc.) if an audio or video device is not working correctly. When set to False, these warnings
will be issued.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePoorNetworkWarnings
When set to True, Skype for Business will not display warnings about poor network quality.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePresenceNote
When set to True, any Out of Office message you configure in Outlook will not be displayed as part of your
presence information. When set to False, your Out of Office message will be displayed any time a user holds the
mouse over your name in their Contacts list.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableRTFIM
When both this setting and the DisableHtmlIm settings are set to True, prevents rich text formatting (for example,
different fonts, font sizes and font colors) from being used in instant messages; instead, all messages sent and
received will be converted to plain text format. When set to False, rich text formatting will be allowed in instant
messages.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableSavingIM
When set to True, the options for saving an instant message session are removed from the menu bar in the Skype
for Business Conversation window. When set to False, these options are available in the Conversation window.
Note that setting this value to True removes the menu options that make it easy for users to save instant message
transcripts. However, it does not prevent users from copying all the text in a transcript to the clipboard, pasting that
text into another application and then saving the transcript that way.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayPhoto
Determines whether or not photos (of both the user and his or her contacts) will be displayed in Skype for
Business. Valid settings are:
NoPhoto - Photos are not displayed in Skype for Business.
PhotosFromADOnly - Only photos that have been published in Active Directory Domain Services can be displayed.
AllPhotos - Either Active Directory photos or custom photos can be displayed.
The default value is AllPhotos.

Type: DisplayPhoto
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-EnableAppearOffline
When set to True an additional presence state -- Appear Offline -- is available in Skype for Business. This state
makes it appear as though the user is offline; however, he or she will actually be online and available to answer
phone calls, respond to instant messages, etc. When set to False, the Appear Offline presence state will not be
available in Skype for Business.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCallLogAutoArchiving
When set to True, information about your incoming and outgoing phone calls is automatically saved to the
Conversation History folder in Outlook. (The actual call itself is not recorded. What is recorded is information such
as who took part in the call; the length of the call and whether this was an incoming or an outgoing call.) When set
to False, this information is not saved to Outlook.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableClientAutoPopulateWithTeam
When set to true, allows a user's Skype client to be autopopulated with members of his or her immediate team.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableClientMusicOnHold
When set to True, music will be played any time a caller is placed on hold. When set to False, music will not be
played any time a caller is placed on hold. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableConversationWindowTabs
When set to True, supplemental information related to an instant messaging session will be displayed in a separate
browser window.
When set to False, supplemental information will not be displayed in a separate browser window.
This parameter has been deprecated for use with Skype for Business Server.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableEnterpriseCustomizedHelp
When set to True, users who click the Help menu in Skype for Business will be given custom help set up by the
organization. When set to False, users who click the Help menu will be given the default product help.
This parameter has been deprecated for use with Skype for Business Server.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableEventLogging
When set to True, detailed information about Skype for Business will be recorded in the Application event log.
When set to False, only major events (such as the failure to connect to Skype for Business Server) are recorded in
the event log.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExchangeContactsFolder
When set to false, this allows admins to hide Skype for Business contacts from showing up in users' Outlook and
Outlook on the Web clients.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExchangeContactSync
When set to True (the default value) Skype for Business creates a corresponding personal contact in Outlook for
each person on a user's Skype for Business Contacts list.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableExchangeDelegateSync
When set to True, a user that has been configured in Outlook will be allowed to schedule online Lync Calendar
meetings for that user (this happens via Lync UCMAPI delegation, without the need of the Enterprise Voice
feature).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFullScreenVideo
When set to True, this parameter does two things: 1) enables full-screen video (with the correct aspect ratio) for
Skype for Business calls and 2) disables video preview for Skype for Business calls. When set to False then full-
screen video is not available in Skype for Business, but video preview is available.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableHighPerformanceConferencingAppSharing
When set to True, enables better performance in applications (such as CAD/CAM applications) that have a high
screen refresh rate. However, this improved performance will reduce the system resources and network bandwidth
available to other applications.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableHighPerformanceP2PAppSharing
When set to True, allows a peer-to-peer application sharing session to exceed the maximum frame rate of 2.5
frames per second. The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableHotdesking
When set to True, enables users to log on to a phone running Skype for Business Phone Edition in a shared
workspace by using their Skype for Business Server account. (Among other things, this provides the user access to
his or her contacts.) When set to False, users are not allowed to log on to a phone in a shared workspace by using
their own credentials.
Note that this setting applies only to common area (shared workspace) accounts and not to user accounts. When
set to True and applied to a common area account for a phone in a shared workspace, any user will be able to log
on to that phone by using his or her credentials. When set to False, no one will be allowed to log on to that phone.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableIMAutoArchiving
When set to True, a transcript of every instant message session that a user takes part in will be saved to the
Conversation History folder in Outlook. When set to False, these transcripts will not be saved automatically.
(However, users will have the option to manually save instant message transcripts.)

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMediaRedirection
When set to True ($True) allows audio and video streams to be separated from other network traffic; in turn, this
allows client devices to do encoding and decoding of audio and video locally. Media redirection typically results in
lower bandwidth usage, higher server scalability and a more-optimal user experience compared to similar
techniques such as device remoting or codec compression.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMeetingEngagement
{{Fill EnableMeetingEngagement Description}}
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableNotificationForNewSubscribers
When set to True you will receive notification any time you are added to someone else's Contacts list. In addition,
the notification dialog box will provide options for you to add that person to your Contacts list, or to block them
from viewing your presence information.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOnlineFeedback
When set to true, allows users to provide feedback through the "help->report a problem" menu options in the
client.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOnlineFeedbackScreenshots
When set to true, allows users to provide screenshots of their clients when reporting problems.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableServerConversationHistory
When set to True ($True), allows conversation histories, missed call notifications, and missed IM notifications to be
stored on the server instead of in client mailboxes. This makes it easier for users to retrieve that information from a
mobile device.
The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-EnableSkypeUI
When set to True ($True), this parameter allows administrators to enable the Skype for Business user interface
instead of the Lync interface for the Skype for Business client.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableSQMData
When EnableSQMData is set to True, the user will not automatically be enrolled in the Customer Experience
Improvement Program. However, Skype for Business will provide the user with the option to join the program.
When set to False, the user will not be enrolled in the Customer Experience Improvement Program. In addition,
Skype for Business will not give users the option of joining the program.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableTracing
When set to True, software tracing will be enabled in Skype for Business; when set to False software tracing will be
disabled. Software tracing involves keeping an extremely detailed record of everything that a program does
(including tracking API calls). As such tracing is mostly useful to developers and to application support personnel.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableUnencryptedFileTransfer
When set to True, users will be allowed to exchange files with external users whose instant messaging software
does not support encrypted file transfers. When set to False, users will only be able to exchange files with external
users who have software that supports encrypted file transfers.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableURL
When set to True, hyperlinks embedded in an instant message will be "clickable;" that is, users can click that link and
their web browser will open to the specified location. When set to False, hyperlinks appear in instant messages as
plain text. To navigate to the location, users will need to copy the link text and paste it into their web browser.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableViewBasedSubscriptionMode
{{Fill EnableViewBasedSubscriptionMode Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableVOIPCallDefault
When set to True, a Skype for Business call will be placed any time a user employs the click-to-call feature.
This policy setting only affects the initial state of the click-to-call feature. If the user modifies the value of the click-
to-call setting then the user-selected value will override this policy setting. After a user has modified the click-to-call
setting that setting will remain in use and will not be affected by the EnableVOIPCallDefault policy.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExcludedContactFolders
Indicates which Outlook contact folders (if any) should not be searched any time Skype for Business searches for
new contacts. Multiple folders can be specified by separating the folder names using semicolons; for example:
-ExcludedContactFolders "SenderPhotoContacts;OtherContacts" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might arise when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpEnvironment
When set to "Office 365", the Office 365 client help documentation for Skype for Business will be shown to users
rather than the on-premises help shown by default. You can either set HelpEnvironment to "Office 365" or to a null
value ($Null). If set to a null value (the default value) then the on-premises help will be shown to users.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HotdeskingTimeout
Timeout interval for a user logged on to a "hot-desk" phone. (A hot-desk phone is a phone running Skype for
Business Phone Edition that is located in a shared workspace and that users can log on to using their Skype for
Business Server account.) The hot-desk timeout specifies the number of minutes that can elapse before a user is
automatically logged off of a hot-desk phone. When specifying a hot desking timeout you must use the format
hours:minutes:seconds. For example, this syntax sets the hot desking timeout interval to 45 minutes:
-HotdeskingTimeout 00:45:00

Note that this policy setting applies only to common area phones and not to users. The default value is 5 minutes
(00:05:00), and the minimum value is 30 seconds (00:00:30).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier assigned to the new policy. To reference the global policy, use this syntax: -Identity global . To
reference a site policy, use the prefix "site:" and the name of the site as your Identity; for example:
-Identity site:Redmond . To reference a per -user policy, use syntax similar to this: -Identity SalesClientPolicy .

Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IMLatencyErrorThreshold
If IM latency is greater than the threshold value (in milliseconds), the client will submit a CER.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IMLatencySpinnerDelay
Amount of time, in milliseconds, to wait before showing the spinner in the client when IM message delivery is
delayed.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-IMWarning
When configured, the specified message appears in the Conversation window each time a user takes part in an
instant messaging session. For example, if IMWarning is set to "All information is the property of Litwareinc" then
that message will appear in the Conversation window each time a user takes part in an instant messaging session.
Your warning message should be limited to 256 characters, and can only contain plain text. You cannot use any
formatting (such as boldface or italics) and you cannot clickable URLs within the text.
If set to a null value ($Null) then no message appears in the Conversation window.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MAPIPollInterval

IMPORTANT
This parameter has been deprecated for use with Skype for Business Server.

For users of Microsoft Exchange Server 2003, MAPIPollInterval specifies how often Skype for Business retrieves
calendar data from the Exchange public folders. MAPIPollInterval can be set to any value between 1 second and 1
hour; inclusive. To configure the MAPI poll interval, use the format hours:minutes:seconds. For example, this
command sets the MAPI poll interval to 45 minutes:
-MapiPollInterval 00:45:00

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaximumDGsAllowedInContactList
Indicates the maximum number of distribution groups that a user can configure as a contact.
MaximumDGsAllowedInContactList can be set to any integer value between 0 and 64, inclusive. The default value
is 10.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaximumNumberOfContacts
Indicates the maximum number of contacts a user is allowed to have. The maximum contacts can be set to any
integer value between 0 and 1000, inclusive. When set to 0, that prevents the user from having any contacts.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxPhotoSizeKB
Indicates the maximum size (in kilobytes) for photos displayed in Skype for Business.
The default value is 30 kilobytes.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MusicOnHoldAudioFile
Path to the audio file to be played when a caller is placed on hold. If a value is configured for this property then
music on hold will be enabled and users will not be allowed to disable the feature. If no value is configured for this
property then users can specify their own music on hold file, assuming that EnableClientMusicOnHold is set to
True.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-P2PAppSharingEncryption
Indicates whether or not desktop and application sharing data exchanged during a peer-to-peer conversation is
encrypted. Allowed values are:
Supported. Desktop and application sharing data will be encrypted, if possible.
Enforced. Desktop and application sharing data must be encrypted. If the data cannot be encrypted then desktop
and application sharing will not be enabled for the conversation.
NotSupported. Desktop and application sharing data will not be encrypted.

Type: P2PAppSharingEncryption
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PlayAbbreviatedDialTone
When set to True, a 3-second dial tone will be played any time a Skype for Business-compatible handset is taken off
the hook. (A Skype for Business-compatible handset looks like a standard telephone, but plugs into a USB port on
your computer and is used to make Skype for Business calls rather than "regular" phone calls.) When set to False, a
30-second dial tone is played any time a Skype for Business-compatible handset is taken off the hook.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PolicyEntry
Provides a way to add settings not covered by the default parameters. For example, when testing pre-release
versions Microsoft Lync Server 2010 it was possible to add a Send Feedback option to Microsoft Lync 2010. That
was done by using code similar to this:
$x = New-CsClientPolicyEntry -Name "OnlineFeedbackURL" -Value "http://www.litwareinc.com/feedback"

Set-CsClientPolicy -Identity global -PolicyEntry @{Add=$x}

For more details and examples, see the New-CsClientPolicyEntry cmdlet help topic.
Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PublicationBatchDelay
{{Fill PublicationBatchDelay Description}}

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RateMyCallAllowCustomUserFeedback
When set to True ($True), enables a text box for users to type feedback when prompted.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RateMyCallDisplayPercentage
The RateMyCallDisplayPercentage setting adjusts how often users are prompted for feedback, ranging from 0 to
100. The default value is 10, meaning that users will get prompted for feedback 10% of the time after they finish a
call. Setting this to 0 means users will never get prompted. When set to 100, users will get prompted after every
call.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RequireContentPin
{{Fill RequireContentPin Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SearchPrefixFlags
Represents the Address Book attributes that should be used any time a user searches for a new contact. The search
prefix flags are constructed as a binary number such as 11101111, in which a 1 indicates that the attribute should
be searched and a 0 indicates that the attribute should not be searched. The attributes in the binary value are (from
right to left):
Primary email address
Email alias
All email addresses
Company
Display name
First name
Last name
The binary value 1110111 means that all attributes should be searched except attribute 4: Company. To search only
display name, first name, and last name you would construct this value:
1110000
After the binary value has been constructed it must then be converted to a decimal value before being assigned to
SearchPrefixFlags. To convert a binary number to a decimal number you can use the following Windows
PowerShell command:
\[Convert\]::ToInt32("1110111", 2)

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowManagePrivacyRelationships
When set to True, shows the Relationships option in the Lync Contacts list window. When set to False, hides the
Relationships option.
Note that this setting applies only to Lync 2010. Skype for Business will not show these relationships even if
ShowManagePrivacyRelationships has been set to True.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowRecentContacts
This parameter has no effect on the client.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ShowSharepointPhotoEditLink
If set to True, Skype for Business will include a link that enables users to edit the personal photo stored on
SharePoint. The default value is False, which means that Skype for Business will not include a link to SharePoint.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SPSearchCenterExternalURL
External URL for the SharePoint site used for keyword searches (also known as expert searches). This URL will
appear at the bottom of any keyword search results that appear in Skype for Business. If the user clicks this URL,
his or her web browser will open up to the SharePoint site, giving the user the opportunity to conduct searches
using SharePoint's search capabilities. (SharePoint offers more search options than Skype for Business does.)
SPSearchCenterExternalURL represents the URL for external users; that is, for users logging on from outside the
organization's firewall. The parameter SPSearchCenterInternalURL is for users who log on from inside the firewall.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SPSearchCenterInternalURL
Internal URL for the SharePoint site used for keyword searches (also known as expert searches). This URL will
appear at the bottom of any keyword search results that appear in Skype for Business. If the user clicks this URL,
his or her web browser will open up to the SharePoint site, giving the user the opportunity to conduct searches
using SharePoint's search capabilities. (SharePoint offers more search options than Skype for Business does.)
SPSearchCenterInternalURL represents the URL for internal users; that is, for users logging on from inside the
organization's firewall. The parameter SPSearchCenterExternalURL is for users who log on from outside the
firewall.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SPSearchExternalURL
External URL for the SharePoint site used for keyword searches (also known as expert searches). Skype for
Business will use the SharePoint site located at this URL any time an external user (that is, a user who has accessed
the system from outside the organization's firewall) conducts a keyword search.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SPSearchInternalURL
Internal URL for the SharePoint site used for keyword searches (also known as expert searches). Skype for
Business will use the SharePoint site located at this URL any time an internal user (that is, a user who has logged
on from inside the organization's firewall) conducts a keyword search.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SupportModernFilePicker
{{Fill SupportModernFilePicker Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TabURL
Specifies the location of the XML file used to create custom tabs located at the bottom of the Skype for Business
Contacts list window. This parameter has been deprecated for use with Skype for Business Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TelemetryTier
{{Fill TelemetryTier Description}}

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the client policy is
being modified. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TracingLevel
Enables Administrators to manage event tracing and logging in Skype for Business. Allowed values are:
Off - Tracing is disabled and the user cannot change this setting.
Light - Minimal tracing is performed, and the user cannot change this setting.
Full - Verbose tracing is performed, and the user cannot change this setting.
By default TracingLevel is set to Light.

Type: TracingLevel
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WebServicePollInterval
For users of Microsoft Exchange Server 2007 and later versions of the product, WebServicePollInterval specifies
how often Skype for Business retrieves calendar data from Microsoft Exchange Server Web Services.
WebServicePollInterval can be set to any value between 1 second and 1 hour; inclusive. To configure the Web
Service poll interval, use the format hours:minutes:seconds. For example, this command sets the Web Service poll
interval to 45 minutes:
-WebServicePollInterval 00:45:00

Note that this setting does not apply to users whose email account is on Exchange 2003. For those users, calendar
retrieval is managed using MAPIPollInterval.

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy object. The Set-CsClientPolicy cmdlet accepts
pipelined instances of the client policy object.

Outputs
The Set-CsClientPolicy cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy object.

Related Links
Get-CsClientPolicy
Grant-CsClientPolicy
New -CsClientPolicy
Remove-CsClientPolicy
minutes to read • Edit Online

Set-CsClientVersionConfiguration
In ths Article

Modifies the specified collection of client version configuration settings. Client version configuration settings
determine whether or not Skype for Business Server checks the version number of each client application that logs
on to the system. If client version filtering is enabled, then the ability of that client application to access the system
will be based on settings configured in the appropriate client version policy. This cmdlet was introduced in Lync
Server 2010.

Syntax
Set-CsClientVersionConfiguration [[-Identity] <XdsIdentity>] [-DefaultAction <DefaultAction>]
[-Enabled <Boolean>] [-Force] [-WhatIf] [-Confirm] [-DefaultURL <String>] [<CommonParameters>]

Set-CsClientVersionConfiguration [-Instance <PSObject>] [-DefaultAction <DefaultAction>] [-Enabled <Boolean>]


[-Force] [-WhatIf] [-Confirm] [-DefaultURL <String>] [<CommonParameters>]

Description
Skype for Business Server gives administrators considerable leeway when it comes to specifying the client software
(and, equally important, the version number of that software) that users can use to log on to the system. For
example, there is no technical reason that requires users to log on to Skype for Business Server by using Skype for
Business; there are no technical limitations that would prevent users from logging on by using Microsoft Office
Communicator 2007 R2.
On the other hand, there might be some non-technical reasons why you would prefer that your users do not log on
by using Office Communicator 2007 R2. For example, Office Communicator 2007 R2 does not support all of the
features and capabilities found in Skype for Business; as a result, users who log on with Office Communicator 2007
R2 will have a different experience than users who log on by using Skype for Business. This can create difficulties
for your users; it can also create difficulties for help desk personnel, who must provide support for a number of
different client applications.
If this could be a problem for your organization you can employ client version filtering in order to specify which
client applications can be used to log on to Skype for Business Server. When you install Skype for Business Server,
a global set of client version configuration settings is installed and enabled. These settings are used to determine
whether or not client version filtering is enabled. In addition to the global settings, client version configuration
settings can also be applied at the site scope; in those instances, the site settings will have precedence over the
global settings.
The Set-CsClientVersionConfiguration cmdlet enables you to modify an existing collection of client version
configuration settings.
Note that client version configuration is not a security feature. The technology relies on self-reporting from client
applications and does not attempt to verify that an application is really the application and the version number of
that application that it claims to be.
Examples
-------------------------- Example 1 --------------------------

Set-CsClientVersionConfiguration -Identity site:Redmond -Enabled $False

In Example 1, the Set-CsClientVersionConfiguration cmdlet is used to modify the settings collection with the
Identity "site:Redmond". In this case, the Enabled parameter is set to False in order to disable the client version
configuration settings.
-------------------------- Example 2 --------------------------

Get-CsClientVersionConfiguration | Set-CsClientVersionConfiguration -DefaultURL


"https://litwareinc.com/csclients"

In Example 2, the DefaultUrl property is modified for all the client version configuration settings currently in use in
the organization. To do this, the command first calls the Get-CsClientVersionConfiguration cmdlet without any
additional parameters in order to return all of the client version configuration settings. That information is then
piped to the Set-CsClientVersionConfiguration cmdlet, which sets the value of the DefaultUrl for each configuration
collection to https://litwareinc.com/csclients.
-------------------------- Example 3 --------------------------

Get-CsClientVersionConfiguration | Where-Object {$_.DefaultAction -eq "Block"} | Set-


CsClientVersionConfiguration -DefaultAction "BlockWithUrl" -DefaultURL "https://litwareinc.com/csclients"

In Example 3, modifications are made to all the client version configuration settings where the DefaultAction is
currently set to Block. To carry out this task, the command first uses the Get-CsClientVersionConfiguration cmdlet
to return all of the client version configuration settings currently in use. That information is then piped to the
Where-Object cmdlet, which picks out only those items where the DefaultAction property is equal to "Block". In
turn, that filtered collection is then piped to the Set-CsClientVersionConfiguration cmdlet, which does two things to
each item in the collection: 1) sets the DefaultAction to BlockWithUrl and 2) sets the DefaultUrl to
https://litwareinc.com/csclients.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultAction
Indicates the action to be taken if a user tries to log on from a client application with a version number that cannot
be found in the appropriate client version policy. DefaultAction must be set to one of the following values:
Allow. The client application will be allowed to log on.
AllowWithUrl. The client application will be allowed to log on. In addition, a message box will be displayed to the
user that includes the URL of a webpage where that user can download an approved client application. The URL for
this webpage should be specified as the value for the DefaultUrl property.
Block. The client application will be prevented from logging on.
BlockWithUrl. The client application will be prevented from logging on. However, the "Access denied" message box
displayed to the user will include the URL of a webpage where that user can download an approved client
application. The URL for this webpage should be specified as the value for the DefaultUrl property.
This property is ignored if the Enabled property is set to False. When the Enabled property is set to False, then no
client version filtering of any kind takes place.

Type: DefaultAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DefaultURL
Specifies the URL of the webpage where users can download an approved client application. If specified and if the
DefaultAction is set to BlockWithURL, this URL will appear in the "Access denied" message box displayed any time
a user tries to log on from an unsupported client application.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether client version filtering is enabled or disabled. If the Enabled property is True, then the server will
check the version number of each client application that attempts to log on; the server will then allow or deny
access based on the appropriate client version policy. If the Enabled property is False, then any client application
capable of logging on will be allowed to log on.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Represents the unique identifier of the client version configuration settings to be modified. To modify the global
settings, use syntax like this: -Identity global . To modify settings assigned to the site scope, use syntax similar to
this: "site:Redmond" .

If this parameter is not included, the Set-CsClientVersionConfiguration cmdlet will automatically configure the
global settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration object. The
Set-CsClientVersionConfiguration cmdlet accepts pipelined instances of the client version configuration object.

Outputs
The Set-CsClientVersionConfiguration cmdlet does not return a value or object. Instead, the cmdlet configures
instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration object.
Related Links
Get-CsClientVersionConfiguration
New -CsClientVersionConfiguration
Remove-CsClientVersionConfiguration
minutes to read • Edit Online

Set-CsClientVersionPolicy
In ths Article

Modifies an existing client version policy. Client version policies enable you to specify which clients (such as
Microsoft Office Communicator 2007 R2) will be allowed to log on to your Skype for Business Server system. This
cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsClientVersionPolicy [[-Identity] <XdsIdentity>] [-Description <String>] [-Rules <PSListModifier>]
[-Force] [-WhatIf] [-Confirm] [-Tenant <Guid>] [<CommonParameters>]

Set-CsClientVersionPolicy [-Instance <PSObject>] [-Description <String>] [-Rules <PSListModifier>] [-Force]


[-WhatIf] [-Confirm] [-Tenant <Guid>] [<CommonParameters>]

Description
Client version policies represent a collection of client version rules; in turn, client version rules are used to
determine which client applications are allowed to log on to Skype for Business Server. When a user attempts to
log on to Skype for Business Server, his or her client application sends a SIP header to the server; this header
includes detailed information about the application itself, including the software's major version, minor version and
build number. The version information included in the SIP header is then checked against a collection of client
version rules to see if any rules apply to that particular application. If such a rule exists, Skype for Business Server
will then take the action specified by the rule. For example, the rule might tell Skype for Business Server to allow
the logon, to block it, or to allow the logon but then silently upgrade the client application to the latest version (for
example, upgrade Communicator 2007 R2 to Skype for Business).
Client version policies, which can be applied at the global scope, the site scope, the service scope (Registrar service
only), or the per-user scope, give you flexibility in determining which client applications can be used to access the
system. For example, you might want to prevent users from logging on to Skype for Business Server by using
Communicator 2007 R2; that's because it does not support the same features and capabilities as Skype for
Business. However, due to hardware or software conflicts you might also have a group of users who cannot
upgrade to Skype for Business. In that case, you can create a separate rule -- and a separate client version policy --
that allows those users to log on from within Communicator 2007 R2.
Client version policies can be modified at any time; modifying a client version policy typically means adding new
rules, deleting existing rules, or modifying the properties of an existing rule (for example, changing a rule action
from Allow to Block). These changes can be made by using the Set-CsClientVersionPolicy cmdlet. However, you
will probably find it easier to make these modifications by using the CsClientVersionPolicyRule cmdlet.
On the other hand, the Set-CsClientVersionPolicy cmdlet does provide a way for you to easily copy an entire set of
rules from one client version policy to another. For details, see the Examples section in this Help topic.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.

Examples
-------------------------- Example 1 --------------------------

Set-CsClientVersionPolicy -Identity site:Redmond -Rules $Null

$x = Get-CsClientVersionPolicy -Identity site:Dublin | Select-Object -ExpandProperty Rules

Set-CsClientVersionPolicy -Identity site:Redmond -Rules $x

The commands shown in Example 1 copy all the client version rules from one client version policy to another. To do
this, the first command in the example uses the Set-CsClientVersionPolicy cmdlet to remove all the rules from the
policy site:Redmond; this is done by setting the value of the Rules property to null. After the rules have been
deleted, the second command in the example uses the Get-CsClientVersionPolicy cmdlet to retrieve all the client
version policy rules configured for the site:Dublin policy. These rules are stored in a variable named $x.
In the final command, the Set-CsClientVersionPolicy cmdlet is invoked again, this time setting the Rules property
of the Redmond policy to $x. This effectively copies all the rules from the site:Dublin policy and adds them to the
site:Redmond policy.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables you to provide explanatory information about a policy. For example, you might provide information
describing the users that the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the policy to be modified. To modify the global policy, use this syntax: -Identity global . To
modify a policy configured at the site scope, use syntax similar to this: -Identity "site:Redmond" . To modify a policy
configured at the service scope, use syntax similar to this: -Identity "Registrar:atl-cs-001.litwareinc.com" . The
Registrar service is the only service that can host a client version policy.
Per-user policies can also be modified by using this cmdlet. To modify a per-user policy, use syntax similar to this:
-Identity "SalesDepartmentPolicy" .

If this parameter is not included, then the Set-CsClientVersionPolicy cmdlet will modify the global policy.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Rules
Collection of individual client policy rules that have been assigned to the policy.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the client version
policy is being modified. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionPolicy object. The
Set-CsClientVersionPolicy cmdlet accepts pipelined instances of the client version policy object.

Outputs
The Set-CsClientVersionPolicy cmdlet does not return a value or object. Instead, the cmdlet configures instances of
the Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionPolicy object.

Related Links
Get-CsClientVersionPolicy
New -CsClientVersionPolicy
Remove-CsClientVersionPolicy
Set-CsClientVersionPolicy
minutes to read • Edit Online

Set-CsClientVersionPolicyRule
In ths Article

Modifies one or more client version policy rules currently configured for use in your organization. This cmdlet was
introduced in Lync Server 2010.

Syntax
Set-CsClientVersionPolicyRule [[-Identity] <XdsIdentity>] [-Action <Action>] [-ActionUrl <String>]
[-BuildNumber <UInt16>] [-CompareOp <CompareOp>] [-Description <String>] [-Enabled <Boolean>]
[-MajorVersion <UInt16>] [-MinorVersion <UInt16>] [-Priority <Int32>] [-QfeNumber <UInt16>]
[-UserAgent <String>] [-Force] [-WhatIf] [-Confirm] [-UserAgentFullName <String>] [-Tenant <Guid>]
[<CommonParameters>]

Set-CsClientVersionPolicyRule [-Instance <PSObject>] [-Action <Action>] [-ActionUrl <String>]


[-BuildNumber <UInt16>] [-CompareOp <CompareOp>] [-Description <String>] [-Enabled <Boolean>]
[-MajorVersion <UInt16>] [-MinorVersion <UInt16>] [-Priority <Int32>] [-QfeNumber <UInt16>]
[-UserAgent <String>] [-Force] [-WhatIf] [-Confirm] [-UserAgentFullName <String>] [-Tenant <Guid>]
[<CommonParameters>]

Description
Client version rules are used to determine which client applications are allowed to log on to Skype for Business
Server. When a user attempts to log on to Skype for Business Server, his or her client application sends a SIP
header to the server; this header includes detailed information about the application itself, including the software's
major version, minor version and build number. The version information is then checked against a collection of
client version rules to see if any rules apply to that particular application. For example, suppose a user attempts to
log on by using Microsoft Office Communicator 2007 R2. Before the user can log on to Skype for Business Server,
the system will check to see if there is a client version rule that applies to Office Communicator 2007 R2. If a rule
exists, Skype for Business Server will then take the action specified by the rule. That action must be one of the
following:
Allow. The user will be allowed to log on.
AllowAndUpgrade. The user will be allowed to log on, and his or her copy of Communicator 2007 R2 will
automatically be upgraded to the latest version of Lync. Upgrades are carried out using either Microsoft Update or
Windows Server Update Services, depending on how you have configured your system.
AllowWithUrl. The user will be allowed to log on, and a message will be displayed pointing the user to a URL
where the latest version of Lync can be downloaded and installed. The URL must point to a website that you have
created yourself; no such site is created for you when you install Skype for Business Server.
Block. The user will not be allowed to log on.
BlockAndUpgrade. The user will not be allowed to log on, but his or her copy of Communicator 2007 R2 will
automatically be upgraded to the latest version of Lync. The user can then try to log on by using the new client
application. Upgrades are carried out using either Microsoft Update or Windows Server Update Services,
depending on how you have configured your system.
BlockWithUrl. The user will not be allowed to log on, but a message will be displayed pointing him or her to a URL
where the latest version of Lync can be downloaded and installed. The URL must point to a website that you have
created yourself; no such site is created for you when you install Skype for Business Server.
Client version rules are collected in client version policies; these policies that can be configured at the global scope,
the site scope, the service scope (Registrar service), or the per-user scope. The Set-CsClientVersionPolicyRule
cmdlet provides a way for you to modify the properties of an existing client version rule.
It's important to note that client version policies do not apply to federated users; instead, federated users are bound
by the client version policies used in their own organization. For example, suppose a federated user uses client A, a
client allowed by the federated organization. As long as the federated organization allows the use of client A, this
user will be able to communicate with your organization using that client. This will be true even if your client
version policy blocks the use of client A. Client version policies enforced in your organization do not override the
client version policies used in a federated organization.

Examples
-------------------------- Example 1 ------------------------

Set-CsClientVersionPolicyRule -Identity site:Redmond/74ba9211-8610-42f9-91ba-846cdee98820 -Enabled $False

The command shown in Example 1 disables the client version policy rule that has the Identity
site:Redmond/74ba9211-8610-42f9-91ba-846cdee98820. To disable the rule, the command includes the Enabled
parameter and the parameter value $False.
-------------------------- Example 2 ------------------------

Get-CsClientVersionPolicyRule -Filter "site:Redmond*" | Set-CsClientVersionPolicyRule -Description "Client


policy rules for Redmond"

Example 2 adds a generic description to all the client version policy rules assigned to the Redmond site. To do this,
the command first calls the Get-CsClientVersionPolicyRule cmdlet along with the Filter parameter; the filter value
"site:Redmond*" limits the returned data to policy rules assigned to the Redmond site. This collection is then piped
to the Set-CsClientVersionPolicyRule cmdlet, which assigns the Description "Client policy rules for Redmond" to
each item in that collection.
-------------------------- Example 3 ------------------------

Get-CsClientVersionPolicyRule | Where-Object {$_.UserAgent -eq "UCCP"} | Set-CsClientVersionPolicyRule -Action


"Block"

Example 3 blocks the use of Unified Communications Client Platform (UCCP ) clients for any client version policy
rule that references UCCP as the user agent. To carry out this task, the command first calls the
Get-CsClientVersionPolicyRule cmdlet to retrieve a collection of all the client policy rules currently in use. This
collection is then piped to the Where-Object cmdlet, which picks out only those rules where the UserAgent property
is equal to (-eq) UCCP. This filtered collection is then piped to the Set-CsClientVersionPolicyRule cmdlet, which
takes each item in the collection and sets the Action property to Block.

Parameters
-Action
Action to be taken any time the rule is triggered (that is, any time someone attempts to log on by using the
specified software). Valid values are:
Allow. The user will be allowed to log on.
AllowWithUrl. The user will be allowed to log on, and a message will be displayed pointing him or her to a URL
where the latest version of Lync can be downloaded and installed.
AllowAndUpgrade. The user will be allowed to log on, and his or her copy of Communicator will automatically be
upgraded to the latest version of Lync.
Block. The user will not be allowed to log on.
BlockWithUrl. The user will not be allowed to log on, but a message will be displayed pointing him or her to a URL
where the latest version of Lync can be downloaded and installed.
BlockAndUpgrade. The user will not be allowed to log on, but his or her copy of Communicator will automatically
be upgraded to the latest version of Lync. The user can then try to log on by using the new client application.

Type: Action
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ActionUrl
URL where users can download the latest version of Lync. This property is required if the Action is set to
BlockWithUrl or AllowWithUrl.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BuildNumber
Build number of the software. For example, if your copy of Communicator is version 2.0.6362.111, then the
BuildNumber is 6362. Build numbers represent internal versions of the software during the development process,
and help to ensure that you are using the final release version as opposed to a pre-release version.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CompareOp
Comparison operator used to determine if the client software attempting to log on was released before, after, or at
the same time as the version specified in the rule. Valid values are:
EQL (equal to)
NEQ (not equal to)
GTR (greater than)
GEQ (greater than or equal to)
LSS (less than)
LEQ (less than or equal to)

Type: CompareOp
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional information about the client version rule. For example, the Description
might include information about who to contact if you believe the rule should be changed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether or not the client version rule is to be used. If the Enabled property is set to False the rule will be
ignored any time a user attempts to log on with the specified software. The default value is True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the client version policy rule to be modified. The Identity of a client version rule consists of the
scope where the rule has been configured plus a globally unique identifier (GUID ). That means that a rule will have
an Identity similar to this: site:Redmond/1987d3c2-4544-489d-bbe3-59f79f530a83.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MajorVersion
Major version of the software. For example, if your copy of Communicator is version 2.0.6362.111, then the
MajorVersion is 2. Major versions equate to primary releases of the software.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MinorVersion
Minor version of the software. For example, if your copy of Communicator is version 2.0.6362.111, then the
MinorVersion is 0. Minor versions equate to interim releases of the software.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
Relative priority of the rule. Rules are processed in priority order, with the rule with priority 0 being processed first,
the rule with priority 1 being processed second, and so on. If you assign a priority already in use, the new rule will
use that priority and other rules will be renumbered accordingly.

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-QfeNumber
Quick fix engineering number of the software. For example, if your copy of Communicator is version 2.0.6362.111,
then the QfeNumber is 111. QFE numbers represent planned updates to an application that are made available
after the software's official release.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the client version
policy rule is being modified. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserAgent
Designator used to identify the software client. For example, OC is the user agent designation for Communicator.
The Get-CsClientVersionConfiguration cmdlet provides corresponding friendly names for each user agent
designation.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-UserAgentFullName
Enables administrators to provide a friendly name for the user agent. For example, instead of relying on the user
agent UCCP to identify the agent administrators might spell the name out in full: Microsoft Unified
Communications Client.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule object. The Set-CsClientVersionPolicyRule
cmdlet accepts pipelined instances of the client version rule object.

Outputs
None. Instead, the Set-CsClientVersionPolicyRule cmdlet modifies instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule object.

Related Links
Get-CsClientVersionPolicyRule
New -CsClientVersionPolicyRule
Set-CsClientVersionPolicyRule
minutes to read • Edit Online

Set-CsCloudCallDataConnector
In ths Article

Saves an on-premises copy of the connection information created by the New -CsCloudCallDataConnection cmdlet.

Syntax
Set-CsCloudCallDataConnector [-Token <String>] [-TenantId <String>] [-Instance <PSObject>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
Call Data Connector provides a single view in a hybrid environment where you can view the on-premises and
online call quality data in one place.
The Set-CsCloudCallDataConnector cmdlet provides a way for you to store an on-premise copy of the cloud
connection information created by the New -CsCloudCallDataConnection cmdlet.

Examples
Example 1

PS C:\> New-CsCloudCallDataConnection | Set-CsCloudCallDataConnector -TenantId <tenant_id>

If you're logged in to Skype for Business Online Powershell within the Skype for Business Server Management
Shell 2019, this command in example 1 takes the output of the New -CsCloudCallDataConnection online cmdlet
and passes it to the Set-CsCloudCallDataConnector cmdlet via pipeline so that the Token can be stored on
premises. Along with the Token, the TenantId of your O365 tenant will get stored on premises as well.
Example 2
Example showing the scenario when we aren't piping the output from online cmdlet.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-TenantId
Office 365 TenantID of your tenant.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Token
Data ingestion token for CloudCallDataConnector telemetry endpoint.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.String
Microsoft.Rtc.Management.WritableConfig.Settings.CloudCallDataConnection. The `Set-
CsCloudCallDataConnector` cmdlet accepts pipelined input of CloudCallDataConnection.

Outputs
The `Set-CsCloudCallDataConnector` cmdlet does not return a value or object. Instead, the cmdlet configures
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.CloudCallDataConnection object.
minutes to read • Edit Online

Set-CsCloudCallDataConnectorConfiguration
In ths Article

Modifies an existing collection of Cloud Call Data Connector configuration settings.

Syntax
Set-CsCloudCallDataConnectorConfiguration [-EnableCallDataConnector <Boolean>] [[-Identity] <XdsIdentity>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsCloudCallDataConnectorConfiguration [-EnableCallDataConnector <Boolean>] [-Instance <PSObject>] [-Force]


[-WhatIf] [-Confirm] [<CommonParameters>]

Description
Call Data Connector greatly simplifies call monitoring in a hybrid environment because you no longer need to use
different sets of on-premises and online tools to monitor all of your users' call quality. Whether your users are
homed on premises or online, you can choose to view call quality for your entire organization online.
With Call Data Connector, the Skype for Business Server pushes call data to the cloud service so that you can
leverage the Skype for Business Online Call Analytics (CA) and Call Quality Dashboard (CQD ) tools.

Examples
Example 1

PS C:\> Set-CsCloudCallDataConnectorConfiguration -Identity site:Redmond -EnableCallDataConnector $False

Example 1 disables the Call Data Connector for site:Redmond.


Example 2

Get-CsCloudCallDataConnectorConfiguration | Set-CsCloudCallDataConnectorConfiguration -EnableCallDataConnector


$True

Example 2 is a variation of the command shown in Example 1. In this case, the EnableCallDataConnector property
is modified for each collection of Cloud Call Data Connector configuration settings currently in use in the
organization. To do this, the command first calls the `Get-CsCloudCallDataConnectorConfiguration` cmdlet without
any parameters in order to return a collection of all the Cloud Call Data Connector settings currently in use. This
collection is then piped to the `Set-CsCloudCallDataConnectorConfiguration` cmdlet, which takes each item in the
collection and changes the value of the EnableCallDataConnector property to $True.
Example 3
Get-CsCloudCallDataConnectorConfiguration -Filter "site:*"| Set-CsCloudCallDataConnectorConfiguration -
EnableCallDataConnector $True

Another variation of the command used in Example 1 is shown in Example 3. In this example, the PurgeHourOfDay
property is changed for all the Cloud Call Data Connector settings that have been configured at the site scope. To
perform this task, the command first calls the `Get-CsCloudCallDataConnectorConfiguration` cmdlet along with
the Filter parameter; the filter value "site:*" ensures that only Cloud Call Data Connector settings that have an
Identity that begins with the string value "site:" will be returned. The filtered collection is then piped to the `Set-
CsCloudCallDataConnectorConfiguration` cmdlet, which changes the EnableCallDataConnector property for each
item in that collection.

Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableCallDataConnector
Enables upload of call data.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Represents the unique identifier to be assigned to the new collection of CloudCallDataConnector configuration
settings. Because you can only create new collections at the site scope, the Identity will always be the prefix "site:"
followed by the site name; for example, "site:Redmond".
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None

Outputs
The `Set-CsCloudCallDataConnectorConfiguration` cmdlet does not return a value or object. Instead, the cmdlet
configures instances of the Microsoft.Rtc.Management.WritableConfig.Settings.CloudCallDataConnection
object.
minutes to read • Edit Online

Set-CsClsConfiguration
In ths Article

Modifies an existing collection of centralized logging configuration settings. Centralized logging provides a way for
administrators to simultaneously enable or disable tracing on multiple computers. This cmdlet was introduced in
Lync Server 2013.

Syntax
Set-CsClsConfiguration [[-Identity] <XdsIdentity>] [-CacheFileLocalFolders <String>]
[-CacheFileLocalMaxDiskUsage <UInt32>] [-CacheFileLocalRetentionPeriod <UInt32>]
[-CacheFileNetworkFolder <String>] [-ComponentThrottleLimit <UInt32>] [-ComponentThrottleSample <UInt32>]
[-Confirm] [-EtlFileFolder <String>] [-EtlFileRolloverMinutes <UInt32>] [-EtlFileRolloverSizeMB <UInt32>]
[-Force] [-MinimumClsAgentServiceVersion <UInt32>] [-Regions <PSListModifier>] [-Scenarios <PSListModifier>]
[-SearchTerms <PSListModifier>] [-SecurityGroups <PSListModifier>] [-TmfFileSearchPath <String>] [-WhatIf]
[-NetworkUsagePacketSize <UInt32>] [-NetworkUsageThreshold <UInt32>] [-Version <String>] [<CommonParameters>]

Set-CsClsConfiguration [-CacheFileLocalFolders <String>] [-CacheFileLocalMaxDiskUsage <UInt32>]


[-CacheFileLocalRetentionPeriod <UInt32>] [-CacheFileNetworkFolder <String>]
[-ComponentThrottleLimit <UInt32>] [-ComponentThrottleSample <UInt32>] [-Confirm] [-EtlFileFolder <String>]
[-EtlFileRolloverMinutes <UInt32>] [-EtlFileRolloverSizeMB <UInt32>] [-Force] [-Instance <PSObject>]
[-MinimumClsAgentServiceVersion <UInt32>] [-Regions <PSListModifier>] [-Scenarios <PSListModifier>]
[-SearchTerms <PSListModifier>] [-SecurityGroups <PSListModifier>] [-TmfFileSearchPath <String>] [-WhatIf]
[-NetworkUsagePacketSize <UInt32>] [-NetworkUsageThreshold <UInt32>] [-Version <String>] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.
Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
It is also possible to define custom scenarios by using the New-CsClsScenario cmdlet.
Centralized logging is managed by using collections of centralized logging service configuration settings. When
you install Skype for Business Server, you install a global set of these configuration settings; in addition,
administrators can add custom settings collections at the site scope. Administrators can use the
Set-CsClsConfiguration cmdlet to modify any of these settings.
Skype for Business Server Control Panel: The functions carried out by the Set-CsClsConfiguration cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Set-CsClsConfiguration -Identity "global" -EtlRolloverFileSizeMB 40

In Example 1, the global collection of centralized logging configuration settings is modified to set the maximum size
of an ETL file to 40 megabytes.
-------------------------- Example 2 --------------------------

Get-CsClsConfiguration | Set-CsClsConfiguration -EtlRolloverFileSizeMB 40

The command shown in Example 2 modifies the maximum ETL file size for all the centralized logging configuration
settings in use in the organization. To do this, the command first calls the Get-CsClsConfiguration cmdlet to return a
collection of all the centralized logging settings. That collection is then piped to the Set-CsClsConfiguration cmdlet,
which changes the value of the EtlRolloverFileSizeMB property for each item in the collection to 40 megabytes.

Parameters
-CacheFileLocalFolders
One or more full paths to the local folders where the cache files will be stored. The default value is
%TEMP%\Tracing. If more than one path is specified, then separate them with semi-colons.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CacheFileLocalMaxDiskUsage
Maximum amount of disk space (percentage) that can be used for the cache files. The default value is 80.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CacheFileLocalRetentionPeriod
Maximum number of days that cache files are retained locally. The default value is 14.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CacheFileNetworkFolder
Full UNC path to the network cache folder. There is no default value.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ComponentThrottleLimit
Maximum rate at which a component is allowed to generate trace records before its tracing is throttled. The default
value is 5000 trace calls per second.
The default value is 5000.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ComponentThrottleSample
Maximum number of times the ComponentThrottleLimit can be exceeded within a one minute interval. The default
value is 3.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EtlFileFolder
Full path to the folder where the event log trace files will be stored. The default value is %TEMP%\Tracing. Note
that %TEMP% is evaluated in the contents of the CLS Service so it actual expands to
%WINDIR%\ServiceProfiles\NetworkService\AppData\Local

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EtlFileRolloverMinutes
Maximum amount of time (in minutes) that can elapse before a new event log trace file is created. (This new file will
be created even if the existing trace file has not reached the specified rollover size.) The default value is 60.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EtlFileRolloverSizeMB
Maximum size (in megabytes) that at event trace log file can reach before a new file is created. The default value is
20.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the centralized logging configuration settings to be modified. To refer to the global settings, use
this syntax:
-Identity global

To refer to site settings, use syntax similar to this:


-Identity site:Redmond

You cannot use wildcards when specifying an Identity.


Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MinimumClsAgentServiceVersion
Specifies the minimum version of the centralized logging service agent to be used when logging data; any
computers with an agent version lower than the minimum value will be excluded from the logging operations. The
default value is 6, representing Skype for Business Server. This parameter is intended for use with Skype for
Business Online.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkUsagePacketSize
Packet size (in kilobytes) for transmitting agent search results and copying cache files over the network. The default
value is 64 KB.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-NetworkUsageThreshold
Bandwidth usage threshold (in MB per second) for transmitting agent search results and copying cache files over
the network. The default value is 10.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Regions
Collection of regions defined for the centralized logging configuration settings. Regions are defined using the
New-CsClsRegion cmdlet.

This parameter is intended for use with Skype for Business Online.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Scenarios
Collection of components/situations that can be traced using centralized logging. Scenarios are managed using the
CsClsScenario cmdlets.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SearchTerms
Collection of terms that help determine the personally identifiable information available to technical support
personnel who search the centralized logging files. Search terms are managed using the CsClsSearchTerm cmdlets.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecurityGroups
Security groups who are allowed to access the log files.
This parameter is intended for use with Skype for Business Online.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TmfFileSearchPath
Search path for TMF (trace message format) files. TMF files convert binary trace messages to a human-readable
format. This should be a UNC or DFC path, to allow it to be accessible from multiple computers. If the path is not
UNC or DFC, every machine any reference to a local folder path must contain all needed TMX files. Local file paths
will work, but must be maintained.
There's no need to set the location C:\Program Files\Common Files\Skype for Business Server 2015\Tracing\
because every ClsAgent will automatically check this location.
Do not set CacheFileLocalFolders to the same value as TmfFileSearchPath. Any .tmx files found in the
CacheFileLocalFolders path will be deleted.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Version
This parameter is reserved for internal Microsoft use.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsClsConfiguration cmdlet accepts pipelined instances of the
icrosoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.CentralizedLoggingConfiguration object.

Outputs
None. Instead, the Set-CsClsConfiguration cmdlet modifies existing instances of the
icrosoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.CentralizedLoggingConfiguration object.

Related Links
Get-CsClsConfiguration
New -CsClsConfiguration
Remove-CsClsConfiguration
minutes to read • Edit Online

Set-CsClsRegion
In ths Article

Modifies an existing centralized logging configuration region. Centralized logging provides a way for
administrators to simultaneously enable or disable event tracing on multiple computers. This cmdlet was
introduced in Lync Server 2013.

Syntax
Set-CsClsRegion [[-Identity] <XdsIdentity>] [-Confirm] [-Force] [-OtherRegionAccess <String>]
[-SecurityGroupSuffix <String>] [-Sites <String>] [-WhatIf] [<CommonParameters>]

Set-CsClsRegion [-Confirm] [-Force] [-Instance <PSObject>] [-OtherRegionAccess <String>]


[-SecurityGroupSuffix <String>] [-Sites <String>] [-WhatIf] [<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.

With Skype for Business Online, regions are used to determine which users have access to the personally-
identifiable information that is written to the log files. Regions are created by using the New-CsClsRegion cmdlet and
then are added to a collection of centralized logging configuration settings. After they have been created, you can
modify the properties of these regions by using the Set-CsClsRegion cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Set-CsClsRegion cmdlet are not available
in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Set-CsClsRegion -Identity "global/US" -SecurityGroupSuffix "USSupport"

The command shown in Example 1 changes the security group suffix for the region global/US to USSupport.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the region. Region Identities consist of the centralized logging configuration scope where the
region was created plus a unique region name. For example, to refer to a global region named Redmond use this
syntax:
-Identity "global/Redmond"

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-OtherRegionAccess
Name of an additional region that can be accessed by authorized users for this region.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecurityGroupSuffix
Suffix to be added to the end of the name of any security group that will be authorized for this region.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Sites
Sites contained within this region. These correspond to the SideId attribute values in the topology document.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsClsRegion cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Region#Decorated object.

Outputs
None. Instead, the Set-CsClsRegion cmdlet modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Region#Decorated object.

Related Links
Get-CsClsRegion
New -CsClsRegion
Remove-CsClsRegion
minutes to read • Edit Online

Set-CsClsScenario
In ths Article

Enables you to modify a centralized logging configuration scenario. A scenario represents a particular Skype for
Business Server component or situation (such as IM and presence) that administrators can enable or disable for
tracing. This cmdlet was introduced in Lync Server 2013.

Syntax
Set-CsClsScenario [[-Identity] <XdsIdentity>] [-Confirm] [-Force] [-Provider <PSListModifier>] [-WhatIf]
[<CommonParameters>]

Set-CsClsScenario [-Confirm] [-Force] [-Instance <PSObject>] [-Provider <PSListModifier>] [-WhatIf]


[<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.

Centralized logging is built around a series of predefined scenarios that offer a more finely-targeted approach to
logging than offered in previous versions of Skype for Business Server. These scenarios predetermine the server
components and logging for you; as a result, an administrator enabling the RGS scenario can be confident that he
or she will only log information relevant to the Response Group service and not to, say, the audio conferencing
provider service.
Custom scenarios by using the New-CsClsScenario cmdlet and then adding the new scenario to a collection of
centralized logging configuration settings. Any of your scenarios can then be modified by using the
Set-CsClsScenario cmdlet.

Skype for Business Server Control Panel: The functions carried out by the Set-CsClsScenario cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------
$provider = New-CsClsProvider -Name "WebInfrastructure" -Type "WPP" -Level "Warning" -Flags "All"

Set-CsClsScenario -Identity "site:Redmond/WAC" -Provider @{Add=$provider}

The commands shown in Example 1 create a new centralized logging scenario provider and then add that provider
to the WAC scenario configured for the Redmond site. To do this, the first command in the example uses the
New-CsClsProvider cmdlet to create a new provider with the name WebInfrastructure; this new provider is stored in
a variable named $provider. The second command in the example then adds this new provider to the scenario
site:Redmond/WAC. Because the command uses the syntax @{Add=$provider} the new provider will be added to
the WAC scenario in addition to any other providers already configured for that.
-------------------------- Example 2 --------------------------

$provider = New-CsClsProvider -Name "WebInfrastructure" -Type "WPP" -Level "Warning" -Flags "All"

Set-CsClsScenario -Identity "site:Redmond/WAC" -Provider @{Replace=$provider}

The command shown in Example 2 is a variation of the command shown in Example 1. In Example 2, however, the
new provider will replace any (and all) the existing providers configured for the WAC scenario. This is done by
using the syntax @{Replace=$provider} .

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the scenario to be modified. A scenario consists of two parts: the scope where the scenario is
configured (that is, the collection of centralized logging configuration settings where the scenario can be found) and
the scenario name. For example:
-Identity "site:Redmond/AddressBook"
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Provider
Logging provider for the scenario. New providers must be created using the New-CsClsProvider cmdlet. For
example:
$provider = New-CsClsProvider -Name "UserServices" -Type "WPP" -Level "Info" -Flags "All"

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsClsScenario cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Scenario#Decorated object.

Outputs
None. Instead, the Set-CsClsScenario cmdlet modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.Scenario#Decorated object.
minutes to read • Edit Online

Set-CsClsSearchTerm
In ths Article

Modifies one or more centralized logging search terms. Search terms help define the personally identifiable
information available to technical support personnel who are searching the centralized trace logs. Search terms are
intended for use with Skype for Business Online.

Syntax
Set-CsClsSearchTerm [[-Identity] <XdsIdentity>] [-Confirm] [-Force] [-Inserts <String>] [-WhatIf]
[<CommonParameters>]

Set-CsClsSearchTerm [-Confirm] [-Force] [-Inserts <String>] [-Instance <PSObject>] [-WhatIf]


[<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.

In Skype for Business Online, administrators can use search terms to mask personally identifiable information from
support personnel who are viewing the log files. For example, a user's name, such as Ken Myer, would not appear
when viewed using the support console; instead, the name might appear as FIRST1 LAST1. Likewise, the phone
number +12065551219 might be displayed as PHONE1.
The Set-CsClsSearchTerm cmdlet enables you to modify any of the search terms currently assigned to a collection of
centralized logging configuration settings.
Skype for Business Server Control Panel: The functions carried out by the Set-CsClsSearchTerm cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Set-CsClsSearchTerm -Identity "site:Redmond/IP" -Inserts "ItemURI"

The command shown in sets the Inserts property for the search term "site:Redmond/IP". In this example, a single
Insert is configured: ItemURI.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the search term to be modified. A search term consists of two parts: the scope where the term
is configured (that is, the collection of centralized logging configuration settings where the term can be found) and
the term name. For example:
-Identity "site:Redmond/CallID"

You cannot use wildcards when specifying the Identity.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Inserts
Specify how personally identifiable information is masked when viewing the log files. For example, the Insert
"ItemURI" indicates that user URI information should be masked. As a result, a user URI such as
sip:kenmyer@litwareinc.com will appear as a generic URI that hides the user name but preserve the domain name:
Sip:USER1@litwareinc.com
Inserts mask such things as user names and computer names; phone numbers; and IP addresses.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsClsSearchTerm cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SearchTerm#Decorated object.

Outputs
None. Instead, the Set-CsClsSearchTerm cmdlet modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SearchTerm#Decorated object.

Related Links
Get-CsClsSearchTerm
minutes to read • Edit Online

Set-CsClsSecurityGroup
In ths Article

Modifies a centralized logging configuration security group. Centralized logging provides a way for administrators
to simultaneously enable or disable event tracing on multiple computers. This cmdlet was introduced in Lync
Server 2013.

Syntax
Set-CsClsSecurityGroup [[-Identity] <XdsIdentity>] [-AccessLevel <String>] [-Confirm] [-Force] [-WhatIf]
[<CommonParameters>]

Set-CsClsSecurityGroup [-AccessLevel <String>] [-Confirm] [-Force] [-Instance <PSObject>] [-WhatIf]


[<CommonParameters>]

Description
The centralized logging service (which replaces the OCSLogger and OCSTracer tools used in Microsoft Lync Server
2010) provides a way for administrators to manage logging and tracing for all computers and pools running Skype
for Business Server. Centralized logging enables administrators to stop, start and configure logging for one or
more pools and computers by using a single command; for example, you can use one command to enable Address
Book service logging on all your Address Book servers. This differs from the OCSLogger and OCSTracer tools,
which had to be individually managed (including individually stopped and started) on each server. In addition, the
centralized logging service also provides a way for administrators to search trace logs from the command, using
the Windows PowerShell command-line interface and the Search-CsClsLogging cmdlet.

With Skype for Business Online, security groups are used to determine which users have access to the personally-
identifiable information that is written to the log files. Security groups are created by using the
New-CsClsSecurityGroup cmdlet and then are added to a collection of centralized logging configuration settings.
After these groups have been created, you can modify their property values by using the Set-CsClsSecurityGroup
cmdlet.
Skype for Business Server Control Panel: The functions carried out by the Set-CsClsSecurityGroup cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Set-CsClsSecurityGroup -Identity "global/HelpDesk" -AccessLevel "Tier3"

The command shown in Example 1 modifies the centralized logging security group that has the Identity
global/HelpDesk. In this example, the AccessLevel property is set to Tier3.
-------------------------- Example 2 --------------------------

Get-CsClsSecurityGroup -Filter "global/*" | Set-CsClsSecurityGroup-AccessLevel "Tier3"

In Example 2, the access level is modified for all the centralized logging security groups configured at the global
scope. To do this, the command first calls the Get-CsClsSecurityGroup cmdlet along with the Filter parameter; the
filter value "global/*" limits the returned data to security groups configured at the global scope. Those groups are
then piped to the Set-CsClsSecurityGroup cmdlet, which sets the AccessLevel property of each group to Tier3.
-------------------------- Example 3 --------------------------

Get-CsClsSecurityGroup | Where-Object {$_.AccessLevel -eq "GlobalAccess"} | Set-CsClsSecurityGroup -AccessLevel


"Tier3"

Example 3 shows how you can use a single command to change the access level for all the centralized logging
security groups who share an existing access level. To carry out this task, the command first calls the
Get-CsClsSecurityGroup cmdlet without any parameters in order to return a collection of all the centralized logging
security groups. That collection is then piped to the Where-Object cmdlet, which selects only those groups where
the AccessLevel is equal to (-eq) GlobalAccess. In turn, those groups are piped to the Set-CsClsSecurityGroup
cmdlet, which takes each group and changes the AccessLevel to Tier3.

Parameters
-AccessLevel
String value specifying the access level assigned to the group. Access levels are assigned by administrators and
used to categorize security groups. For example:
-AccessLevel "Tier3"

Multiple groups can share the same access level. Currently the only values that have meaning are "Tier3", "Tier2",
"Product", "Ops", and "Pii".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the centralized logging security group to be modified. A security group identity consists of the
scope where the group was created followed by the group name. For example, to modify a group named HelpDesk
created at the global scope, use the following syntax:
-Identity "global/HelpDesk"

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
The Set-CsClsSecurityGroup cmdlet accepts pipelined instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SecurityGroup#Decorated object.

Outputs
None. Instead, the Set-CsClsSecurityGroup cmdlet modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLogging.SecurityGroup#Decorated object.

Related Links
Get-CsClsSecurityGroup
New -CsClsSecurityGroup
Remove-CsClsSecurityGroup
minutes to read • Edit Online

Set-CsCommonAreaPhone
In ths Article

Modifies the property values of a common area phone managed by Skype for Business Server. Common area
phones are phones that are located in building lobbies, employee lounges, or other areas where they are likely to be
used by a number of different people and for a number of different uses. This cmdlet was introduced in Lync Server
2010.

Syntax
Set-CsCommonAreaPhone [-Identity] <UserIdParameter> [-Enabled <Boolean>] [-Description <String>]
[-DisplayName <String>] [-DisplayNumber <String>] [-DomainController <Fqdn>]
[-EnterpriseVoiceEnabled <Boolean>] [-SipAddress <String>] [-PassThru] [-WhatIf] [-Confirm]
[-LineURI <String>] [-ExchangeArchivingPolicy <ExchangeArchivingPolicyOptionsEnum>] [<CommonParameters>]

Description
Common area phones are IP telephones that are not associated with an individual user. Instead of being located in
someone's office, common area phones are typically located in building lobbies, cafeterias, employee lounges,
meeting rooms and other locations where a large number of people are likely to gather. This presents
administrators with a management challenge; that's because phone use in Skype for Business Server is typically
maintained by using voice policies and dial plans that are assigned to individual users. Common area phones do
not have individual users assigned to them.
One solution to this challenge is to create Active Directory contact objects for all your common area phones. (These
contact objects can be created by using the New-CsCommonAreaPhone cmdlet.) Like user accounts, these contact
objects can be assigned policies and voice plans. As a result, you will be able to maintain control over common area
phones even though those phones are not associated with an individual user. For example, if you do not want
people to have the ability to transfer or park calls from a common area phone, you can create a voice policy that
prohibits call transfers and call parking, and then assign that policy to the common area phone. (Or, more correctly,
to the contact object that represents the common area phone.) This command assigns the voice policy
CommonAreaPhoneVoicePolicy to all your common area phones:
Get-CsCommonAreaPhone | Grant-CsVoicePolicy -PolicyName "CommonAreaPhoneVoicePolicy"

The Set-CsCommonAreaPhone cmdlet provides a way for you to modify the properties of the contact objects
associated with common area phones. Among other things, you can change the contact's Active Directory display
name or the line Uniform Resource Identifier (URI) associated with the phone. You can also use the Enabled
parameter to enable and disable the account for use with Skype for Business Server.
In addition, you can configure "hotdesking" for common area phones by using the CsClientPolicy cmdlets. When a
phone is hotdesked, users can log on to the phone using their Skype for Business Server credentials. Among other
things, this gives users easy access to their contacts. See the help topic for the Set-CsClientPolicy cmdlet for more
information.

Examples
-------------------------- Example 1 ------------------------

Get-CsCommonAreaPhone -Filter {LineUri -eq "tel:+14255556710"} | Set-CsCommonAreaPhone -DisplayName "Employee


Lounge"

Example 1 modifies the Active Directory display name for the common area phone with the phone number 1-425-
555-6710. To do this, the Get-CsCommonAreaPhone cmdlet is first called along with the Filter parameter; the filter
value {LineUri -eq "tel:+14255556710"} limits the returned data to the common area phone where the LineUri
property is equal to tel:+14255556710. The returned object is then piped to the Set-CsCommonAreaPhone cmdlet,
which sets the value of the DisplayName property to "Employee Lounge".
-------------------------- Example 2 ------------------------

Get-CsCommonAreaPhone | Set-CsCommonAreaPhone -Enabled $True

The command shown in Example 2 enables all the common area phones currently configured for use in the
organization. To carry out this task, the command calls the Get-CsCommonAreaPhone cmdlet without any parameters
in order to return a collection of all the common area phones. This collection is then piped to the
Set-CsCommonAreaPhone cmdlet, which takes each item in the collection and sets the Enabled property to True.

-------------------------- Example 3 ------------------------

Get-CsCommonAreaPhone -Filter {Description -eq $Null} | Set-CsCommonAreaPhone -Description "Common area phone"

Example 3 adds a generic description to all the common area phones that do not have a value assigned to the
Description property. To do this, the Get-CsCommonAreaPhone cmdlet is called along with the Filter parameter; the
filter value {Description -eq $Null} ensures that the only items returned are common area phones where the
Description property is equal to a null value. This filtered collection is then piped to the Set-CsCommonAreaPhone
cmdlet, which assigns the generic description "Common area phone" to each item in the collection.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables you to modify the Active Directory description attribute for the common area phone. This provides a way
to supply additional information about the phone; for example, you might provide details about who to contact in
case of problems with the phone.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Enables you to modify the Active Directory display name of the common area phone.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
Phone number as displayed in Skype for Business. The DisplayNumber property can be formatted any way you
prefer; for example 1-800-555-1234; 1-(800)-555-1234; 1.800.555.1234 and so on. When choosing a display
number, keep in mind that this number will be shown on the display screen of the common area phone only if the
number can be normalized. (Normalization is the process of translating number strings into a standard phone
number format.) If a normalization rule does not exist for the phone number format used when configuring the
display number, the display screen of the common area phone will show the value of the LineUri property rather
than the value of the DisplayNumber property.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DomainController
Enables you to connect to the specified domain controller in order to modify contact information. To connect to a
particular domain controller, include the DomainController parameter followed by the computer name (for
example, atl-mcs-001) or its fully qualified domain name (FQDN ); for example: atl-mcs-001.litwareinc.com.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether or not the contact object for the common area phone has been enabled for Skype for Business
Server.
If you disable a contact by using the Enabled parameter, the information associated with that account (including
assigned policies and whether or not the contact is enabled for Enterprise Voice, remote call control and/or voice
mail integration) is retained. If you later re-enable the account by using the Enabled parameter, the associated
account information will be restored.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnterpriseVoiceEnabled
Indicates whether the contact object for the common area phone has been enabled for Enterprise Voice, the Voice
over Internet Protocol (VoIP ) solution offered by Microsoft. With Enterprise Voice, telephone calls can be made
using the Internet rather than using the standard telephone network.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExchangeArchivingPolicy
Indicates where the contact's instant messaging sessions are archived. Allowed values are:
Uninitialized
UseLyncArchivingPolicy
ArchivingToExchange
NoArchiving

Type: ExchangeArchivingPolicyOptionsEnum
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the common area phone. Common area phones are identified using the Active Directory
distinguished name of the associated contact object. By default, common area phones use a globally unique
identifier (GUID ) as their common name; that means phones will typically have an Identity similar to this: CN=
{ce84964a-c4da-4622-ad34-c54ff3ed361f},OU=Redmond,DC=Litwareinc,DC=com. Because of that you might
find it easier to retrieve common area phones by using the Get-CsCommonAreaPhone cmdlet, and then piping the
returned objects to the Set-CsCommonAreaPhone cmdlet.

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False
-LineURI
Phone number for the common area phone. The line Uniform Resource Identifier (URI) should be specified using
the E.164 format and be prefixed by the "TEL:" prefix. For example: TEL:+14255551297. Any extension number
should be added to the end of the line URI; for example: TEL:+14255551297;ext=51297.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Returns an object representing the common area phone.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
Unique identifier that allows the common area phone to communicate with SIP devices such as Skype for Business.
The SIP address must be prefaced by the prefix sip: and include a valid SIP domain. For example:
sip:bldg14lobby@litwareinc.com.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact object.

Outputs
By default, the Set-CsCommonAreaPhone cmdlet does not return any objects or values. However, if you include the
PassThru parameter, the cmdlet will return instances of the
Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact object.

Related Links
Get-CsCommonAreaPhone
Move-CsCommonAreaPhone
New -CsCommonAreaPhone
Remove-CsCommonAreaPhone
minutes to read • Edit Online

Set-CsConferenceDisclaimer
In ths Article

Modifies the property values of the conference disclaimer used in your organization. The conference disclaimer is a
message displayed to users who join a conference by using a hyperlink (for example, by pasting a link to the
conference into a browser such as Windows Internet Explorer). This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsConferenceDisclaimer [[-Identity] <XdsIdentity>] [-Body <String>] [-Header <String>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Set-CsConferenceDisclaimer [-Instance <PSObject>] [-Body <String>] [-Header <String>] [-Force] [-WhatIf]


[-Confirm] [<CommonParameters>]

Description
When configuring conferencing settings, administrators can include a legal disclaimer to display to participants
when they join conferences hosted by Skype for Business Server. This disclaimer is typically used to explain legal
and intellectual property laws regarding the conference. Users cannot join the conference without agreeing to the
stipulations set forth in the disclaimer. Note, however, that this disclaimer is only shown to users who join a
conference by using a hyperlink.
Skype for Business Server allows for a single, global instance of the conference disclaimer. The
Set-CsConferenceDisclaimer cmdlet enables you to modify the conference disclaimer used in your organization.

Examples
-------------------------- Example 1 ------------------------

Set-CsConferenceDisclaimer -Header "Litwareinc.com Online Conference" -Body "Important note: Conferencing


proceedings are recorded and archived."

The command shown in Example 1 modifies both the Header and Body properties for your organization's
conference disclaimer. Because you can have only one such disclaimer, you do not need to specify the Identity when
running the Set-CsConferenceDisclaimer cmdlet.

Parameters
-Body
Contents of the conference disclaimer.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Header
Title given the conference disclaimer.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the conference disclaimer. Because you can only have a single, global instance of the conference
disclaimer, you do not need to specify an Identity when calling the Set-CsConferenceDisclaimer cmdlet. However,
you can use the following syntax to reference the global disclaimer: -Identity global .

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.
Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConferenceDisclaimer object. The
Set-CsConferenceDisclaimer cmdlet accepts pipelined input of conference disclaimer objects.

Outputs
The Set-CsConferenceDisclaimer cmdlet does not return any objects or values. Instead, the cmdlet modifies existing
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConferenceDisclaimer object.

Related Links
Get-CsConferenceDisclaimer
Remove-CsConferenceDisclaimer
minutes to read • Edit Online

Set-CsConferenceServer
In ths Article

Modifies the properties of an A/V Conferencing Server (also known as a Conference Server). The Conference
Server provides audio and video (A/V ) capabilities to your conferences. This cmdlet was introduced in Lync Server
2010.

Syntax
Set-CsConferenceServer [[-Identity] <XdsGlobalRelativeIdentity>] [-AppSharingSipPort <UInt16>]
[-AppSharingPortCount <UInt16>] [-AppSharingPortStart <UInt16>] [-AudioPortCount <UInt16>]
[-AudioPortStart <UInt16>] [-AudioVideoSipPort <UInt16>] [-DataPsomPort <UInt16>] [-EdgeServer <String>]
[-ImSipPort <UInt16>] [-MeetingPsomPort <UInt16>] [-PhoneSipPort <UInt16>] [-VideoPortCount <UInt16>]
[-VideoPortStart <UInt16>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Conference Servers (also known as A/V Conferencing Servers) are used to provide audio and video capabilities to
conferences. In turn, the Set-CsConferenceServer cmdlet can be used to modify the properties of these servers; in
particular, you can specify which ports are used for such things as audio traffic, video traffic and application sharing.
You can also use the Set-CsConferenceServer cmdlet to associate a given server with a Edge Server or Archiving
Server.

Examples
-------------------------- Example 1 ------------------------

Set-CsConferenceServer -Identity "ConferencingServer:atl-cs-001.litwareinc.com" -ImSipPort 5075

The command shown in Example 1 modifies the instant messaging SIP port for the Conference Server
ConferencingServer:atl-cs-001.litwareinc.com. In this example, the port is changed to 5075.
-------------------------- Example 2 ------------------------

Get-CsService -ConferencingServer | ForEach-Object {Set-CsConferenceServer -Identity $_.Identity -ImSipPort


5075}

Example 2 is a variation of the command shown in Example 1; in this case, however, the instant messaging SIP port
is changed for all the Conference Servers in the organization. To do this, the command first uses the Get-CsService
cmdlet and the ConferencingServer parameter to return a collection of all the Conferencing Servers currently in
use. That collection is then piped to the ForEach-Object cmdlet, which runs the Set-CsConferenceServer cmdlet
against each server in the collection, setting the ImSipPort to 5075.

Parameters
-AppSharingPortCount
Total number of ports allocated for application sharing. The actual ports to be opened will start with the value
configured for AppSharingPortStart and continue through the number of ports specified for AppSharingPortCount.
For example, if the AppSharingPortStart is set to 60000 and the AppSharingPortCount is set to 100, then ports
60000 through 60099 will be used for application sharing.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AppSharingPortStart
First port in the range of media ports allocated for application sharing. For example: -AppSharingPortStart 60000 .

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AppSharingSipPort
SIP port used to listen for requests for application sharing. The ports actually used for application sharing are
configured using AppSharingPortStart and AppSharingPortCount.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioPortCount
Total number of ports allocated for sending and receiving audio traffic. The actual ports to be opened will start with
the value configured for AudioPortStart and continue through the number of ports specified for AudioPortCount.
For example, if the AudioPortStart is set to 60000 and the AudioPortCount is set to 100, then ports 60000 through
60099 will be used for audio traffic.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioPortStart
First port in the range of media ports allocated for sending and receiving audio traffic. For example:
-AudioPortStart 60000 .
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudioVideoSipPort
SIP port used to listen for incoming requests for audio and video service. The ports actually used for audio and
video traffic are configured using AudioPortCount, AudioPortStart, VideoPortCount and VideoPortStart.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DataPsomPort
Data port used by the Persistent Shared Object Model (PSOM ) protocol.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EdgeServer
Service location of the Edge Server to be associated with the Conference Server. For example:
-EdgeServer "EdgeServer:atl-edge-001.litwareinc.com" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service location of the Conference Server to be modified. For example:
-Identity "ConferencingServer:atl-cs-001.litwareinc.com" .

Note that you can leave off the prefix "ConferencingServer:" when specifying a Conference Server. For example:
-Identity "atl-cs-001.litwareinc.com" .

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ImSipPort
Port used for instant messaging traffic.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MeetingPsomPort
Port used for the Persistent Shared Object Model (PSOM ) protocol, a Microsoft protocol used for conferences.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PhoneSipPort
Port used for telephony traffic.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoPortCount
Total number of ports allocated for sending and receiving video traffic. The actual ports to be opened will start with
the value configured for VideoPortStart and continue through the number of ports specified for VideoPortCount.
For example, if the VideoPortStart is set to 60000 and the VideoPortCount is set to 100, then ports 60000 through
60099 will be used for video traffic.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-VideoPortStart
First port in the range of ports allocated for sending and receiving video traffic. For example:
-VideoPortStart 60000 .

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Set-CsConferenceServer cmdlet does not accept pipelined input.

Outputs
The Set-CsConferenceServer cmdlet does not return any objects or values. Instead, the cmdlet modifies existing
instances of the Microsoft.Rtc.Management.Xds.DisplayConferenceServer object.

Related Links
Get-CsConferencingConfiguration
Get-CsService
minutes to read • Edit Online

Set-CsConferencingConfiguration
In ths Article

Modifies an existing collection of conferencing configuration settings. Conference settings determine such things as
the maximum allowed size for meeting content and handouts; the content grace period (that is, the amount of time
content will be stored before being deleted) and the URLs for the internal and external downloads of the supported
client. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsConferencingConfiguration [[-Identity] <XdsIdentity>] [-ClientAppSharingPort <UInt16>]
[-ClientAppSharingPortRange <UInt32>] [-ClientAudioPort <UInt16>] [-ClientAudioPortRange <UInt32>]
[-ClientFileTransferPort <UInt16>] [-ClientFileTransferPortRange <UInt32>] [-ClientMediaPort <UInt16>]
[-ClientMediaPortRange <UInt32>] [-ClientMediaPortRangeEnabled <Boolean>] [-ClientSipDynamicPort <UInt16>]
[-ClientSipDynamicPortRange <UInt32>] [-ClientVideoPort <UInt16>] [-ClientVideoPortRange <UInt32>]
[-ConsoleDownloadExternalUrl <String>] [-ConsoleDownloadInternalUrl <String>] [-ContentGracePeriod <TimeSpan>]
[-HelpdeskExternalUrl <String>] [-HelpdeskInternalUrl <String>] [-MaxBandwidthPerAppSharingServiceMb <UInt64>]
[-MaxContentStorageMb <UInt16>] [-Organization <String>] [-Force] [-WhatIf] [-Confirm]
[-MaxUploadFileSizeMb <UInt16>] [-CloudPollServicePrimaryUrl <String>]
[-CloudPollServiceSecondaryUrl <String>] [<CommonParameters>]

Set-CsConferencingConfiguration [-Instance <PSObject>] [-ClientAppSharingPort <UInt16>]


[-ClientAppSharingPortRange <UInt32>] [-ClientAudioPort <UInt16>] [-ClientAudioPortRange <UInt32>]
[-ClientFileTransferPort <UInt16>] [-ClientFileTransferPortRange <UInt32>] [-ClientMediaPort <UInt16>]
[-ClientMediaPortRange <UInt32>] [-ClientMediaPortRangeEnabled <Boolean>] [-ClientSipDynamicPort <UInt16>]
[-ClientSipDynamicPortRange <UInt32>] [-ClientVideoPort <UInt16>] [-ClientVideoPortRange <UInt32>]
[-ConsoleDownloadExternalUrl <String>] [-ConsoleDownloadInternalUrl <String>] [-ContentGracePeriod <TimeSpan>]
[-HelpdeskExternalUrl <String>] [-HelpdeskInternalUrl <String>] [-MaxBandwidthPerAppSharingServiceMb <UInt64>]
[-MaxContentStorageMb <UInt16>] [-Organization <String>] [-Force] [-WhatIf] [-Confirm]
[-MaxUploadFileSizeMb <UInt16>] [-CloudPollServicePrimaryUrl <String>]
[-CloudPollServiceSecondaryUrl <String>] [<CommonParameters>]

Description
For conferences, management and administration is split between two sets of cmdlets. If you want to manage the
things users can and cannot do (for example, can users invite anonymous participants to join a conference, are
users allowed to offer application sharing in a conference, or are users allowed to transfer files within a conference),
then you need to use the CsConferencingPolicy cmdlets.
In addition to managing user activities, administrators need to manage the Web Conferencing service. For example,
administrators need to be able to do such things as specify the maximum amount of content storage allotted to a
single conference and to specify the grace period before that conference content is automatically deleted. They also
need to be able to specify the ports used for activities such as application sharing and file transfer.
These latter activities can be managed by using the CsConferencingConfiguration cmdlets. These cmdlets enable
you to manage the actual servers themselves. The CsConferencingConfiguration cmdlets (which can be applied to
the global, the site, and the service scopes) aren't used to specify whether or not a user can share applications
during a conference; if application sharing is allowed, however, these cmdlets enable you to indicate which ports
should be used for that activity. Likewise, the cmdlets enable you to specify such things as storage limits and
expiration periods, as well as pointers to internal and external URLs where users can obtain conferencing help and
resources.
When you install Skype for Business Server, the system provides you with a single collection of conferencing
configuration settings (the global collection). If you need to create custom settings for a site or service, you can do
so using the New-CsConferencingConfiguration cmdlet. After these custom settings have been created, you can
modify any of them (or modify the global collection) by using the Set-CsConferencingConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

Set-CsConferencingConfiguration -Identity global -Organization Litwareinc

In Example 1, the Set-CsConferencingConfiguration cmdlet modifies the global instance of conferencing


configuration settings; in this case, the command sets the value of the Organization property to Litwareinc. This is
done by including the Organization parameter followed by the organization name: Litwareinc.
-------------------------- Example 2 --------------------------

Get-CsConferencingConfiguration | Set-CsConferencingConfiguration -Organization Litwareinc

Example 2 is an extension of the first example; in this case, the command modifies the value of the Organization
property for each collection of conferencing configuration settings currently in use. To do this the command first
uses the Get-CsConferencingConfiguration cmdlet to retrieve a collection of all the conferencing configuration
settings. This collection is then piped to the Set-CsConferencingConfiguration cmdlet, which takes each item in the
collection and changes the value of the Organization property to Litwareinc.
-------------------------- Example 3 --------------------------

Get-CsConferencingConfiguration -Filter site:* | Set-CsConferencingConfiguration -MaxContentStorageMb 50

The command shown in Example 3 changes the value of the MaxContentStorageMb property for all the
conferencing configuration settings applied at the site scope. To do this, the command first calls the
Get-CsConferencingConfiguration cmdlet along with the Filter parameter; the filter value "site:*" ensures that only
settings where the Identity begins with the characters "site:" are returned. The filtered collection is then piped to the
Set-CsConferencingConfiguration cmdlet, which changes the MaxContentStorageMb property value for each item
in the collection to 50.
-------------------------- Example 4 --------------------------

Get-CsConferencingConfiguration | Where-Object {$_.MaxContentStorageMb -gt 100} | Set-


CsConferencingConfiguration -MaxContentStorageMB 100

In Example 4, all the conferencing configuration settings that allow for content storage of more than 100
megabytes are modified to set the maximum allowed content storage to 100 megabytes. To carry out this task, the
command first calls the Get-CsConferencingConfiguration cmdlet without any parameters in order to return a
collection of all the conferencing configuration settings currently in use. This collection is then piped to the
Where-Object cmdlet, which picks out those settings where the MaxContentStorageMb property is greater than
100. This filtered collection is then piped to the Set-CsConferencingConfiguration cmdlet, which takes each item in
the collection and sets the value of the MaxContentStorageMb property to 100.
-------------------------- Example 5 --------------------------

Set-CsConferencingConfiguration -Identity site:Redmond -ContentGracePeriod "22:00:00"

Example 5 retrieves the conferencing configuration settings for the Redmond site (-Identity site:Redmond) and
modifies the value of the ContentGracePeriod property, setting the grace period to 22 hours (22 hours: 00 minutes:
00 seconds).
-------------------------- Example 6 --------------------------

Get-CsConferencingConfiguration | Where-Object {$_.Organization -ne "Fabrikam"} | Set-


CsConferencingConfiguration -Organization Litwareinc

In Example 6, all the conferencing configuration settings that do not list Fabrikam as the Organization are modified;
in particular, all these settings are assigned Litwareinc as the new organization. To accomplish this task, the
command first calls the Get-CsConferencingConfiguration cmdlet without any parameters; this returns a collection
of all the conferencing configuration settings currently in use in the organization. This collection is then piped to the
Where-Object cmdlet, which selects all the settings where the Organization property is not equal to (-ne) Fabrikam.
The filtered collection is then piped to the Set-CsConferencingConfiguration cmdlet; the
Set-CsConferencingConfiguration cmdlet takes each item in the collection and changes the value of the
Organization property to Litwareinc.

Parameters
-ClientAppSharingPort
Represents the starting port number used for application sharing. The ClientAppSharingPort must be a value port
number between 1024 and 65535, inclusive. The default value is 5350.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientAppSharingPortRange
Indicates the total number of ports available for application sharing. (The default value is 40.) To determine the
actual ports used for application sharing, use this value and the ClientAppSharingPort value. For example, if
ClientAppSharingPort is set to 5350 and ClientAppSharingPortRange is set to 3, then the following 3 ports are
available for application sharing: 5350; 5351; 5352.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientAudioPort
Represents the starting port number used for client audio. The ClientAudioPort must be a value port number
between 1024 and 65535, inclusive. The default value is 5350.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientAudioPortRange
Indicates the total number of ports available for client audio. (The default value is 40.) To determine the actual ports
used for client audio, use this value and the ClientAudioPort value. For example, if ClientAudioPort is set to 5350
and ClientAudioPortRange is set to 3, then the following three ports are available for client audio: 5350; 5351;
5352.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientFileTransferPort
Represents the starting port number used for file transfers. The ClientFileTransferPort must be a value port number
between 1024 and 65535, inclusive. The default value is 5350.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientFileTransferPortRange
Indicates the total number of ports available for file transfers. (The default value is 40.) To determine the actual
ports used for file transfers, use this value and the ClientFileTransferPort value. For example, if
ClientFileTransferPort is set to 5350 and ClientFileTransferPortRange is set to 3, then the following three ports are
available for file transfers: 5350; 5351; 5352.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientMediaPort
Represents the starting port number used for client media. Use this parameter for Microsoft Office Communicator
2007 R2 clients. The ClientMediaPort must be a value port number between 1024 and 65535, inclusive. The default
value is 5350.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientMediaPortRange
Indicates the total number of ports available for client media. (The default value is 40.) Use this parameter for
Office Communicator 2007 R2 clients. To determine the actual ports used for client media, use this value and the
ClientMediaPort value. For example, if ClientMediaPort is set to 5350 and ClientMediaPortRange is set to 3, then
the following three ports are available for client media: 5350; 5351; 5352.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientMediaPortRangeEnabled
When set to True, clients will use the specified port range for media traffic. When set to False (the default value) any
available port (from port 1024 through port 65535) will be used to accommodate media traffic.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientSipDynamicPort
Represents the starting port number used for SIP traffic. The ClientSipDynamicPort must be a value port number
between 1024 and 65535, inclusive. The default value is 7100.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientSipDynamicPortRange
Indicates the total number of ports available for SIP traffic. (The default value is 3.) To determine the actual ports
used for SIP traffic, use this value and the ClientSipDynamicPort value. For example, if ClientSipDynamicPort is set
to 7100 and ClientSipDynamicPortRange is set to 3, then the following 3 ports are available for client media: 7100;
7101; 7102.
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientVideoPort
Represents the starting port number used for client video. The ClientVideoPort must be a value port number
between 1024 and 65535, inclusive. The default value is 5350.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ClientVideoPortRange
Indicates the total number of ports available for client video. (The default value is 40.) To determine the actual ports
used for client video, use this value and the ClientVideoPort value. For example, if ClientVideoPort is set to 5350
and ClientVideoPortRange is set to 3, then the following three ports are available for client video: 5350; 5351;
5352.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CloudPollServicePrimaryUrl
This parameter is not currently used with Skype for Business Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CloudPollServiceSecondaryUrl
This parameter is not currently used with Skype for Business Server.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConsoleDownloadExternalUrl
URL where external users can download a supported client such as Skype for Business. Note that this setting
applies only to legacy clients (such as Microsoft Office Communicator 2007 R2) that are logging on to a Skype for
Business Server pool.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ConsoleDownloadInternalUrl
URL where internal users can download a supported client such as Skype for Business. Note that this setting
applies only to legacy clients (such as Microsoft Office Communicator 2007 R2) that are logging on to a Skype for
Business Server pool.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ContentGracePeriod
Indicates how long conference content will remain on the server following the end of the conference. The
ContentGracePeriod must be specified using the format Days.Hours:Minutes:Seconds. For example, to set the
content grace period to 30 days, use this syntax: -ContentGracePeriod 30.00:00:00 .

The content grace period can be set to any value between 30 minutes (00:30:00) and 180 days (180.00:00:00). The
default value is 15 days (15.00:00:00).

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpdeskExternalUrl
URL where external users who click Help during a conference will be directed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpdeskInternalUrl
URL where internal users who click Help during a conference will be directed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the collection of conferencing configuration settings to be modified. To refer to the global
collection, use this syntax: -Identity global . To refer to a collection configured at the site scope, use syntax similar
to this: -Identity "site:Redmond" . To refer to a collection at the service scope, use syntax like the following:
-Identity "service:ConferencingServer:atl-cs-001.litwareinc.com" . The Web Conferencing service is the only
service that can host these configuration settings.
If this parameter is not specified, then the Set-CsConferencingConfiguration cmdlet will automatically modify the
global settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.
Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MaxBandwidthPerAppSharingServiceMb
Indicates the maximum amount of bandwidth (in megabytes) set aside for the Application Sharing Conferencing
service. MaxBandwidthPerAppSharingServiceMb can be set to any integer value between 50 and 100000,
inclusive. The default value is 375 megabytes.

Type: UInt64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxContentStorageMb
Maximum amount of file space (in megabytes) allowed for the storage of meeting content. MaxContentStorageMb
can be set to any integer value between 50 and 1024 (1 gigabyte), inclusive. The default value is 500 megabytes.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxUploadFileSizeMb
Maximum total size of the files (including handouts and PowerPoint slides) that can be used in a given conference.
This setting is typically used when conference content is being archived in Microsoft Exchange Server: by setting a
maximum upload file size you can ensure that the content used in the conference (and thus the content which must
be archived) does not exceed the maximum file size configured for Microsoft Exchange. The default value is 500
megabytes.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Organization
Name of the organization hosting the conference.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings object. The
Set-CsConferencingConfiguration cmdlet accepts pipelined instances of the conferencing configuration object.

Outputs
The Set-CsConferencingConfiguration cmdlet does not return a value or object. Instead, the cmdlet configures
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings object.

Related Links
Get-CsConferencingConfiguration
New -CsConferencingConfiguration
Remove-CsConferencingConfiguration
minutes to read • Edit Online

Set-CsConferencingPolicy
In ths Article

Modifies an existing conferencing policy. Conferencing policies determine the features and capabilities that can be
used in a conference; this includes everything from whether or not the conference can include IP audio and video to
the maximum number of people who can attend a meeting. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsConferencingPolicy [-Tenant <Guid>] [-AllowIPAudio <Boolean>] [-AllowIPVideo <Boolean>]
[-AllowMultiView <Boolean>] [-Description <String>] [-AllowParticipantControl <Boolean>]
[-AllowAnnotations <Boolean>] [-DisablePowerPointAnnotations <Boolean>]
[-AllowUserToScheduleMeetingsWithAppSharing <Boolean>] [-ApplicationSharingMode <String>]
[-AllowNonEnterpriseVoiceUsersToDialOut <Boolean>] [-AllowAnonymousUsersToDialOut <Boolean>]
[-AllowAnonymousParticipantsInMeetings <Boolean>] [-AllowFederatedParticipantJoinAsSameEnterprise <Boolean>]
[-AllowExternalUsersToSaveContent <Boolean>] [-AllowExternalUserControl <Boolean>]
[-AllowExternalUsersToRecordMeeting <Boolean>] [-AllowPolls <Boolean>] [-AllowSharedNotes <Boolean>]
[-AllowQandA <Boolean>] [-AllowOfficeContent <Boolean>] [-EnableDialInConferencing <Boolean>]
[-EnableAppDesktopSharing <EnableAppDesktopSharing>] [-AllowConferenceRecording <Boolean>]
[-EnableP2PRecording <Boolean>] [-EnableFileTransfer <Boolean>] [-EnableP2PFileTransfer <Boolean>]
[-EnableP2PVideo <Boolean>] [-AllowLargeMeetings <Boolean>]
[-EnableOnlineMeetingPromptForLyncResources <Boolean>] [-EnableDataCollaboration <Boolean>]
[-MaxVideoConferenceResolution <MaxVideoConferenceResolution>] [-MaxMeetingSize <UInt32>]
[-AudioBitRateKb <UInt32>] [-VideoBitRateKb <Int64>] [-AppSharingBitRateKb <Int64>]
[-FileTransferBitRateKb <Int64>] [-TotalReceiveVideoBitRateKb <Int64>] [-EnableMultiViewJoin <Boolean>]
[-CloudRecordingServiceSupport <CloudRecordingServiceSupport>] [-EnableReliableConferenceDeletion <Boolean>]
[[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsConferencingPolicy [-Tenant <Guid>] [-AllowIPAudio <Boolean>] [-AllowIPVideo <Boolean>]


[-AllowMultiView <Boolean>] [-Description <String>] [-AllowParticipantControl <Boolean>]
[-AllowAnnotations <Boolean>] [-DisablePowerPointAnnotations <Boolean>]
[-AllowUserToScheduleMeetingsWithAppSharing <Boolean>] [-ApplicationSharingMode <String>]
[-AllowNonEnterpriseVoiceUsersToDialOut <Boolean>] [-AllowAnonymousUsersToDialOut <Boolean>]
[-AllowAnonymousParticipantsInMeetings <Boolean>] [-AllowFederatedParticipantJoinAsSameEnterprise <Boolean>]
[-AllowExternalUsersToSaveContent <Boolean>] [-AllowExternalUserControl <Boolean>]
[-AllowExternalUsersToRecordMeeting <Boolean>] [-AllowPolls <Boolean>] [-AllowSharedNotes <Boolean>]
[-AllowQandA <Boolean>] [-AllowOfficeContent <Boolean>] [-EnableDialInConferencing <Boolean>]
[-EnableAppDesktopSharing <EnableAppDesktopSharing>] [-AllowConferenceRecording <Boolean>]
[-EnableP2PRecording <Boolean>] [-EnableFileTransfer <Boolean>] [-EnableP2PFileTransfer <Boolean>]
[-EnableP2PVideo <Boolean>] [-AllowLargeMeetings <Boolean>]
[-EnableOnlineMeetingPromptForLyncResources <Boolean>] [-EnableDataCollaboration <Boolean>]
[-MaxVideoConferenceResolution <MaxVideoConferenceResolution>] [-MaxMeetingSize <UInt32>]
[-AudioBitRateKb <UInt32>] [-VideoBitRateKb <Int64>] [-AppSharingBitRateKb <Int64>]
[-FileTransferBitRateKb <Int64>] [-TotalReceiveVideoBitRateKb <Int64>] [-EnableMultiViewJoin <Boolean>]
[-CloudRecordingServiceSupport <CloudRecordingServiceSupport>] [-EnableReliableConferenceDeletion <Boolean>]
[-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
Conferencing is an important part of Skype for Business Server: conferencing enables groups of users to come
together online to view slides and video, share applications, exchange files and otherwise communicate and
collaborate.
It's important for administrators to maintain control over conferences and conference settings. In some cases, there
might be security concerns: by default, anyone, including unauthenticated users, can participate in meetings and
save any of the slides or handouts distributed during those meetings. In other cases, there might be bandwidth
concerns: having a multitude of simultaneous meetings, each involving hundreds of participants and each featuring
video feeds and file sharing, has the potential to cause problems with your network. In addition, there might be
occasional legal concerns. For example, by default meeting participants are allowed to make annotations on shared
content; however, these annotations are not saved when the meeting is archived. If your organization is required to
keep a record of all electronic communication, you might want to disable annotations.
Of course, needing to manage conferencing settings is one thing; actually managing these settings is another. In
Skype for Business Server conferences are managed by using conferencing policies. (In previous versions of the
software, these were known as meeting policies.) As noted, conferencing policies determine the features and
capabilities that can be used in a conference, including everything from whether or not the conference can include
IP audio and video to the maximum number of people who can attend a meeting. Conferencing policies can be
configured at the global scope; at the site scope; or at the per-user scope. This provides administrators with
enormous flexibility when it comes to deciding which capabilities will be made available to which users.
Policy property values can be configured at the time a policy is created. In addition to that, you can, at any time, use
the Set-CsConferencingPolicy cmdlet to modify the property values of an existing policy.
The following parameters are not applicable to Skype for Business Online: ApplicationSharingMode, AsJob,
AudioBitRateKb, Description, EnableMultiViewJoin, EnableOnlineMeetingPromptForLyncResources,
EnableReliableConferenceDeletion, FileTransferBitRateKb, Force, Identity, Instance, MaxMeetingSize,
MaxVideoConferenceResolution, PipelineVariable, Tenant, and TotalReceiveVideoBitRateKb

Examples
-------------------------- Example 1 --------------------------

Set-CsConferencingPolicy -Identity SalesConferencingPolicy -AllowConferenceRecording $False

The command shown in Example 1 modifies a property value of the conferencing policy SalesConferencingPolicy;
in particular, the command sets the value of the AllowConferenceRecording property to False. To do this, the
Set-CsConferencingPolicy cmdlet is called along with the Identity parameter and the AllowConferenceRecording
parameter.
-------------------------- Example 2 --------------------------

Get-CsConferencingPolicy | Set-CsConferencingPolicy -AllowAnonymousParticipantsInMeetings $False -


EnableDialInConferencing $False

In Example 2, the same two property values -- AllowAnonymousParticipantsInMeetings and


EnableDialInConferencing -- are modified for all the conferencing policies configured for use in the organization. To
do this, the command first uses the Get-CsConferencingPolicy cmdlet to return a collection of all the available
conferencing policies. That collection is then piped to the Set-CsConferencingPolicy cmdlet, which sets the value of
both the AllowAnonymousParticipantsInMeetings and EnableDialInConferencing properties to False for each
policy in the collection.
-------------------------- Example 3 --------------------------

Get-CsConferencingPolicy -Filter "site:*" | Set-CsConferencingPolicy -MaxVideoConferenceResolution CIF


The command shown in Example 3 modifies the MaxVideoConferenceResolution property for all the conferencing
policies that have been configured at the site scope. To accomplish this task the command first calls the
Get-CsConferencingPolicy cmdlet and the Filter parameter; the filter value "site:*" restricts the returned data to
policies configured at the site scope. This filtered collection is then piped to the Set-CsConferencingPolicy cmdlet,
which sets the MaxVideoConferenceResolution property for each policy in the collection to "CIF".
-------------------------- Example 4 --------------------------

Get-CsConferencingPolicy | Where-Object {$_.MaxMeetingSize -gt 100} | Set-CsConferencingPolicy -MaxMeetingSize


100

Example 4 retrieves all the policies where the maximum meeting size is greater than (-gt) 100 and then changes the
value of the associated property (MaxMeetingSize) to 100. To do this the command first calls the
Get-CsConferencingPolicy cmdlet to return a collection of all the conferencing policies configured for use in the
organization. That collection is then piped to the Where-Object cmdlet, which picks out only those policies that have
a MaxMeetingSize greater than 100. The filtered collection is then piped to the Set-CsConferencingPolicy cmdlet,
which takes each policy in the collection and sets the MaxMeetingSize property to 100.

Parameters
-AllowAnnotations
Indicates whether or not participants are allowed to make on-screen annotations on any content shared during the
meeting; in addition, this setting determines whether or not whiteboarding is allowed in the conference. The default
value is True.
Note that annotations are not archived along with other meeting content.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will include annotations. However, the user can participate in other conferences where
annotations are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowAnonymousParticipantsInMeetings
Indicates whether anonymous users are allowed to participate in the meeting. If set to False then only authenticated
users (that is, users logged on to your Active Directory Domain Services or the Active Directory of a federated
partner) are allowed to attend the meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow anonymous participants. However, the user can take part in other conferences
where anonymous participants are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AllowAnonymousUsersToDialOut
Indicates whether or not anonymous users (for example, unauthenticated users) are allowed to join a conference
using dial-out phoning. With dial-out phoning the conferencing server will telephone the user; when the user
answers the phone, he or she will be joined to the conference.
Note that dial-in conferencing is allowed even when this setting is False.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow anonymous participants to join the conference by dialing out; however, the user
can take part in other conferences where anonymous users can join by dialing out.
The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowConferenceRecording
Indicates whether users are allowed to record the meeting. The default value is False.
This setting applies to all users taking part in the conference.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExternalUserControl
Indicates whether external users (either anonymous users or federated) are allowed to take control of shared
applications or desktops. The default value is False.
This setting is enforced at the per-user level and for both conferences and peer-to-peer communication sessions.
That means that some users in a session might be allowed to give up control of a shared application or desktop to
an external user while other users might not be allowed to give up control.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExternalUsersToRecordMeeting
Indicates whether external users (either anonymous users or federated users) are allowed to record the meeting.
The default value is False.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow external users to record conferences. However, the user can take part in other
conferences where external users are allowed to record meetings.
Note that this setting takes effect only if the AllowConferenceRecording property is set to True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowExternalUsersToSaveContent
Indicates whether external users (that is, users not currently logged-on to your network) are allowed to save
handouts, slides and other meeting content. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow external users to save content. However, the user can take part in other
conferences where external users are allowed to save content.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowFederatedParticipantJoinAsSameEnterprise
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowIPAudio
Indicates whether or not computer audio is allowed in the meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow IP audio. However, the user can take part in other conferences where IP audio is
allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowIPVideo
Indicates whether or not computer video is allowed in the meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow IP video. However, the user can take part in other conferences where IP video is
allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowLargeMeetings
When set to True, all online meetings are treated as "large meeting." With a large meeting, restrictions are placed
on the number of notifications that are sent to participants as well as the size of the meeting roster that is
transmitted by default.
The default value is False ($False).

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowMultiView
When set to True (the default value) enables users to schedule conferences that allow multiview; that is, clients can
receive multiple video streams during a given conference. This setting applies to the user who organizes the
conference: if set to False, no conference created by a user affected by this policy can include multiview. However,
the user can participate in other conferences where multiview is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowNonEnterpriseVoiceUsersToDialOut
Indicates whether or users who have not been enabled for Enterprise Voice are allowed to join a conference using
dial-out phoning. With dial-out phoning the conferencing server will telephone the user; when the user answers the
phone, he or she will be joined to the conference.
Note that dial-in conferencing is allowed even when this setting is False.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow users who have not been enabled for Enterprise Voice to join the conference via
dial-out phoning. However, the user can take part in other conferences where users who have not been enabled for
Enterprise Voice can join via dial out.
The default value is False ($False).
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowOfficeContent
When set to False, prevents users from using Office content in their conferences.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowParticipantControl
Indicates whether or not meeting participants are allowed to take control of applications or desktops shared during
the meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow participant control. However, the user can take part in other conferences where
participant control is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowPolls
Indicates whether or not users are allowed to conduct online polls during a meeting. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow polls. However, the user can take part in other conferences where polls are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowQandA
When set to True (the default value) the user will be able to include the Questions and Answers Manager in any
online conference that he or she organizes. When set to False, the user will be prohibited from including Questions
and Answers Manager in any of his or her conferences.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow the use of the Questions and Answers Manager. However, the user can make use
of the Questions and Answers Manager in other conferences where polls are allowed.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowSharedNotes
When set to True (the default value) any open OneNote notebooks linked to the conference will automatically be
updated with information such as conference participants and details about content shared during the conference.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowUserToScheduleMeetingsWithAppSharing
Indicates whether or not users are allowed to organize meetings that include application sharing. The default value
is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow application sharing. However, the user can take part in other conferences where
application sharing is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ApplicationSharingMode
Determines the protocol used for screen sharing - VbSS vs RDP. This parameter is used only in SfB Server. To
disable VbSS, use the value "RDP".

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AppSharingBitRateKb
Bit rate (in kilobits) used for application sharing. The default value is 50000.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-AudioBitRateKb
Bit rate (in kilobits) used for audio transmissions. The audio bit rate can be any whole number between 20 and 200,
inclusive; the default value is 200.
This setting is enforced at the per-user level, and for both conferences and peer-to-peer communication sessions.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CloudRecordingServiceSupport
PARAMVALUE: NotSupported | Supported | Required

Type: CloudRecordingServiceSupport
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional text about the conferencing policy. For example, the Description might
indicate the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisablePowerPointAnnotations
When set to True ($True) users will not be able to add annotations to PowerPoint slides used in a conference.
However (depending on the value of the AllowAnnotations property), users will still have access to other
whiteboarding features. The default value is False, meaning that PowerPoint annotations are allowed.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableAppDesktopSharing
Indicates whether participants are allowed to share applications (or their desktop) during the course of a meeting.
Allowed values include:
Desktop. Users are allowed to share their entire desktop.
SingleApplication. Users are allowed to share a single application.
None. Users are not allowed to share applications or their desktop.
This setting is enforced at the per-user level. That means that some users in a conference might be allowed to share
their desktop or applications while other users in the same conference might not be allowed to do so.
The default value is Desktop.

Type: EnableAppDesktopSharing
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDataCollaboration
Indicates whether users can organize meetings that include data collaboration activities such as whiteboarding and
annotations.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow data collaboration. However, the user can take part in other conferences where
data collaboration is allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDialInConferencing
Indicates whether users are able to join the meeting by dialing in with a public switched telephone network (PSTN )
telephone. The default value is True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow dial-in conferencing. However, the user can take part in other conferences where
dial-in conferencing is allowed.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFileTransfer
Indicates whether file transfers to all the meeting participants are allowed during the meeting. The default value is
True.
This setting applies to the user who organizes the conference: if set to False, no conference created by a user
affected by this policy will allow file transfers. However, the user can take part in other conferences where file
transfers are allowed.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMultiViewJoin
When set to True (the default value) clients will attempt to join a conference using multiview (which allows the
client to receive multiple video streams during the conference). This parameter will be ignored if multiview is not
allowed in the conference being joined. This setting is enforced at the per-user level and for both conferences and
peer-to-peer communication sessions. That means that some users in a session might be allowed to have multiple
video streams while other users in the same conference might not.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOnlineMeetingPromptForLyncResources
When set to True, users will be prompted any time they schedule a meeting in Outlook that includes invitees (such
as a meeting room) that would benefit from having the meeting held online. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableP2PFileTransfer
Indicates whether peer-to-peer file transfers (that is, file transfers that do not involve all participants) are allowed
during the meeting. The default value is True ($True).
This setting is enforced at the per-user level. That means that one user in a peer-to-peer communication session
might be allowed to transfer files while the other user is not.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableP2PRecording
If True, users will be able to record peer-to-peer communication sessions. The default value is False.
This setting is enforced at the per-user level. That means that one user in a peer-to-peer communication session
might be allowed to record the session while the other user is not.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableP2PVideo
If True, users will be able to take part in peer-to-peer video communication sessions. The default value is False.
This setting is enforced at the per-user level. That means that one user in a peer-to-peer communication session
might be allowed to use video while the other user is not.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableReliableConferenceDeletion
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-FileTransferBitRateKb
Bit rate (in kilobits) used for file transfers. The default value is 50000.
This setting is enforced at the per-user level and for both conferences and peer-to-peer communication sessions.
Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the conferencing policy to be modified. Conferencing policies can be configured at the global,
site, or per-user scopes. To modify the global policy, use this syntax: -Identity global . To modify a site policy, use
syntax similar to this: -Identity site:Redmond . To modify a per-user policy, use syntax similar to this:
-Identity SalesConferencingPolicy .

Note that wildcards are not allowed when specifying an Identity. If you do not specify an Identity the
Set-CsConferencingPolicy cmdlet will automatically modify the global conferencing policy.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MaxMeetingSize
Indicates the maximum number of people who are allowed to attend a meeting. After the maximum number of
participants has been reached anyone else who tries to join the meeting will be turned away with the notice that the
meeting is full. The number of participants specified in this value can be any 32-bit whole number (any value
between 1 and 4,294,967,295), but the recommended size is between 2 and 250, inclusive; the default value is 250.
250 is the maximum for shared pool deployments, based on Microsoft testing. For information about supporting
meeting with more than 250 participants, see "Microsoft Lync Server 2010 Support for Large Meetings" at
http://go.microsoft.com/fwlink/p/?linkId=242073 (http://go.microsoft.com/fwlink/p/?linkId=242073).
This setting applies to the user who organizes the conference: no conference created by a user affected by this
policy will allow more than the specified number of participants. However, the user can take part in other
conferences where additional participants are allowed.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxVideoConferenceResolution
Indicates the maximum resolution for meeting video. Allowed values are:
CIF. Common Intermediate Format (CIF ) has a resolution of 352 pixels by 288 pixels.
VGA. VGA has a resolution of 640 pixels by 480 pixels.
The default value is VGA.

Type: MaxVideoConferenceResolution
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the conferencing
policy is being modified. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-TotalReceiveVideoBitRateKb
Indicates the maximum allowed bitrate (in kilobytes per second) for all the video used in a conference; that is, the
combined total for all the video streams. The default value is 50000 kilobits per second.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-VideoBitRateKb
Bit rate (in kilobits) used for video transmissions. The default value is 50000.
This setting is enforced at the per-user level and for both conferences and peer-to-peer communication sessions.

Type: Int64
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingPolicy object. The Set-CsConferencingPolicy
cmdlet accepts pipelined instances of the meeting policy object.

Outputs
The Set-CsConferencingPolicy cmdlet does not return a value or object. Instead, the cmdlet configures instances of
the Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingPolicy object.

Related Links
Get-CsConferencingPolicy
Grant-CsConferencingPolicy
New -CsConferencingPolicy
Remove-CsConferencingPolicy
minutes to read • Edit Online

Set-CsConfigurationStoreLocation
In ths Article

Sets the Active Directory service control point for the Central Management store. This cmdlet was introduced in
Lync Server 2010.

Syntax
Set-CsConfigurationStoreLocation -SqlServerFqdn <Fqdn> [-GlobalSettingsDomainController <Fqdn>]
[-SqlInstanceName <String>] [-SkipLookup] [-Force] [-Report <String>] [-WhatIf] [-Confirm]
[-MirrorSqlInstanceName <String>] [-MirrorSqlServerFqdn <Fqdn>] [<CommonParameters>]

Description
Active Directory Domain Services uses service control points (SCP ) to help computers locate services. For example,
when you install Skype for Business Server, a service control point is created that provides location information for
the Central Management store used to maintain Skype for Business Server data. Computers that need access to the
database connect to Active Directory and use the information contained in the SCP to help them locate the correct
computer and the correct instance of SQL Server.
As noted, when you install Skype for Business Server an SCP that for the Central Management store is
automatically created for you. If you need to move that database to another computer or if you need to move that
database to a different instance of SQL Server, then you will need to update the corresponding service control
point. That's a task that can be carried out by using the Set-CsConfigurationStoreLocation cmdlet. When you run it,
the Set-CsConfigurationStoreLocation cmdlet searches Active Directory for the computer specified by the SqlServer
parameter. The cmdlet then sets the store location to the FQDN of that computer.

Examples
-------------------------- Example 1 ------------------------

Set-CsConfigurationStoreLocation -SqlServerFqdn atl-sql-001.litwareinc.com -SqlInstanceName Rtc

The command shown in Example 1 sets the Active Directory service control point for the Skype for Business Server
Central Management store. In this example, the SCP points to the computer atl-sql-001.litwareinc.com and to the
SQL Server instance Rtc.
-------------------------- Example 2 ------------------------

Set-CsConfigurationStoreLocation -SqlServerFqdn atl-sql-001.litwareinc.com -SqlInstanceName Rtc -Report


C:\Logs\Store_Location.html

The command shown in Example 2 is a variation of the command shown in Example 1. This command also sets the
Active Directory SCP for the Skype for Business Server Central Management store. In addition, information
regarding the success (or failure) of this operation is logged to the file C:\Logs\Store_Location.html. This log is
generated by including the Report parameter followed by the full path to the log file.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-GlobalSettingsDomainController
FQDN of a domain controller where global settings are stored. If global settings are stored in the Active Directory
System container, then this parameter must point to the root domain controller. If global settings are stored in the
Configuration container, then any domain controller can be used and this parameter can be omitted.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MirrorSqlInstanceName
Name of the SQL Server instance containing the Skype for Business Server mirror database tables and data. For
example: -SqlInstanceName "rtc" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MirrorSqlServerFqdn
Fully qualified domain name (FQDN ) of the computer where the Central Management store mirror database has
been installed. For example: -SqlServer atl-mirror-001.litwareinc.com .
Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Report
Enables you to specify a file path for the log file created when the cmdlet runs. For example:
-Report "C:\Logs\ConfigurationStore.html"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkipLookup
If this parameter is included then the Set-CsConfigurationStoreLocation cmdlet will not verify that the specified
computer and the specified instance of SQL Server are available. Instead, it will simply change the service control
point.
If this parameter is not included then both the specified computer and the specified instance of SQL Server must be
available before the SCP will be changed.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlInstanceName
Name of the SQL Server instance containing the Skype for Business Server tables and data. For example:
-SqlInstanceName "rtc" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SqlServerFqdn
Fully qualified domain name (FQDN ) of the computer where the Central Management store has been installed. For
example: -SqlServer atl-sql-001.litwareinc.com .
Type: Fqdn
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Set-CsConfigurationStoreLocation cmdlet does not accept pipelined input.

Outputs
The Set-CsConfigurationStoreLocation cmdlet does not return any objects or values.

Related Links
Get-CsConfigurationStoreLocation
Remove-CsConfigurationStoreLocation
minutes to read • Edit Online

Set-CsConversationHistoryConfiguration
In ths Article

Modifies the conversation history configuration settings for the organization. These settings manage conversation
histories for mobile device users.

Syntax
Set-CsConversationHistoryConfiguration [[-Identity] <XdsIdentity>] [-Confirm]
[-EnableServerConversationHistory <Boolean>] [-Force] [-MaxContinuedConversationRetry <UInt32>] [-WhatIf]
[-EnableDisplayNameResolution <Boolean>] [<CommonParameters>]

Set-CsConversationHistoryConfiguration [-Confirm] [-EnableServerConversationHistory <Boolean>] [-Force]


[-Instance <PSObject>] [-MaxContinuedConversationRetry <UInt32>] [-WhatIf]
[-EnableDisplayNameResolution <Boolean>] [<CommonParameters>]

Description
Prior to the release of Skype for Business Server, conversation histories were stored exclusively in the Conversation
History folder, written by the Skype for Business rich client. Unfortunately, that proved to be a problem for mobile
device users, because the Conversation History folder is typically not replicated to mobile devices. With Skype for
Business Server, however, conversation histories, missed call notifications, and missed IM notifications can now be
stored on the server instead of in client mailboxes; this change makes these items readily available to mobile
devices. That also means that administrators can manage the server-side storage of these conversation histories by
using the conversation history configuration settings. Keep in mind that a single, global collection of these settings
is used to manage conversation history throughout your deployment; there is no option for creating additional
conversation history. However, the global settings can be modified by using the
Set-CsConversationHistoryConfiguration cmdlet.

Examples
-------------------------- Example 1 --------------------------

Set-CsConversationHistoryConfiguration -Identity "global" -EnableServerConversationHistory $True

In Example 1, the EnableServerConversationHistory property is set to True ($True). In turn, conversation histories,
missed call notifications, and missed IM notifications will be stored on the server rather than in client mailboxes.
-------------------------- Example 2 --------------------------

Set-CsConversationHistoryConfiguration -Identity "global" -CachedUserThreshold 2000000

The command shown in Example 2 modifies the global collection of conversation history configuration settings.
(Each deployment is limited to a single, global collection of conversation history configuration settings.) In this
example, the CachedUserThreshold property is set to 2000000.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDisplayNameResolution
PARAMVALUE: $true | $false

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableServerConversationHistory
When set to True ($True), conversation histories and related information will be stored on the server. The default
value is False, which means that this information is stored in user mailboxes.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique Identity of the conversation history configuration settings being modified. Because you can only have a
single, global instance of these settings, you do not need to specify an Identity when calling the
Set-CsConversationHistoryConfiguration cmdlet. However, you can still use the following syntax to reference the
global settings:
-Identity "global"
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MaxContinuedConversationRetry
Specifies the maximum number of times the Skype for Business Server will search for a previous conversation item
from Exchange to create a continued conversation. If the previous conversation is not found in the specified
number of attempts, a new conversation is created. Increasing this value will present more continued conversations,
but at the cost of decreased performance. This parameter should not be used except in situations where Exchange
connections are known to be unreliable. The default value is 3.

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
accepts pipelined instances of the
Set-CsConversationHistoryConfiguration
Microsoft.Rtc.Management.WritableConfig.Settings.ConversationHistory.ConversationHistorySettings object.

Outputs
None. Instead, Set-CsConversationHistoryConfiguration modifies instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.ConversationHistory.ConversationHistorySettings object.

Related Links
Get-CsConversationHistoryConfiguration
Remove-CsConversationHistoryConfiguration
minutes to read • Edit Online

Set-CsCpsConfiguration
In ths Article

Modifies an existing collection of Call Park service settings. Call parking is a service that allows a user to "park" an
incoming phone call. Parking a call transfers it to a number in a specified range, or orbit and then immediately
places the call on hold. Anyone (not just the person who originally answered the call) can resume the conversation
from any telephone simply by entering the correct number. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsCpsConfiguration [[-Identity] <XdsIdentity>] [-CallPickupTimeoutThreshold <TimeSpan>]
[-EnableMusicOnHold <Boolean>] [-MaxCallPickupAttempts <Int32>] [-OnTimeoutURI <String>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Set-CsCpsConfiguration [-Instance <PSObject>] [-CallPickupTimeoutThreshold <TimeSpan>]


[-EnableMusicOnHold <Boolean>] [-MaxCallPickupAttempts <Int32>] [-OnTimeoutURI <String>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
This cmdlet is used to modify an existing Call Park service configuration. A Call Park service configuration specifies
what happens to a call once it's parked. For example, if a parked call isn't answered after a period of time, it can be
automatically forwarded to someone else, such as an administrator, or to a Response Group. Calls can be
configured to ring after a certain period of time to ensure the call isn't forgotten. In addition, Call Park service can
be configured to play music on hold to the caller while the call is parked.

Examples
-------------------------- Example 1 --------------------------

Set-CsCpsConfiguration -Identity site:Redmond1 -MaxCallPickupAttempts 2

The command shown in Example 1 modifies the Call Park service configuration with the Identity site:Redmond1 by
setting the maximum number of times a parked call will ring back to the answering phone to 2. This is done by
including the MaxCallPickupAttempts parameter and setting the parameter value to 2.
-------------------------- Example 2 --------------------------

Get-CsCpsConfiguration | Set-CsCpsConfiguration -MaxCallPickupAttempts 2

Example 2 is a variation of the command shown in Example 1; in this case, however, we set all (not just one) Call
Park service configurations to have a MaxCallPickupAttempts property value of 2. To do this, the
Get-CsCpsConfiguration cmdlet is used to retrieve a collection of all the Call Park service settings in use in the
organization. This collection is then piped to the Set-CsCpsConfiguration cmdlet, which takes each individual item in
the collection and sets the value of the MaxCallPickupAttempts property to 2.
-------------------------- Example 3 --------------------------

Set-CsCpsConfiguration -Identity site:Redmond1 -CallPickupTimeoutThreshold 00:00:45

This example modifies the call park configuration for site Redmond1 by setting the amount of time that will elapse
before a parked call will ring back (contained in the CallPickupTimeoutThreshold property) to 45 seconds.

Parameters
-CallPickupTimeoutThreshold
The amount of time that will elapse after a call has been parked before it will ring back to the phone on which the
call was answered.
This must be entered in the format hh:mm:ss (hh = hours, mm = minutes, ss = seconds)
Minimum Value: 10 seconds (00:00:10); Maximum Value: 10 minutes (00:10:00)

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableMusicOnHold
Determines whether music plays for the caller while a call is parked.
Skype for Business Server ships with a default Music on Hold file. You can change this file (thereby changing the
music the caller hears while parked) with the Set-CsCallParkServiceMusicOnHoldFile cmdlet.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
A unique identifier of the configuration you want to modify. The Identity specifies the scope at which the
configuration is applied, either Global or a specific site (in the format site:<sitename>, such as site:Redmond).

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
An object reference to a Call Park service configuration object, of type
Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings. This object
can be retrieved by calling the Get-CsCpsConfiguration cmdlet. The object can then be changed and the changes
saved by passing the object back to the Set-CsCpsConfiguration cmdlet in this parameter.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-MaxCallPickupAttempts
The number of times a parked call will ring back to the answering phone before giving up and forwarding the call
to the fallback Uniform Resource Identifier (URI). The fallback URI is set with the OnTimeoutURI parameter.
Minimum Value: 1; Maximum Value: 10

Type: Int32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OnTimeoutURI
The SIP address of the user or Response Group to which unanswered parked calls will be routed. The parked call
will be routed after the number of ringbacks defined with the MaxCallPickupAttempts parameter. If that parameter
is set to Null, the OnTimeoutURI will be ignored and the parked call will be disconnected after unsuccessful
ringback attempts.
Values must be SIP URIs, beginning with the string sip:. For example, sip:rgs1@litwareinc.com.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings object.
Accepts pipelined input of Call Park service configuration objects.

Outputs
Modifies an object of type
Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings.

Related Links
New -CsCpsConfiguration
Remove-CsCpsConfiguration
Get-CsCpsConfiguration
Set-CsCallParkServiceMusicOnHoldFile
minutes to read • Edit Online

Set-CsDeviceUpdateConfiguration
In ths Article

Modifies a collection of Device Update Web service configuration settings. These settings are used to manage the
Device Update Web service, a Skype for Business Server component that enables administrators to distribute
firmware updates to telephones and other devices running Skype for Business Phone Edition. This cmdlet was
introduced in Lync Server 2010.

Syntax
Set-CsDeviceUpdateConfiguration [[-Identity] <XdsIdentity>] [-LogCleanUpInterval <TimeSpan>]
[-LogCleanUpTimeOfDay <DateTime>] [-LogFlushInterval <TimeSpan>] [-MaxLogCacheLimit <UInt32>]
[-MaxLogFileSize <UInt32>] [-ValidLogFileExtensions <PSListModifier>] [-ValidLogFileTypes <PSListModifier>]
[-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-CsDeviceUpdateConfiguration [-Instance <PSObject>] [-LogCleanUpInterval <TimeSpan>]


[-LogCleanUpTimeOfDay <DateTime>] [-LogFlushInterval <TimeSpan>] [-MaxLogCacheLimit <UInt32>]
[-MaxLogFileSize <UInt32>] [-ValidLogFileExtensions <PSListModifier>] [-ValidLogFileTypes <PSListModifier>]
[-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Description
The Device Update Web service provides a way for administrators to distribute firmware updates to devices that
run Skype for Business Phone Edition. Periodically, administrators upload a set of device update rules to Skype for
Business Server. After those rules have been tested and approved, they can then be applied to the appropriate
devices as those devices connect to the system. Devices check for updates when they are first powered on, then
check again when a user logs on. After that, devices will check for updates every 24 hours.
Device update configuration settings can be applied at either the global or the site scope. The
Set-CsDeviceUpdateConfiguration cmdlet enables you to make changes to a collection of settings. For example, you
can use this cmdlet to change the length of time a log file is kept before it is automatically deleted by the system).

Examples
-------------------------- Example 1 --------------------------

Set-CsDeviceUpdateConfiguration -Identity global -MaxLogFileSize 2048000 -MaxLogCacheLimit 1024000

Example 1 shows how the Set-CsDeviceUpdateConfiguration cmdlet can be used to modify the global configuration
settings. In this case, two property values are modified: the MaxLogFileSize property is set to 2048000 bytes and
the MaxLogCacheLimit property is set to 1024000 bytes.
-------------------------- Example 2 --------------------------
Set-CsDeviceUpdateConfiguration -Identity site:Redmond -LogFlushInterval 00:02:00

Example 2 modifies the LogFlushInterval property for the device update configuration settings with the Identity
site:Redmond. To do this, the Identity parameter is used to specify the settings at the Redmond site and the
LogFlushInterval parameter is used to indicate the property value that be changed. In this case, the
LogFlushInterval is set to 2 minutes (00 hours: 02 minutes: 00 seconds).
-------------------------- Example 3 --------------------------

Get-CsDeviceUpdateConfiguration | Set-CsDeviceUpdateConfiguration -LogCleanUpInterval 14.00:00:00

In Example 3, all of the device configuration update settings in the organization are modified in order to set the
LogCleanUpInterval to 14 days. To do this, the Get-CsDeviceUpdateConfiguration cmdlet is first used to retrieve a
collection of all the device update configuration settings currently in use. This collection is then piped to the
Set-CsDeviceUpdateConfiguration cmdlet, which uses the LogCleanUpInterval parameter to set the log clean up
interval time for each item in the collection to 14 days (14 days : 00 hours : 00 minutes : 00 seconds).
-------------------------- Example 4 --------------------------

Get-CsDeviceUpdateConfiguration -Filter "site:*" | Set-CsDeviceUpdateConfiguration -LogCleanUpInterval


20.00:00:00

Example 4 demonstrates how you can modify a property value for all the device update configuration settings that
have been configured at the site scope; in this case, the command sets the LogCleanUpInterval to 20 days (20 days :
00 hours : 00 minutes : 00 seconds). In order to do this, the Get-CsDeviceUpdateConfiguration cmdlet is used along
with the Filter parameter; the filter value "site:*" limits the returned data to settings that have an Identity that begins
with the string value "site:". This filtered collection is then piped to the Set-CsDeviceUpdateConfiguration cmdlet,
which changes the value of the log cleanup interval for each item in the collection.
-------------------------- Example 5 --------------------------

Get-CsDeviceUpdateConfiguration | Set-CsDeviceUpdateConfiguration -ValidLogFileTypes @{Remove="CELog"}

Example 5 removes CELog from the list of valid log file types used by the device update configuration settings. In
this command, the Get-CsDeviceUpdateConfiguration cmdlet is first used to retrieve a collection of all the device
update configuration settings currently in use in the organization. That collection is then piped to the
Set-CsDeviceUpdateConfiguration cmdlet, which uses the ValidLogFileTypes parameter in order to remove CELog
from the list of valid log file types. The parameter value passed to ValidLogFileTypes, @{Remove="CELog"},
instructs the Set-CsDeviceUpdateConfiguration cmdlet to remove CELog from the set of valid file types. To remove
multiple files types in a single command, simply include the additional types as part of a comma-separated list. For
example:
@{Remove="CELog","Watson"}

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the device update configuration settings to be modified. To refer to the global settings, use this
syntax: -Identity global . To refer to site settings, use syntax similar to this: -Identity "site:Redmond" . Note that
you cannot use wildcards when specifying an Identity.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-LogCleanUpInterval
Specifies the amount of time a device update log file is kept before it is deleted by the system.
The value must be entered in the format dd.hh:mm:ss where dd is days, hh is hours, mm is minutes and ss is
seconds. To enter only days, you must follow the value with a period (.).
Minimum Value: 1.00:00:00 (1 Day)
Maximum Value: 365.00:00:00 (1 Year)
Default: 10.00:00:00 (10 Days)
Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogCleanUpTimeOfDay
Indicates the time of day when the system checks to see if there are any expired log files that should be deleted.
(Expired log files are any files older than the value specified in by the LogCleanupInterval property.)

The value passed to the LogCleanupTimeOfDay parameter should be in the 24-hour time format hh:mm, where hh
represents the hours and mm represents the minutes. In this format, midnight is represented as 00:00; 8:30 A.M. is
represented as 08:30 and 11:52 P.M. is represented as 23:52.

Type: DateTime
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LogFlushInterval
Indicates how often information stored in the log file cache is written to the actual log file. By default, device update
information is not immediately written to the log file; instead, that information is cached in memory until: 1) the log
flush time interval has expired or 2) the cache has reached its maximum size. If this value is set to 10 minutes
(00:10:00), then information in the cache will be written to the log file every 10 minutes. After the data has been
logged the cache will be cleared.
The value must be entered in the format hh:mm:ss where hh is hours, mm is minutes and ss is seconds.
Minimum Value: 00:01:00 (1 minute)
Maximum Value: 1:00:00 (1 hour)
Default: 00:05:00

Type: TimeSpan
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxLogCacheLimit
Indicates the maximum amount of information (in bytes) that can held in the log file cache before that cache must
be cleared and the data written to a log file. By default, log files are "flushed" every 5 minutes. (For details, see the
description of the parameter LogFlushInterval.) However, if the cache reaches its maximum size the information in
it will automatically be written to a log file (and the cache cleared), even if the log flush interval has not yet expired.
Default: 512000
Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MaxLogFileSize
Indicates the maximum size, in bytes, for an individual log file. When a file reaches the maximum size, the next
batch of data is automatically written to a new log file. The old log file will be retained until the log cleanup interval
has expired.
Default: 1024000

Type: UInt32
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ValidLogFileExtensions
Indicates the valid log file extensions that can be used with the Device Update Web service. This list can be
modified; however, there is no reason to modify the list unless you have a Lync Phone Edition compatible device
that creates log files that use a different file extension.
Default: .dmp, .clg, .clg2, .bak, .kdmp, .dat, .bin, .cat, .xml, .txt, .hex

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ValidLogFileTypes
Indicates the log file types retained by the device update system. The default file types include the following:
Watson. Log files automatically generated by a device in the event of a system crash.
CELog. Skype for Business Phone logs that contain the results of functional tests and also a record of critical
system events.
Additional file types can be added if you have a Skype for Business Phone Edition-compatible device that creates a
different kind of log file. You can also remove files. For example, if you do not want to store CELog files then you
can remove the CELog file type.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration object. The
Set-CsDeviceUpdateConfiguration cmdlet accepts pipelined instances of the device update configuration object.

Outputs
The Set-CsDeviceUpdateConfiguration cmdlet does not return a value or object. Instead, the cmdlet configures
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration
object.

Related Links
Get-CsDeviceUpdateConfiguration
New -CsDeviceUpdateConfiguration
Remove-CsDeviceUpdateConfiguration
minutes to read • Edit Online

Set-CsDiagnosticConfiguration
In ths Article

Modifies existing diagnostic configuration settings. Diagnostic configuration settings are used to determine
whether traffic to or from a given domain or Uniform Resource Identifier (URI) is recorded in your Skype for
Business Server log files. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsDiagnosticConfiguration [[-Identity] <XdsIdentity>] [-Filter <Filter>] [-LoggingShare <String>] [-Force]
[-WhatIf] [-Confirm] [-LogAllSipHeaders <Boolean>] [<CommonParameters>]

Set-CsDiagnosticConfiguration [-Instance <PSObject>] [-Filter <Filter>] [-LoggingShare <String>] [-Force]


[-WhatIf] [-Confirm] [-LogAllSipHeaders <Boolean>] [<CommonParameters>]

Description
If you enable logging for Skype for Business Server, then, by default, traffic traveling to or from any domain or URI
is included in those log files. This ensures that as much information as possible is recorded in the log files.
However, this can occasionally result in too much information. For example, if you are experiencing connectivity
problems with a particular domain, you might want to limit logging to traffic between your network and that
domain; that makes it easier for you to identify the relevant records and, in turn, might make it easier for you to
diagnose and correct the problem.
Diagnostic configuration settings make it possible for you to specify the domains or URIs that will be recorded in
the log files. Skype for Business Server enables you to create diagnostic configuration settings at the site scope. In
turn, this enables you to apply different settings to the Redmond site while than you do on your other sites.
You can use the Set-CsDiagnosticConfiguration cmdlet to add or remove filters from a given collection. Filters are
used to indicate the domains whose traffic should be logged.

Examples
-------------------------- Example 1 ------------------------

$x = New-CsDiagnosticsFilter -Fqdn fabrikam.com -Uri sip:user@fabrikam.com

Set-CsDiagnosticConfiguration -Identity global -Filter $x

The commands shown in Example 1 use the New-CsDiagnosticsFilter cmdlet to create a new diagnostics filter, then
assign that new filter to the global diagnostic configuration settings. To carry out this task, the first command calls
the New-CsDiagnosticsFilter cmdlet in order to create an in-memory-only diagnostics filter that uses the FQDN
fabrikam.com and the URI sip:user@fabrikam.com. This "virtual" filter is then stored in the variable $x.
In command 2, the Set-CsDiagnosticConfiguration cmdlet assigns the new filter to the global diagnostic
configuration settings. In this case, any existing values in the Filter property will be replaced by the newly-created
filter.
-------------------------- Example 2 ------------------------

$x = (Get-CsDiagnosticConfiguration -Identity global).Filter

$x.Fqdn.Add("fabrikam.com")

Set-CsDiagnosticConfiguration -Identity global -Filter $x

Example 2 shows how you can add a new FQDN to the Filter property of the global diagnostic configuration
settings. To do this, the first command in the example uses the Get-CsDiagnosticConfiguration cmdlet to retrieve the
value of the Filter property for the global settings. This is done by enclosing the call to the
Get-CsDiagnosticConfiguration cmdlet in parentheses; that causes the Windows PowerShell command-line
interface to run that command before it does anything else. After the global settings are returned, the value of the
Filter property is extracted and stored in a variable named $x.
In the second command, the Add method is used to add a new FQDN (fabrikam.com) to the filter. When that's
done, the final command in the example uses the Set-CsDiagnosticConfiguration cmdlet to save the modified
diagnostics collection. The net result is that fabrikam.com will be added to any FQDNs already included in the Filter
property.
-------------------------- Example 3 ------------------------

$x = (Get-CsDiagnosticConfiguration -Identity global).Filter

$x.Fqdn.Remove("fabrikam.com")

Set-CsDiagnosticConfiguration -Identity global -Filter $x

The commands shown in Example 3 remove an FQDN (fabrikam.com) from the Filter property of the global
diagnostic configuration settings. The first command in the example uses the Get-CsDiagnosticConfiguration
cmdlet to retrieve the current value of the Filter property for the global settings; this value is stored in a variable
named $x. After that value has been retrieved, the Remove method is used to remove the FQDN fabrikam.com.
After the FQDN has been removed, the Set-CsDiagnosticConfiguration cmdlet is used write the modified filter
(stored in the variable $x) to the global settings.
-------------------------- Example 4 ------------------------

Set-CsDiagnosticConfiguration -Identity global -Filter $Null

In Example 4, all the items are removed from the Filter property of the global diagnostic configuration settings. This
is done by setting the Filter property to a Null value.

Parameters
-Confirm
Prompts you for confirmation before executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Filter
Collection of domains and URIs whose traffic will be logged. The Filter property consists of three separate items,
and must be created using the New-CsDiagnosticsFilter cmdlet:
Fqdn - Collection of domains to be included in the filter. (More technically, the host portion of a SIP address.) For
example a fully qualified domain name (FQDN ) might look like this: fabrikam.com. Alternatively, you can use
wildcards to represent multiple domains: *.fabrikam.com. You can include more than one domain in a single filter.
Uri - Collection of Uris to be included in the filter. (The Uri represents the user@host portion of a SIP address.) A
URI can consist of any of the following patterns: user@fabrikam.com; user@*; *@fabrikam.com. You can include
multiple Uris in a single filter.
Enabled - Indicates whether or not the filter should be activated.

Type: Filter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the diagnostics configuration settings to be modified. To modify settings configured at the site
scope, use syntax similar to this: -Identity "site:Redmond" . To modify the global settings, use this syntax:
-Identity global .

If this parameter is not specified, then the Set-CsDiagnosticConfiguration cmdlet will automatically modify the
global settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-LogAllSipHeaders
When set to False, only the core SIP headers are recorded in the logs. Setting this value to False can help reduce the
size of the log files. When set to True, all SIP headers are logged.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-LoggingShare
Shared folder where the diagnostic logs can be uploaded.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings object. The
Set-CsDiagnosticConfiguration cmdlet accepts pipelined instances of the diagnostic configuration settings object.

Outputs
The Set-CsDiagnosticConfiguration cmdlet does not return a value or object. Instead, the cmdlet configures
instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings object.

Related Links
Get-CsDiagnosticConfiguration
New -CsDiagnosticConfiguration
New -CsDiagnosticsFilter
Remove-CsDiagnosticConfiguration
minutes to read • Edit Online

Set-CsDiagnosticHeaderConfiguration
In ths Article

Modifies an existing diagnostic header configuration setting collection currently in use in your organization.
Diagnostic header configuration settings determine whether SIP messages are accompanied by header information
that can be useful in troubleshooting and error reporting. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsDiagnosticHeaderConfiguration [[-Identity] <XdsIdentity>] [-SendToExternalNetworks <Boolean>]
[-SendToOutsideUnauthenticatedUsers <Boolean>] [-Force] [-WhatIf] [-Confirm]
[-SendToExternalNetworksOnServiceEdge <Boolean>] [<CommonParameters>]

Set-CsDiagnosticHeaderConfiguration [-Instance <PSObject>] [-SendToExternalNetworks <Boolean>]


[-SendToOutsideUnauthenticatedUsers <Boolean>] [-Force] [-WhatIf] [-Confirm]
[-SendToExternalNetworksOnServiceEdge <Boolean>] [<CommonParameters>]

Description
Administrators have the option of attaching an ms-diagnostic header to each SIP message sent in their
organization. This message (which is not visible to end users) contains information that might be useful in
troubleshooting connection problems or in reporting errors. For example, the diagnostic header might contain
error codes that enable the client application (for example, Skype for Business) to take a predetermined course of
action should a specific situation arise.
For SIP messages sent within your internal network, there's little reason not to include these diagnostic headers:
they have a minimal impact on message size and can be an invaluable tool for administrators trying to
troubleshoot connectivity problems. However, diagnostic headers also contain information -- such as the fully
qualified domain names (FQDNs) of your SIP servers -- that you might not want to make available to people
outside the internal network. Because of this, the diagnostic header configuration settings enable you to decide
whether you want diagnostic headers sent to users on external networks (such as users in a federated domain)
and/or to outside users. (Outside users are users who have connected from outside the internal network and have
not yet been authenticated.)
By default, headers are not included in messages sent either to external networks or to unauthenticated users.
However, you can modify the global diagnostic header settings to include headers to external networks and/or
unauthenticated users. Alternatively, you can create custom settings at the site scope or at the service scope (for the
Edge Server or Registrar service). That way, you can choose to include diagnostic headers on messages sent from
one site, or through one Edge Server, while disallowing headers on messages sent from other sites or through
other Edge Servers.
The Set-CsDiagnosticHeaderConfiguration cmdlet provides a way for you to modify an existing diagnostic header
configuration setting collection. You can use this cmdlet to enable (or disable) the transmission of diagnostic
headers to external networks and/or to outside users.
Examples
-------------------------- Example 1 ------------------------

Set-CsDiagnosticHeaderConfiguration -Identity site:Redmond -SendToOutsideUnauthenticatedUsers $True

Example 1 modifies the diagnostic header configuration settings that have the Identity site:Redmond. In this
example, the value of the SendToOutsideUnauthenticatedUsers property is set to True.
-------------------------- Example 2 ------------------------

Get-CsDiagnosticHeaderConfiguration | Set-CsDiagnosticHeaderConfiguration -SendToOutsideUnauthenticatedUsers


$True

The command shown in Example 2 is a variation of the command shown in Example 1; in this case, however, the
SendToOutsideUnauthenticatedUsers property is modified for all the diagnostic header configuration settings in
use. To do this, the Get-CsDiagnosticHeaderConfiguration cmdlet is first called without any parameters; this returns a
collection of all the diagnostic header settings currently in use. This collection is then piped to the
Set-CsDiagnosticHeaderConfiguration cmdlet, which sets the SendToOutsideUnauthenticatedUsers property of each
item in the collection to True.
-------------------------- Example 3 ------------------------

Get-CsDiagnosticHeaderConfiguration | Where-Object {$_.SendToExternalNetworks -eq $True} | Set-


CsDiagnosticHeaderConfiguration -SendToOutsideUnauthenticatedUsers $True

In Example 3, the SendToOutsideUnauthenticatedUsers property is modified again, but this time only for those
diagnostic header settings where the SendToExternalNetworks property is True. To carry out this task, the
command first uses the Get-CsDiagnosticHeaderConfiguration cmdlet to return a collection of all the diagnostic
header configuration settings currently in use. That collection is piped to the Where-Object cmdlet, which selects
only those settings where the SendToExternalNetworks property is equal to True. That filtered collection is then
piped to the Set-CsDiagnosticHeaderConfiguration cmdlet, which sets the value of the
SendToOutsideUnauthenticatedUsers property for each item in the collection to True.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the diagnostic header configuration settings to be modified. To modify settings configured at
the site scope, use syntax similar to this: -Identity "site:Redmond" . To modify settings configured at the service
scope, use syntax like this: -Identity "service:EdgeServer:atl-cs-001.litwareinc.com" . To modify the global settings,
use this syntax: -Identity global .
If this parameter is not specified, then the Set-CsDiagnosticHeaderConfiguration cmdlet will automatically modify
the global settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-SendToExternalNetworks
When set to True, diagnostic headers will be attached to messages sent to users on external networks (such as users
in a federated domain). The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendToExternalNetworksOnServiceEdge
When set to True, diagnostic headers will be attached to messages sent to networks on the service edge. The
default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SendToOutsideUnauthenticatedUsers
When set to True, diagnostic headers will be attached to messages sent to outside users. Outside users are users
who have connected from outside the internal network (for example, through a proxy server) and have not yet been
authenticated.
The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings object. The
Set-CsDiagnosticHeaderConfiguration cmdlet accepts pipelined instances of the diagnostic header settings object.

Outputs
The Set-CsDiagnosticHeaderConfiguration cmdlet does not return any objects or values. Instead, the cmdlet
modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings object.

Related Links
Get-CsDiagnosticHeaderConfiguration
New -CsDiagnosticHeaderConfiguration
Remove-CsDiagnosticHeaderConfiguration
minutes to read • Edit Online

Set-CsDialInConferencingAccessNumber
In ths Article

Modifies the property values of an existing dial-in conferencing access number. Dial-in conferencing provides a way
for users to use a "regular" telephone, mobile phone or other device on the public switched telephone network
(PSTN ) to join the audio portion of a conference. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsDialInConferencingAccessNumber [-Identity] <UserIdParameter> -Priority <Int32> -ReorderedRegion <String>
[-WhatIf] [-Confirm] [-PassThru] [<CommonParameters>]

Set-CsDialInConferencingAccessNumber [-Identity] <UserIdParameter> [-DisplayName <String>]


[-DisplayNumber <String>] [-LineUri <String>] [-PrimaryLanguage <String>]
[-Regions <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]>] [-ScopeToGlobal]
[-ScopeToSite]
[-SecondaryLanguages <Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]>] [-WhatIf]
[-Confirm] [-PassThru] [<CommonParameters>]

Set-CsDialInConferencingAccessNumber [-Instance] <AccessNumber> [-ScopeToGlobal] [-ScopeToSite] [-WhatIf]


[-Confirm] [-PassThru] [<CommonParameters>]

Description
Dial-in conferencing enables users to use any kind of telephone (for example, a standard "land line," a mobile
phone, or a Voice over Internet Protocol (VoIP ) phone) to join the audio portion of a conference. This enables users
to participate in the meeting even if they do not have a computer or an Internet connection. Dial-in users have full
audio capabilities: they can speak to other participants and hear everything that takes place; they just aren't able to
see shared slides, video feeds, or other visual elements.
In order to provide users with dial-in conferencing capabilities, you must create dial-in conferencing access
numbers: phone numbers users can call in order to be connected to a meeting. Dial-in conferencing access
numbers are created by using the New-CsDialInConferencingAccessNumber cmdlet. When you create a new dial-in
conferencing access number, you actually create a new contact object in Active Directory Domain Services. This
contact object is used to represent the access number and all its properties.
After a dial-in conferencing number has been created, you can use the Set-CsDialInConferencingAccessNumber
cmdlet to modify the properties of that number. For example, you can change such things as the phone number
(LineUri) itself or the display name for the contact object that represents that number. In addition, the
Set-CsDialInConferencingAccessNumber cmdlet enables you to modify the scope of the number; for example, you can
use this cmdlet to take a number that has been assigned to the global scope and reassign it to the site scope.

Examples
-------------------------- Example 1 ------------------------
Set-CsDialInConferencingAccessNumber -Identity "sip:RedmondDialIn@litwareinc.com" -DisplayName "Redmond Dial-In
Access Number"

The command shown in Example 1 modifies the DisplayName property for the dial-in conferencing access number
with the Identity sip:RedmondDialIn@litwareinc.com. In this example, the display name is set to "Redmond Dial-In
Access Number".
-------------------------- Example 2 ------------------------

Set-CsDialInConferencingAccessNumber -Identity "sip:RedmondDialIn@litwareinc.com" -Regions "Redmond", "Seattle"

In Example 2, the dial-in conferencing access number with the Identity sip:RedmondDialIn@litwareinc.com is
modified to include two regions: Redmond and Seattle. To do this, the Regions parameter is called, followed by the
two regions (two string values separated by commas). Note that this command will fail unless both the Redmond
and Seattle regions have already been defined in dial plans.
-------------------------- Example 3 ------------------------

Get-CsDialInConferencingAccessNumber | Where-Object {$_.PrimaryLanguage -eq "fr-FR"}| Set-


CsDialInConferencingAccessNumber -SecondaryLanguages "fr-CA"

In Example 3, all the dial-in conferencing access numbers where the primary language is French are modified to
use French Canadian as the secondary language. To carry out this task, the Get-CsDialInConferencingAccessNumber
cmdlet is first called to return a collection of all the dial-in access numbers configured for use in the organization.
That collection is then piped to the Where-Object cmdlet, which picks out the access numbers where the
PrimaryLanguage property is equal to French ("fr-FR"). This filtered collection is then piped to the
Set-CsDialInConferencingAccessNumber cmdlet, which sets the value of the SecondaryLanguages property to French
Canadian ("fr-CA").
-------------------------- Example 4 ------------------------

Get-CsDialInConferencingAccessNumber -Filter {DisplayName -eq "Default DialIn Access Number"} | Set-


CsDialInConferencingAccessNumber -DisplayName "Litwareinc Conferencing"

The command shown in Example 4 changes the Active Directory display name for the specified dial-in conferencing
access number. To do this, the command first uses the Get-CsDialInConferencingAccessNumber cmdlet and the Filter
parameter to return the dial-in access number where the DisplayName property is equal to "Default DialIn Access
Number". That access number is then piped to the Set-CsDialInConferencingAccessNumber cmdlet, which changes
the display name to Litwareinc Conferencing.
-------------------------- Example 5 ------------------------

Get-CsDialInConferencingAccessNumber -Filter {LineUri -eq "TEL:+14255558715"} | Set-


CsDialInConferencingAccessNumber -DisplayNumber "1-425-555-1298" -LineUri "tel:+14255551298"

In Example 5, both the display number and the line Uniform Resource Identifier (URI) are modified for the specified
dial-in conferencing access number. To retrieve the number to be modified, the command first uses the
Get-CsDialInConferencingAccessNumber cmdlet and the Filter parameter; the accompanying filter value limits the
returned data to the access number where the LineUri property is equal to TEL:+14255558715. That access
number is then piped to the Set-CsDialInConferencingAccessNumber cmdlet, which modifies both the
DisplayNumber and LineUri properties of the access number.
-------------------------- Example 6 ------------------------

Get-CsDialInConferencingAccessNumber | Where-Object {$_.PrimaryLanguage -ne "en-US"} | Set-


CsDialInConferencingAccessNumber -SecondaryLanguages "fr-FR","it-IT"

Example 6 assigns a pair of secondary languages to all the dial-in conferencing access numbers that do not use U.S.
English as their primary language. To do this, the command first calls the Get-CsDialInConferencingAccessNumber
cmdlet to return a collection of all the dial-in conferencing access numbers configured for use in the organization.
That collection is then piped to the Where-Object cmdlet, which selects only those numbers where the
PrimaryLanguage property is not equal to U.S. English (en-US ). The filtered collection is then piped to the
Set-CsDialInConferencingAccessNumber cmdlet, which uses the -SecondaryLanguages parameter to assign each
number in the collection the secondary languages French (fr-FR ) and Italian (it-IT).
-------------------------- Example 7 ------------------------

Get-CsDialInConferencingAccessNumber -Identity ""sip:RedmondDialIn@litwareinc.com"" -Priority 0 -


ReorderedRegion Redmond

The command shown in Example 7 assigns the dial-in conferencing access number
"sip:RedmondDialIn@litwareinc.com" the highest priority in the Redmond region; that results in the number being
listed first in meeting invitations and on the dial-in conferencing webpage. To set the priority, the Priority parameter
is included along with the parameter value 0. (The highest priority access number has a Priority value of 0, the
second-highest priority number has a Priority value of 1, and so on.) In addition, the ReorderedRegion parameter is
included to indicate that access number priorities are to be changed within the Redmond region.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayName
Active Directory display name for the new contact object. This is the name that will also be displayed in Skype for
Business.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
Phone number as displayed in meeting invitations and on the Dial-in Conferencing Settings webpage. The
DisplayNumber can be formatted any way you prefer; for example 1-800-555-1234; 1-(800)-555-1234; or
1.800.555.1234.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
SIP address of the contact object that represents the dial-in conferencing number. When specifying the Identity you
must include the "sip:" prefix; for example: -Identity " sip:RedmondDialIn@litwareinc.com" .

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: AccessNumber
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-LineUri
The actual dial-in conferencing phone number. The LineUri must be specified by using the following syntax: the tel:
prefix followed by a plus sign (+) followed by the country/region calling code, area code and phone number. For
example: tel:+18005551234. Spaces, hyphens, parentheses and other characters are not allowed.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PassThru
Enables you to pass a contact object through the pipeline that represents the modified dial-in conferencing access
number. By default, the Set-CsDialInConferencingAccessNumber cmdlet does not pass objects through the pipeline.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrimaryLanguage
Primary language used for making dial-in conferencing announcements. The language must be configured by
using one of the available dial-in conferencing language codes; for example, en-US for U.S. English or fr-FR for
French. To return a list of the available language codes, type the following command at the Windows PowerShell
prompt:
Get-CsDialInConferencingLanguageList | Select-Object -ExpandProperty Languages.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Priority
Enables you to change the order in which dial-in conferencing numbers are presented to users in meeting
invitations or when they access the Dial-In Conferencing Settings webpage. Lower numbers are given a higher
priority; to have a number appear at the beginning of the list set the priority to 0. Note that if you change the
priority of a given number you must also use the ReorderedRegion parameter to indicate the region where the
modified priority should take effect.

Type: Int32
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Regions
Dial plan regions associated with the dial-in number. If a region is not included in at least one dial plan, then it
cannot be associated with a dial-in conferencing access number. To specify multiple regions, use a comma-
separated list: -Regions "Northwest", "Southwest"

Type: Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ReorderedRegion
Used with the Priority parameter when changing the priority of a dial-in conferencing number with a region. The
ReorderedRegion parameter indicates the region where the priority reordering is to take place; for example:
-ReorderedRegion "Redmond" .

Type: String
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ScopeToGlobal
If present, the dial-in conferencing number will be assigned to the global scope.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ScopeToSite
If present, the dial-in conferencing number will be scoped to the site where the contact object's Registrar pool
resides.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SecondaryLanguages
Optional collection of languages that can also be used for making dial-in conferencing announcements. Secondary
languages must be configured as a comma-separated list of language codes; for example, the following syntax sets
French Canadian and French as secondary languages; -SecondaryLanguages "fr-CA", "fr-FR".
An access number can be associated with as many as four secondary languages.

Type: Microsoft.Rtc.Management.ADConnect.Core.MultiValuedProperty`1[System.String]
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.Xds.AccessNumber object. The Set-CsDialInConferencingAccessNumber cmdlet accepts
pipelined input of the access number object.

Outputs
The Set-CsDialInConferencingAccessNumber cmdlet does not return a value or object. Instead, the cmdlet configures
instances of the Microsoft.Rtc.Management.Xds.AccessNumber object.
Related Links
Get-CsDialInConferencingAccessNumber
New -CsDialInConferencingAccessNumber
Remove-CsDialInConferencingAccessNumber
minutes to read • Edit Online

Set-CsDialInConferencingConfiguration
In ths Article

Modifies settings that determine how Skype for Business Server responds when users join or leave a dial-in
conference. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsDialInConferencingConfiguration [[-Identity] <XdsIdentity>] [-EnableNameRecording <Boolean>] [-Force]
[-WhatIf] [-Confirm] [-EntryExitAnnouncementsEnabledByDefault <Boolean>]
[-EntryExitAnnouncementsType <EntryExitAnnouncementsType>] [-AllowAnonymousPstnActivation <Boolean>]
[-PinAuthType <String>] [<CommonParameters>]

Set-CsDialInConferencingConfiguration [-Instance <PSObject>] [-EnableNameRecording <Boolean>] [-Force]


[-WhatIf] [-Confirm] [-EntryExitAnnouncementsEnabledByDefault <Boolean>]
[-EntryExitAnnouncementsType <EntryExitAnnouncementsType>] [-AllowAnonymousPstnActivation <Boolean>]
[-PinAuthType <String>] [<CommonParameters>]

Description
When users join (or leave) a dial-in conference Skype for Business Server can respond in different ways. For
example, participants might be asked to record their name before they can enter the conference itself. Likewise,
administrators can decide whether they want to have Skype for Business Server announce that dial-in participants
have either left or joined a conference.
These conference "join behaviors" are managed using dial-in conferencing configuration settings; these settings can
be configured at the global scope or at the site scope. When you first install Skype for Business Server, the only
dial-in conferencing configuration settings you will have are the ones at the global scope; however, you can create
new settings at the site scope by using the New-CsDialInConferencingConfiguration cmdlet. In addition, you can
modify any of these configuration settings (at either the global or site scopes) by using the
Set-CsDialInConferencingConfiguration cmdlet.

Examples
-------------------------- Example 1 ------------------------

Set-CsDialInConferencingConfiguration -Identity site:Redmond -EntryExitAnnouncementsType "ToneOnly"

The command shown in Example 1 modifies the EntryExitAnnoucements property for the dial-in configuration
settings for the Redmond site. In this case, the EntryExitAnnouncementsType property is set to ToneOnly.
-------------------------- Example 2 ------------------------

Get-CsDialInConferencingConfiguration | Set-CsDialInConferencingConfiguration -EnableNameRecording $True


Example 2 modifies all the dial-in conferencing configurations settings in use in the organization. To do this, the
command first uses the Get-CsDialInConferencingConfiguration cmdlet to return a collection of all dial-in
conferencing settings. That collection is then piped to the Set-CsDialInConferencingConfiguration cmdlet, which sets
the EnableNameRecording property for each item in the collection to True ($True).
-------------------------- Example 3 ------------------------

Get-CsDialInConferencingConfiguration -Filter "site:*" | Set-CsDialInConferencingConfiguration -


EnableNameRecording $True -EntryExitAnnouncementsType "UseNames"

Example 3 modifies all the dial-in conferencing settings that have been configured at the site scope. To carry out
this task, the command first uses the Get-CsDialInConferencingConfiguration cmdlet and the Filter parameter to
return a collection of all the settings configured at the site scope; the filter value "site:*" restricts returned data to
settings that have an Identity beginning with the string value "site:". That filtered collection is then piped to the
Set-CsDialInConferencingConfiguration cmdlet, which modifies the EnableNameRecording property and the
EntryExitAnnouncementsType property for each item in the collection. When the command finishes running, all the
dial-in conferencing settings configured at the site scope will have their EnableNameRecording property set to True
and their EntryExitAnnoucements property set to "UseNames".

Parameters
-AllowAnonymousPstnActivation
Specifies whether unauthenticated callers can start a meeting if they are the first person to join. An unauthenticated
caller is defined as a participant who joins a meeting over the phone and doesn't provide a PIN when joining the
meeting. $True to allow anonymous activation, otherwise $False. The default is $False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableNameRecording
Determines whether or not users are asked to record their name before entering the conference. Set to True to
enable name recording; set to False to bypass name recording. The default value is True.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EntryExitAnnouncementsEnabledByDefault
If set to True announcements will be played each time a participant enters or exits a conference. If set to False (the
default value), entry and exit announcements will not be played.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EntryExitAnnouncementsType
Indicates the action taken by the system any time a participant enters or leaves a conference. (Announcements are
made only if the EntryExitAnnouncementsEnabledByDefault is set to True.) Valid values are:
UseNames. The person's name is announced any time her or she enters or leaves a conference (for example, "Ken
Myer is exiting the conference").
ToneOnly. A tone is played any time a participant enters or leaves a conference.
The default value is UseNames.

Type: EntryExitAnnouncementsType
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the Identity of the dial-in conferencing configuration settings to be modified. To refer to the global
settings, use this syntax: -Identity global . To refer to site settings, use syntax similar to this:
-Identity site:Redmond . Note that you cannot use wildcards when specifying an Identity.
Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-PinAuthType
Specifies which users are allowed to use PIN authentication. Allowed values are:
Everyone
OrganizerOnly

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfiguration
object. The Set-CSDialInConferencingConfiguration cmdlet accepts pipelined instances of the dial-in conferencing
configuration object.

Outputs
The Set-CsDialInConferencingConfiguration cmdlet does not return any objects or values. Instead, the cmdlet
modifies existing instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfiguration
object.
Related Links
Get-CsDialInConferencingConfiguration
New -CsDialInConferencingConfiguration
Remove-CsDialInConferencingConfiguration
minutes to read • Edit Online

Set-CsDialInConferencingDtmfConfiguration
In ths Article

Modifies the dual-tone multifrequency (DTMF ) signaling settings used for dial-in conferencing. DTMF enables
users who dial in to a conference to control conference settings (such as muting and unmuting themselves or
locking and unlocking the conference) by using the keypad on their telephone. This cmdlet was introduced in Lync
Server 2010.

Syntax
Set-CsDialInConferencingDtmfConfiguration [[-Identity] <XdsIdentity>] [-AdmitAll <String>]
[-AudienceMuteCommand <String>] [-CommandCharacter <String>] [-EnableDisableAnnouncementsCommand <String>]
[-HelpCommand <String>] [-LockUnlockConferenceCommand <String>] [-MuteUnmuteCommand <String>]
[-PrivateRollCallCommand <String>] [-Force] [-WhatIf] [-Confirm] [-OperatorLineUri <String>]
[<CommonParameters>]

Set-CsDialInConferencingDtmfConfiguration [-Instance <PSObject>] [-AdmitAll <String>]


[-AudienceMuteCommand <String>] [-CommandCharacter <String>] [-EnableDisableAnnouncementsCommand <String>]
[-HelpCommand <String>] [-LockUnlockConferenceCommand <String>] [-MuteUnmuteCommand <String>]
[-PrivateRollCallCommand <String>] [-Force] [-WhatIf] [-Confirm] [-OperatorLineUri <String>]
[<CommonParameters>]

Description
Skype for Business Server enables users to join conferences by dialing in over the telephone. Dial-in users are not
able to view video or exchange instant messages with other conference attendees, but they are able to fully
participate in the audio portion of the meeting.
In addition to being able to join a conference, users are also able to manage selected portions of that conference by
using their telephone keypad. (The specific conference settings users can and cannot manage depend on whether
or not the user is a presenter.) For example, by default users can press the 6 key on their keypad to mute or unmute
themselves. Participants can privately play the names of all the other people attending the meeting, while
presenters can do such things as mute and unmute all the meeting participants and enable or disable the
announcement that is played any time someone joins or leaves a conference.
The ability to make selections like these using a telephone keypad is known as dual-tone multifrequency (DTMF )
signaling: if you have ever dialed a phone number and been instructed to do something along the order of "Press 1
for English or press 2 for Spanish," then you have used DTMF signaling.
The Set-CsDialInConferencingDtmfConfiguration cmdlet enables you to modify the keys used to trigger the
commands supported in a Skype for Business Server dial-in conference.
When modifying the DTMF commands keep two things in mind. First, you can only use the numeric keys 0 through
9; any other keys that might be found on your keypad (such as the # key) are not allowed. There is one exception to
that rule: the CommandCharacter parameter allows you to use only the asterisk key (*), or the pound key (#); you
cannot assign a numeric value to the CommandCharacter parameter. However, all the other command parameters
will only accept numeric values.
Second, commands must be assigned unique keys; for example, the 4 key cannot be used both to mute and unmute
yourself and to lock and unlock a conference. That means that, when modifying the keys assigned to a command,
you might want to swap the keys used by two different commands. For example, if you want to assign the 4 key to
EnableDisableAnnouncementsCommand (default value: 9) you should, in the same command, assign the 9 key to
AudienceMuteCommand.
To disable a command, set its value to Null ($Null).

Examples
-------------------------- Example 1 ------------------------

Set-CsDialInConferencingDtmfConfiguration -Identity global -EnableDisableAnnouncementsCommand 4 -


AudienceMuteCommand 9

The command shown in Example 1 swaps the keys assigned to the command for enabling and disabling
announcements (default value: 9) and the command for muting and unmuting all participants (default value: 4) for
the global DTMF settings. To do this two different parameters are used: EnableDisableAnnoucementsCommand,
which is given the parameter value 4 and AudienceMuteCommand, which is given the value 9. Because no Identity
is specified, these changes will affect the global DTMF settings.
-------------------------- Example 2 ------------------------

Set-CsDialInConferencingDtmfConfiguration -Identity site:Redmond -EnableDisableAnnouncementsCommand 4 -


AudienceMuteCommand 9

The command shown in Example 2 is a variation of the command shown in the first example. In this case, however,
the changes affect the DTMF settings that have the Identity site:Redmond.
-------------------------- Example 3 ------------------------

Set-CsDialInConferencingDtmfConfiguration -Identity "site:Redmond" -PrivateRollCallCommand $Null

The command shown in Example 3 disables the roll call command (the ability to play back a list of all the people
participating in the conference) for the Redmond site. To disable this command, the PrivateRollCallCommand
parameter is included, with the parameter value set to $Null. This means that no keypad key will be associated with
the command, which makes the command unavailable to users.
-------------------------- Example 4 ------------------------

Get-CsDialInConferencingDtmfConfiguration -Filter "site:*" | Set-CsDialInConferencingDtmfConfiguration -


PrivateRollCallCommand $Null

Example 4 is a variation on Example 3: in this example, the roll call command is disabled for all the DTMF settings
configured at the site scope. To do this, the command first uses the Get-CsDialInConferencingDtmfConfiguration
cmdlet and the Filter parameter to return a collection of all the settings configured at the site scope; the filter value
"site:*" limits the returned data to those settings where the Identity begins with the characters "site:". This filtered
collection is then piped to the Set-CsDialInConferencingDtmfConfiguration cmdlet, which sets the value of the
PrivateRollCallCommand property to null ($Null).

Parameters
-AdmitAll
Indicates the key to be pressed in order to allow all the users in the lobby to immediately join the conference. The
default value is 8.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AudienceMuteCommand
Indicates the key a presenter can press to mute everyone else in the conference (that is, everyone other than the
presenter will be muted). The default key is 4.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CommandCharacter
Indicates the key to be pressed at the beginning of a command. The default key is the asterisk (*); the only other
allowed value is the pound key (#).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableDisableAnnouncementsCommand
Indicates the key to be pressed to enable or disable announcements each time someone joins or leaves the
conference. The default key is 9.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-HelpCommand
Indicates the key to be pressed in order to privately play a description of all the DTMF commands. The default key
is 1.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Indicates the unique identifier for the collection of DTMF settings you want to modify. To refer to the global
settings, use this syntax: -Identity global . To refer to a collection configured at the site scope, use syntax similar to
this: -Identity site:Redmond . Note that you cannot use wildcards when specifying an Identity.

If this parameter is not specified, then the Set-CsDialInConferencingDtmfConfiguration cmdlet will modify the global
DTMF settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False
-LockUnlockConferenceCommand
Indicates the key to be pressed to lock or unlock a conference. If a conference is locked then no new participants
will be allowed to join that conference, at least not until the conference has been unlocked. The default key is 7.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MuteUnmuteCommand
Indicates the key to be pressed to mute or unmute yourself; the same key is used to toggle back and forth between
muting and unmuting. The default key is 6.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OperatorLineUri
Phone number that the dial-in conferencing auto-attendant will connect a PSTN user to any time that user presses
*0 on their telephone keypad. Pressing *0 is designed to connect dial-in conferencing users to operator assistance.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PrivateRollCallCommand
Indicates the key to be pressed to privately play the name of each conference participant. The default key is 3.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfiguration
object. The Set-CsDialInConferencingDtmfConfiguration cmdlet accepts pipelined instances of the dial-in conference
DTMF configuration object.

Outputs
The Set-CsDialInConferencingDtmfConfiguration cmdlet does not return a value or object. Instead, the cmdlet
configures instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfiguration
object.

Related Links
Get-CsDialInConferencingDtmfConfiguration
New -CsDialInConferencingDtmfConfiguration
Remove-CsDialInConferencingDtmfConfiguration
minutes to read • Edit Online

Set-CsDialPlan
In ths Article

Modifies an existing dial plan. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsDialPlan [[-Identity] <XdsIdentity>] [-Description <String>] [-DialinConferencingRegion <String>]
[-ExternalAccessPrefix <String>] [-NormalizationRules <PSListModifier>] [-OptimizeDeviceDialing <Boolean>]
[-SimpleName <String>] [-State <String>] [-City <String>] [-CountryCode <String>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Set-CsDialPlan [-Instance <PSObject>] [-Description <String>] [-DialinConferencingRegion <String>]


[-ExternalAccessPrefix <String>] [-NormalizationRules <PSListModifier>] [-OptimizeDeviceDialing <Boolean>]
[-SimpleName <String>] [-State <String>] [-City <String>] [-CountryCode <String>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Description
This cmdlet modifies an existing dial plan (also known as a location profile). Dial plans provide information required
to enable Enterprise Voice users to make telephone calls. Dial plans are also used by the Conferencing Attendant
application for dial-in conferencing. A dial plan determines such things as which normalization rules are applied
and whether a prefix must be dialed for external calls.
Note: While normalization rules of a dial plan can be modified with this cmdlet, it is recommended that the
New-CsVoiceNormalizationRule cmdlet, the Set-CsVoiceNormalizationRule cmdlet, or the
Remove-CsVoiceNormalizationRule cmdlet be used instead. The changes made with those cmdlets will be reflected in
the corresponding dial plan.

Examples
-------------------------- Example 1 --------------------------

Set-CsDialPlan -Identity RedmondDialPlan -Description "This plan is for Redmond-based users only."

In Example 1, the Set-CsDialPlan cmdlet is used to modify the dial plan with the Identity RedmondDialPlan. In this
case, the only property being modified is the Description; this modification is performed by specifying the
Description parameter followed by the text for the new description.
-------------------------- Example 2 --------------------------

Get-CsDialPlan | Set-CsDialPlan -ExternalAccessPrefix 8

In this example, the Set-CsDialPlan cmdlet is used to change the value of the ExternalAccessPrefix property for all
the dial plans configured for use in the organization. To do this, the command first uses the Get-CsDialPlan cmdlet
to return a collection of all the dial plans in the organization. That collection is then piped to the Set-CsDialPlan
cmdlet, which assigns the value 8 to the ExternalAccessPrefix property for each profile in the collection.

Parameters
-City
This parameter is not used with this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-CountryCode
This parameter is not used with this cmdlet.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of this dial plan--what it's for, what type of user it applies to, or any other information that will be
helpful in identifying the purpose of the dial plan.
Maximum characters: 512

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DialinConferencingRegion
The name of the region associated with this dial plan. Specify a value for this parameter if the dial plan will be used
for dial-in conferencing. This allows the correct access number to be assigned when the conference organizer sets
up the conference. Available regions can be retrieved by calling the Get-CsNetworkRegion cmdlet.
Maximum characters: 512

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExternalAccessPrefix
A number (or set of numbers) that designates the call as external to the organization. (For example, to dial an
outside line, first press 9.) This prefix will be ignored by the normalization rules, although these rules will be applied
to the rest of the number.
The OptimizeDeviceDialing parameter must be set to True for this value to take effect.
The value of this parameter must match the regular expression [0-9]{1,4}. This means it must be a value one to four
digits in length, each digit being a number 0 through 9.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
The unique identifier designating the scope, or, for per-user plans, a name, to identify the dial plan you want to
modify. For example, a site Identity will be in the format site:<sitename>, where sitename is the name of the site. A
dial plan at the service scope will be a Registrar or PSTN gateway service, where the Identity value is formatted like
this: Registrar:Redmond.litwareinc.com. A per-user Identity will be a unique string value.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. You can
retrieve this object reference by calling the Get-CsDialPlan cmdlet.
Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-NormalizationRules
A list of normalization rules that are applied to this dial plan.
While this list and these rules can be modified directly with this cmdlet, it is recommended that you create
normalization rules with the New-CsVoiceNormalizationRule cmdlet, which creates the rule and assigns it to the
specified dial plan and modify them with the Set-CsVoiceNormalizationRule cmdlet.

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-OptimizeDeviceDialing
Setting this parameter to True will apply the prefix in the ExternalAccessPrefix parameter to calls made outside the
organization. This value can be set to True only if a value has been specified for the ExternalAccessPrefix parameter.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SimpleName
A friendly name for the dial plan. Dial plan names must be unique among all dial plans within a Skype for Business
Server deployment.
This string can be up to 256 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot
(.), plus (+), underscore (_) and parentheses (()).

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-State
This parameter is not used with this cmdlet.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile object. Accepts pipelined input of dial plan
objects.

Outputs
The Set-CsDialPlan cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile object.

Related Links
New -CsDialPlan
Remove-CsDialPlan
Get-CsDialPlan
Grant-CsDialPlan
Test-CsDialPlan
New -CsVoiceNormalizationRule
Set-CsVoiceNormalizationRule
Remove-CsVoiceNormalizationRule
Get-CsVoiceNormalizationRule
minutes to read • Edit Online

Set-CsDirector
In ths Article

Modifies the properties of one or more Directors. Directors can be used to authenticate user requests, but do not
host user accounts. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsDirector [[-Identity] <XdsGlobalRelativeIdentity>] [-ArchivingServer <String>] [-EdgeServer <String>]
[-MonitoringServer <String>] [-SipPort <UInt16>] [-WebPort <UInt16>] [-WebServer <String>] [-Force] [-WhatIf]
[-Confirm] [-SipHealthPort <UInt16>] [-SipServerTcpPort <UInt16>] [-MirrorMonitoringDatabase <String>]
[-MonitoringDatabase <String>] [<CommonParameters>]

Description
The Director authenticates users and responds to user requests without actually hosting user accounts. Directors
are typically used for organizations that allow external access to the network through Edge Servers. In that scenario,
Directors not only help alleviate the strain on Front End Servers (by handling authentication requests), but also help
shield the internal network from denial-of-service attacks and other malicious traffic. Directors are also useful any
time multiple Front End Servers are deployed in a central site. In that case, Directors receive all user requests and
then channel those requests to the appropriate server pool. This, again, helps to ease the burden placed on the
Front End Servers.
The Set-CsDirector cmdlet enables you to modify the property values for any of the Directors currently in use in
your organization. This includes changing such things as the Archiving Server or Edge Server associated with the
Director, or changing the port used for sending and receiving SIP traffic.

Examples
-------------------------- Example 1 ------------------------

Set-CsDirector -Identity "Director:atl-cs-001.litwareinc.com" -ArchivingServer "ArchivingServer:dublin-cs-


001.litwareinc.com"

The command shown in Example 1 changes the Archiving Server associated with the Director Director:atl-cs-
001.litwareinc.com. In this example, the Archiving Server is switched to ArchivingServer:dublin-cs-
001.litwareinc.com.
-------------------------- Example 2 ------------------------

Get-CsService -Director | ForEach-Object {Set-CsDirector -Identity $_.Identity -SipPort 5072}

Example 2 changes the SIP port for all the Directors currently in use in the organization. To do this, the command
first uses the Get-CsService cmdlet and the Director parameter to return a collection of all the Directors in the
organization. That collection is then piped to the ForEach-Object . In turn, the ForEach-Object cmdlet runs the
Set-CsDirector cmdlet against each site in the collection, changing the value of the SipPort property to 5072.

Parameters
-ArchivingServer
Service location of the Archiving Server to be associated with the Director. For example:
-ArchivingServer "ArchivingServer:atl-cs-001.litwareinc.com" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EdgeServer
Service location of the Edge Server to be associated with the Director. For example:
-EdgeServer "EdgeServer:atl-edge-001.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service location of the Director to be modified. For example: -Identity "Director:atl-cs-001.litwareinc.com" .

Note that you can leave off the prefix "Director:" when specifying a Director. For example:
-Identity "atl-cs-001.litwareinc.com" .
Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MirrorMonitoringDatabase
Service location of the mirror monitoring database to be associated with the Director.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MonitoringDatabase
Service location of the monitoring database to be associated with the Director.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MonitoringServer
Service location of the Monitoring Server to be associated with the Director. For example:
-MonitoringServer "MonitoringServer:atl-cs-001.litwareinc.com" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipHealthPort
Port used for monitoring server health.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipPort
Port used for Session Initiation Protocol (SIP ) traffic.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipServerTcpPort
SIP listening port. The default value is 5060.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WebPort
Port used for communicating with Web Services.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WebServer
Web Services location of the server to be associated with the Director. For example:
-WebServer "WebServer:atl-cs-001.litwareinc.com"

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Set-CsDirector cmdlet does not accept pipelined input.
Outputs
The Set-CsDirector cmdlet does not return any objects or values. Instead, the cmdlet modifies existing instances of
the Microsoft.Rtc.Management.Xds.DisplayDirector object.

Related Links
Get-CsService
minutes to read • Edit Online

Set-CsEdgeServer
In ths Article

Modifies the property values for one or more Edge Servers. Edge Servers are used to provide connectivity between
your internal network and the Internet. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsEdgeServer [[-Identity] <XdsGlobalRelativeIdentity>] [-AccessEdgeClientSipPort <UInt16>]
[-AccessEdgeExternalSipPort <UInt16>] [-AccessEdgeInternalSipPort <UInt16>] [-DataPsomClientPort <UInt16>]
[-DataPsomServerPort <UInt16>] [-MediaCommunicationPortCount <UInt16>] [-MediaCommunicationPortStart <UInt16>]
[-MediaRelayAuthEdgePort <UInt16>] [-MediaRelayExternalTurnTcpPort <UInt16>]
[-MediaRelayExternalTurnUdpPort <UInt16>] [-MediaRelayInternalTurnTcpPort <UInt16>]
[-MediaRelayInternalTurnUdpPort <UInt16>] [-Registrar <String>] [-Force] [-WhatIf] [-Confirm]
[-XmppInternalPort <UInt16>] [-XmppListeningPort <UInt16>] [-SkypeSearchProxyPort <UInt16>]
[<CommonParameters>]

Description
Connectivity with the outside world (that is, with the Internet) is an important aspect of Skype for Business Server.
Without this connectivity, users would have to log on to the internal network in order to access Skype for Business
Server. This would make it difficult for users working off-site to use the software and preclude the ability of users
who do not have accounts in your domain from being able to participate in conferences. Likewise, without
connectivity outside of the organization users would be unable to exchange instant messages with federated
partners or with people who have accounts on a public instant messaging system such as Yahoo!, AOL, or MSN.
Edge Servers are used to help provide connectivity between your internal network and the Internet. The
Set-CsEdgeServer cmdlet enables you to modify configuration settings for your Edge Servers, a task that primarily
involves changing the port numbers used for transmitting network traffic.

Examples
-------------------------- Example 1 ------------------------

Set-CsEdgeServer -Identity "EdgeServer:atl-edge-001.litwareinc.com" -AccessEdgeInternalSipPort 5062 -


AccessEdgeExternalSipPort 5062

The command shown in Example 1 modifies the internal and external SIP ports for the Edge Server
"EdgeServer:atl-edge-001.litwareinc.com".
-------------------------- Example 2 ------------------------

Get-CsService -EdgeServer | Where-Object {$_.SiteId -eq "site:Redmond"} | ForEach-Object {Set-CsEdgeServer -


Identity $_.Identity -AccessEdgeInternalSipPort 5062 -AccessEdgeExternalSipPort 5062}

Example 2 modifies the internal and external SIP ports for all the Edge Servers located in the Redmond site. To do
this, the command first uses the Get-CsService cmdlet and the EdgeServer parameter to return a collection of all
the Edge Servers currently in use in the organization. That collection is then piped to the Where-Object cmdlet,
which selects only those Edge servers from the Redmond site; that is, servers where the SiteId property is equal to
site:Redmond. This filtered collection is then piped to the For-Each-Object cmdlet. That cmdlet runs the
Set-CsEdgeServer cmdlet against each server in the collection, changing the values assigned to the
AccessInternalSipPort and AccessExternalSipPort properties.

Parameters
-AccessEdgeClientSipPort
Port used for SIP communications between the Edge Server and client devices. The initial value is set in Topology
Builder but can be changed by specifying a new value for this parameter.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AccessEdgeExternalSipPort
Port used for external SIP traffic. The default value is 5061.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AccessEdgeInternalSipPort
Port used for internal SIP traffic. The default value is 5061.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DataPsomClientPort
Port used for Persistent Shared Object Model (PSOM ) communications between the Edge Server and client
devices. The initial value is set in Topology Builder but can be changed by specifying a new value for this parameter.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DataPsomServerPort
Port used for PSOM communications between the Edge Server and other servers.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Service location of the Edge Server to be modified. For example:
-Identity "EdgeServer:atl-edge-001.litwareinc.com" .

Note that you can leave off the prefix "EdgeServer:" when specifying an Edge server. For example:
-Identity "atl-cs-001.litwareinc.com" .

Type: XdsGlobalRelativeIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediaCommunicationPortCount
Total number of ports allocated on the external Edge for media communications. The default value is 10000.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-MediaCommunicationPortStart
Starting port number on the external Edge for media communications. The default value is 50000.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediaRelayAuthEdgePort
Port used for media relay authentication. The default value is 5062.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediaRelayExternalTurnTcpPort
Port used for external media relay traffic using the Transmission Control Protocol (TCP ). The default value is 444 if
your Edge server has a single IP address. If your Edge server has multiple IP addresses then the default value is
443. These values are initially set in Topology Builder but can be changed by specifying a new value for this
parameter.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediaRelayExternalTurnUdpPort
Port used for external media relay traffic using the User Datagram Protocol (UDP ). The default value is 3478.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-MediaRelayInternalTurnTcpPort
Port used for internal media relay traffic using TCP. The default value is 443.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-MediaRelayInternalTurnUdpPort
Port used for internal media relay traffic using UDP. The default value is 3478.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Registrar
Service location of the Registrar to be associated with the Edge Server. For example:
-Registrar "Registrar:atl-cs-001.litwareinc.com" .

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SkypeSearchProxyPort
PARAMVALUE: UInt16

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-XmppInternalPort
Port used for internal XMPP traffic. The extensible Messaging and Presence Protocol (XMPP ) is an open-standard
communications protocol for exchanging messages using XML. An allowed partner is an IM and presence provider
whose users are allowed to exchange instant messages and presence information with your Skype for Business
Server users. The default value is 5098.
Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-XmppListeningPort
Listening port for XMPP traffic.

Type: UInt16
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
None. The Set-CsEdgeServer cmdlet does not accept pipelined input.

Outputs
The Set-CsEdgeServer cmdlet does not return any objects or values. Instead, the cmdlet modifies existing instances
of the Microsoft.Rtc.Management.Xds.DisplayEdgeServer object.

Related Links
Get-CsService
minutes to read • Edit Online

Set-CsEnhancedEmergencyServiceDisclaimer
In ths Article

Sets disclaimer text that will be used globally to prompt for location information for an Enhanced 9-1-1 (E9-1-1)
implementation. This cmdlet was introduced in Lync Server 2010. It has been deprecated for use with Skype for
Business Server. For Skype for Business Server, E9-1-1 disclaimers should be configured by using the `New -
CsLocationPolicy` cmdlet and the `Set-CsLocationPolicy` cmdlet.

Syntax
Set-CsEnhancedEmergencyServiceDisclaimer [[-Identity] <XdsIdentity>] [-Body <String>] [-Force] [-WhatIf]
[-Confirm] [<CommonParameters>]

Set-CsEnhancedEmergencyServiceDisclaimer [-Instance <PSObject>] [-Body <String>] [-Force] [-WhatIf] [-Confirm]


[<CommonParameters>]

Description
In order for an Enterprise Voice implementation to provide E9-1-1 service, locations must be mapped to ports,
subnets, switches and wireless access points to identify the caller's location. When the caller is connecting from
outside one of these mapped points, he must enter his location manually for it to be received by emergency
services. This cmdlet sets a text string that will be displayed to users who decide not to enter their location
information. This message will be displayed only if the LocationRequired property of the user's location policy is set
to Disclaimer. (You can retrieve location policy settings by calling the Get-CsLocationPolicy cmdlet.)

Examples
-------------------------- Example 1 --------------------------

Set-CsEnhancedEmergencyServiceDisclaimer -Body "Warning: If you do not provide a location, emergency services


may be delayed in reaching your location should you need to call for help."

This example replaces the text of the global enhanced emergency services disclaimer with the text provided in the
string passed to the Body parameter. This setting can be applied only at the global scope, which is the default for
Identity and therefore does not need to be specified.

Parameters
-Body
A string containing information that will be displayed to users who are connected from locations that cannot be
resolved by the location mapping (wiremap) who choose not to enter their location manually.
Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
This will always be Global.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
A reference to an enhanced emergency service disclaimer object. Must be of type
EnhancedEmergencyServiceDisclaimer.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.Location.EnhancedEmergencyServiceDisclaimer object. Accepts
pipelined input of an enhanced emergency service disclaimer object.

Outputs
This cmdlet does not return a value or an object. It modifies an object of type
Microsoft.Rtc.Management.WritableConfig.Policy.Location.EnhancedEmergencyServiceDisclaimer.

Related Links
Remove-CsEnhancedEmergencyServiceDisclaimer
Get-CsEnhancedEmergencyServiceDisclaimer
Get-CsLocationPolicy
minutes to read • Edit Online

Set-CsExternalAccessPolicy
In ths Article

Enables you to modify the properties of an existing external access policy. External access policies determine
whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP ) accounts with
a federated organization; 2) communicate with users who have SIP accounts with a public instant messaging (IM )
provider such as MSN and 3) access Skype for Business Server over the Internet, without having to log on to your
internal network. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsExternalAccessPolicy [-Tenant <Guid>] [-Description <String>] [-EnableFederationAccess <Boolean>]
[-EnableXmppAccess <Boolean>] [-EnablePublicCloudAccess <Boolean>]
[-EnablePublicCloudAudioVideoAccess <Boolean>] [-EnableOutsideAccess <Boolean>] [[-Identity] <XdsIdentity>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsExternalAccessPolicy [-Tenant <Guid>] [-Description <String>] [-EnableFederationAccess <Boolean>]


[-EnableXmppAccess <Boolean>] [-EnablePublicCloudAccess <Boolean>]
[-EnablePublicCloudAudioVideoAccess <Boolean>] [-EnableOutsideAccess <Boolean>] [-Instance <PSObject>]
[-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
When you install Skype for Business Server your users are only allowed to exchange instant messages and
presence information among themselves: by default, they can only communicate with people who have SIP
accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business
Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on
to Skype for Business Server.
That might be sufficient to meet your communication needs. If it doesn't meet your needs, you can use external
access policies to extend the ability of your users to communicate and collaborate. External access policies can grant
(or revoke) the ability of your users to do any or all of the following:

1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation
alone will not provide users with this capability. Instead, you must enable federation and then assign users an
external access policy that gives them the right to communicate with federated users.
2. Communicate with people who have SIP accounts with a public instant messaging service such as MSN.
3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This
enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or
other remote location.
After an external access policy has been created, you can use the Set-CsExternalAccessPolicy cmdlet to change the
property values of that policy. For example, by default the global policy does not allow users to communicate with
people who have accounts with a federated organization. If you would like to grant this capability to all of your
users you can call the Set-CsExternalAccessPolicy cmdlet and set the value of the global policy's
EnableFederationAccess property to True.
The following parameters are not applicable to Skype for Business Online: AsJob, Description, EnableXmppAccess,
Force, Identity, Instance, PipelineVariable, and Tenant

Examples
-------------------------- Example 1 ------------------------

Set-CsExternalAccessPolicy -Identity RedmondExternalAccessPolicy -EnableFederationAccess $True

The command shown in Example 1 modifies the per-user external access policy that has the Identity
RedmondExternalAccessPolicy. In this example, the command changes the value of the EnableFederationAccess
property to True.
-------------------------- Example 2 ------------------------

Get-CsExternalAccessPolicy | Set-CsExternalAccessPolicy -EnableFederationAccess $True

In Example 2, federation access is enabled for all the external access policies configured for use in the organization.
To do this, the command first calls the Get-CsExternalAccessPolicy cmdlet without any parameters; this returns a
collection of all the external policies currently configured for use. That collection is then piped to the
Set-CsExternalAccessPolicy cmdlet, which changes the value of the EnableFederationAccess property for each
policy in the collection.
-------------------------- Example 3 ------------------------

Get-CsExternalAccessPolicy -Filter tag:* | Set-CsExternalAccessPolicy -EnableFederationAccess $True

Example 3 enables federation access for all the external access policies that have been configured at the per-user
scope. To carry out this task, the first thing the command does is use the Get-CsExternalAcessPolicy cmdlet and the
Filter parameter to return a collection of all the policies that have been configured at the per-user scope. (The filter
value "tag:*" limits returned data to policies that have an Identity that begins with the string value "tag:". Any policy
with an Identity that begins with "tag:" has been configured at the per-user scope.) The filtered collection is then
piped to the Set-CsExternalAccessPolicy cmdlet, which modifies the EnableFederationAccess property for each
policy in the collection.
-------------------------- Example 4 ------------------------

Get-CsExternalAccessPolicy | Where-Object {$_.EnablePublicCloudAccess -eq $True} | Set-CsExternalAccessPolicy -


EnableFederationAccess $True

In Example 4, federation access is enabled for all the external access policies that allow public cloud access. To do
this, the command first uses the Get-CsExternalAccessPolicy cmdlet to return a collection of all the external access
policies currently configured for use in the organization. This collection is piped to the Where-Object cmdlet, which
picks out only those policies where the EnablePublicCloudAccess property is equal to True. The filtered collection is
then piped to the Set-CsExternalAccessPolicy cmdlet, which takes each policy and sets the EnableFederationAccess
property to True. The net result: all external access policies that allow public cloud access will also allow federation
access.

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
Enables administrators to provide additional text to accompany the policy. For example, the Description might
include information about the users the policy should be assigned to.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFederationAccess
Indicates whether the user is allowed to communicate with people who have SIP accounts with a federated
organization. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableOutsideAccess
Indicates whether the user is allowed to connect to Skype for Business Server over the Internet, without logging on
to the organization's internal network. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePublicCloudAccess
Indicates whether the user is allowed to communicate with people who have SIP accounts with a public Internet
connectivity provider such as MSN. The default value is False.
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnablePublicCloudAudioVideoAccess
Indicates whether the user is allowed to conduct audio/video conversations with people who have SIP accounts
with a public Internet connectivity provider such as MSN. When set to False, audio and video options in Skype for
Business will be disabled any time a user is communicating with a public Internet connectivity contact. The default
value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableXmppAccess
Indicates whether the user is allowed to communicate with users who have SIP accounts with a federated XMPP
(Extensible Messaging and Presence Protocol) partner. The default value is False.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier for the external access policy to be modified. External access policies can be configured at the
global, site, or per-user scopes. To modify the global policy, use this syntax: -Identity global . To modify a site
policy, use syntax similar to this: -Identity site:Redmond . To modify a per-user policy, use syntax similar to this:
-Identity SalesAccessPolicy . If this parameter is not specified then the global policy will be modified.

Note that wildcards are not allowed when specifying an Identity.


Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Tenant
Globally unique identifier (GUID ) of the Skype for Business Online tenant account for whom the external access
policy is being modified. For example:
-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"

You can return the tenant ID for each of your Skype for Business Online tenants by running this command:
Get-CsTenant | Select-Object DisplayName, TenantID

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. The
Set-CsExternalAccessPolicy cmdlet accepts pipelined input of the external access policy object.

Outputs
The Set-CsExternalAccessPolicy cmdlet does not return a value or object. Instead, the cmdlet configures instances
of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object.
Related Links
Get-CsExternalAccessPolicy
Grant-CsExternalAccessPolicy
New -CsExternalAccessPolicy
Remove-CsExternalAccessPolicy
minutes to read • Edit Online

Set-CsExternalUserCommunicationPolicy
In ths Article

{{Fill in the Synopsis}}

Syntax
Set-CsExternalUserCommunicationPolicy [-Tenant <Guid>] [-EnableFileTransfer <Boolean>]
[-EnableP2PFileTransfer <Boolean>] [-AllowPresenceVisibility <Boolean>] [-AllowTitleVisibility <Boolean>]
[[-Identity] <XdsIdentity>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsExternalUserCommunicationPolicy [-Tenant <Guid>] [-EnableFileTransfer <Boolean>]


[-EnableP2PFileTransfer <Boolean>] [-AllowPresenceVisibility <Boolean>] [-AllowTitleVisibility <Boolean>]
[-Instance <PSObject>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
The following parameters are not applicable to Skype for Business Online: AllowPresenceVisibility,
AllowTitleVisibility, AsJob, EnableFileTransfer, Force, Identity, Instance, PipelineVariable, and Tenant

Examples
-------------------------- Example 1 ------------------------

PS C:\> {{ Add example code here }}

{{ Add example description here }}

Parameters
-AllowPresenceVisibility
{{Fill AllowPresenceVisibility Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-AllowTitleVisibility
{{Fill AllowTitleVisibility Description}}
Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableFileTransfer
{{Fill EnableFileTransfer Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnableP2PFileTransfer
{{Fill EnableP2PFileTransfer Description}}

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
{{Fill Force Description}}

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
{{Fill Identity Description}}
Type: XdsIdentity
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
{{Fill Instance Description}}

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tenant
{{Fill Tenant Description}}

Type: Guid
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
System.Management.Automation.PSObject

Outputs
System.Object
minutes to read • Edit Online

Set-CsExUmContact
In ths Article

Modifies an existing Auto Attendant or Subscriber Access contact object for hosted Exchange Unified Messaging
(UM ). This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsExUmContact [-Identity] <UserIdParameter> [-AutoAttendant <Boolean>] [-Description <String>]
[-DisplayNumber <String>] [-Enabled <Boolean>] [-EnterpriseVoiceEnabled <Boolean>] [-SipAddress <String>]
[-DomainController <Fqdn>] [-PassThru] [-WhatIf] [-Confirm]
[-ExchangeArchivingPolicy <ExchangeArchivingPolicyOptionsEnum>] [<CommonParameters>]

Description
Skype for Business Server works with Exchange UM to provide several voice-related capabilities, including Auto
Attendant and Subscriber Access. When Exchange UM is provided as a hosted service (rather than on premises),
contact objects must be created by using Windows PowerShell to apply the Auto Attendant and Subscriber Access
functionality. These objects are created by calling the New-CsExUmContact cmdlet and can later be modified by using
the Set-CsExUmContact cmdlet.
The easiest way to use this cmdlet is often to first call the Get-CsExUmContact cmdlet to retrieve an instance of the
contact object you want to modify. Simply pipe the output of the Get-CsExUmContact cmdlet command to the
Set-CsExUmContact cmdlet and assign values to the parameters for the properties you want to change. ( For details,
see the Examples section in this topic.) Alternatively, you can call the Set-CsExUmContact cmdlet, passing it the
Identity of the contact object you want to modify.

Examples
-------------------------- Example 1 --------------------------

Get-CsExUmContact -Identity sip:exumsa4@fabrikam.com | Set-CsExUmContact -AutoAttendant $True

This example sets the AutoAttendant property of the Exchange UM contact with the SIP address
exumsa4@fabrikam.com to True. We first call the Get-CsExUmContact cmdlet to retrieve the contact object. (We
could also have used the contact's Active Directory display name, the contact's user principal name, or the contact's
logon name.) This command retrieves the one contact with the provided Identity. That contact is then passed to the
Set-CsExUmContact cmdlet, where we set its AutoAttendant parameter to True.

-------------------------- Example 2 --------------------------

Set-CsExUmContact -Identity "CN={1bf6208d-2847-45d0-828f-636f14da858b},OU=ExUmContacts,DC=litwareinc,DC=com" -


AutoAttendant $True

This example is identical to Example 1, but instead of retrieving the contact by calling the Get-CsExUmContact cmdlet
and piping that object to the Set-CsExUmContact cmdlet, we provide the Set-CsExUmContact cmdlet with the Identity
of the contact we want to modify. Notice the format of the Identity: in this case we've used the full distinguished
name of the contact object, which includes an auto-generated GUID (generated at the time the contact was
created). We then set the AutoAttendant parameter of the contact to True.

Parameters
-AutoAttendant
Set the parameter to True if the contact object is an Auto Attendant. This parameter is False by default.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Description
A description of this contact. The description is for use by administrators to identify the type of contact (Auto
Attendant or Subscriber Access), the location, provider, or any other information that will identify the purpose of
each Exchange UM contact.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisplayNumber
The telephone number of the contact. Display numbers for each contact must be unique (no two Exchange UM
contacts can have the same display number). Changing this value will also change the value of the LineURI
property.
This value may begin with a plus sign (+) and may contain any number of digits. The first digit cannot be zero.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DomainController
Allows you to specify a domain controller. If no domain controller is specified, the first available will be used.

Type: Fqdn
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Indicates whether or not the contact has been enabled for Skype for Business Server. Setting this parameter to
False will disable the contact, and the Auto Attendant or Subscriber Access associated with this contact will no
longer function.
If you disable an account by using the Enabled parameter, the information associated with that account (including
assigned hosted voice mail policies) is retained. If you later re-enable the account using the Enable parameter, the
associated account information will be restored.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-EnterpriseVoiceEnabled
Indicates whether the contact has been enabled for Enterprise Voice. If this value is set to False, the Auto Attendant
or Subscriber Access feature associated with this contact will no longer be available.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExchangeArchivingPolicy
Indicates where the contact's instant messaging sessions are archived. Allowed values are:
Uninitialized
UseLyncArchivingPolicy
ArchivingToExchange
NoArchiving

Type: ExchangeArchivingPolicyOptionsEnum
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Identity
The unique identifier of the contact object you want to modify. Contact identities can be specified using one of four
formats: 1) The contact's SIP address; 2) the contact's user principal name (UPN ); 3) the contact's domain name and
logon name, in the form domain\logon (for example, litwareinc\exum1) and 4) the contact's Active Directory
display name (for example, Team Auto Attendant).
Full data type: Microsoft.Rtc.Management.AD.UserIdParameter

Type: UserIdParameter
Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-PassThru
Returns the results of the command. By default, this cmdlet does not generate any output.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SipAddress
The SIP address of the contact. This must be a new address that does not already exist as a user or contact in Active
Directory Domain Services.
Changing this value will also change the SIP address stored in the OtherIpPhone property.
The SipAddress can be used as the Identity value for the Get-CsExUmContact cmdlet commands to retrieve specific
contacts. When calling that cmdlet, the new SipAddress will be used; queries for the old SIP address will not return
an object.

Type: String
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact object. Accepts pipelined input of Exchange
UM contact objects.

Outputs
This cmdlet modifies an object of type Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact.
When the PassThru parameter is used, it also returns an object of this type.

Related Links
New -CsExUmContact
Remove-CsExUmContact
Get-CsExUmContact
Move-CsExUmContact
minutes to read • Edit Online

Set-CsFileTransferFilterConfiguration
In ths Article

Modifies a collection of file transfer filter configuration settings. File transfer filter settings are used to block a user's
ability to transfer certain types of files (for example, files with a .vbs or .ps1 file extension) by using Skype for
Business Server clients. This cmdlet was introduced in Lync Server 2010.

Syntax
Set-CsFileTransferFilterConfiguration [[-Identity] <XdsIdentity>] [-Action <FileFilterAction>]
[-Enabled <Boolean>] [-Extensions <PSListModifier>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Set-CsFileTransferFilterConfiguration [-Instance <PSObject>] [-Action <FileFilterAction>] [-Enabled <Boolean>]


[-Extensions <PSListModifier>] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>]

Description
When sending instant messages, users can attach files and send them to the other participants in the conversation.
Skype for Business Server can be configured so that files with certain extensions--typically extensions of file types
that could potentially prove harmful--are not allowed to be sent from the client.
The ability of users to transfer files using Skype for Business Server clients is determined by the file transfer filter
configuration settings applied at the global or (optionally) the site scopes. The
Set-CsFileTransferFilterConfiguration cmdlet allows you to modify an existing file transfer filter configuration. You
can modify the list of extensions that will be blocked by adding or removing extensions, or by creating a new list
altogether. You can also use this cmdlet to change whether or not file transfer filtering is enabled and at what level
(block only the files with extensions matching those in the Extensions list, or block all files).

Examples
-------------------------- Example 1 --------------------------

Set-CsFileTransferFilterConfiguration -Identity site:Redmond -Enabled $False

The command shown in Example 1 disables file transfer filtering for the Redmond site (that is, the file transfer
filtering configuration that has the Identity site:Redmond). To carry out this task, the Enabled parameter is included
in the command and is set to $False.
-------------------------- Example 2 --------------------------

Set-CsFileTransferFilterConfiguration -Identity site:Redmond -Extensions @{Add=".ps1"}

The commands shown in Example 2 add a new file extension (.ps1, the file extension for Windows PowerShell
scripts) to the list of file extensions prohibited in the Redmond site. To add the new file extension, the
Set-CsFileTransferFilterConfiguration cmdlet uses the Extensions parameter and the Add list modifier. The
modifier adds the specified file extension--.ps1--to the list of prohibited extensions. To add multiple extensions by
using a single command, simply separate the file extensions using commas: @{Add=".ps1",".ps2",".ps3"}. Note that
you must include the period when specifying a file extension.
-------------------------- Example 3 --------------------------

Get-CsFileTransferFilterConfiguration | Set-CsFileTransferFilterConfiguration -Extensions @{Add=".ps1"}

In Example 3, the .ps1 file extension is added to the Extensions list of all the file transfer filter configurations
currently in use in the organization. To do this, the Get-CsFileTransferFilterConfiguration cmdlet is first called,
without any additional parameters, in order to return a collection of all the file transfer filter configurations
currently in use. That collection is then piped to the Set-CsFileTransferFilterConfiguration cmdlet, which adds the
.ps1 file extension to each item in the collection.
-------------------------- Example 4 --------------------------

Set-CsFileTransferFilterConfiguration -Identity site:Redmond -Extensions @{Remove=".ps1"}

In Example 4, the file extension .ps1 is removed from the list of extensions blocked by the file transfer filter
configuration for the Redmond site. This example is identical to Example 3 except that, instead of calling the Add list
modifier to add an extension to the list, the Remove list modifier is called to remove an extension from that list.
-------------------------- Example 5 --------------------------

$a = Get-CsFileTransferFilterConfiguration -Identity site:Redmond

$a.Extensions.Remove(".ps1")

Set-CsFileTransferFilterConfiguration -Instance $a

Example 5 performs the same action as Example 4: it removes the .ps1 extension from the list of file transfer filter
extensions for the Redmond site. However, in this case we first retrieve the file transfer filter configuration for
site:Redmond and assign the output to the variable $a; $a now contains the configuration for the Redmond site.
Next, we retrieve the Extensions property of $a, which is the Extensions property of site:Redmond ($a.Extensions).
This property contains the list of file extensions. Following the Extensions property is a call to the Remove method
($a.Extensions.Remove). We pass the value .ps1 to the Remove method; this will remove that extension from the list
in the Extensions property. However, this has removed the extension only from the configuration stored in memory
in the variable $a. To make the change to the database, we need to call the Set-CsFileTransferFilterConfiguration
cmdlet, passing $a to the Instance parameter.

Parameters
-Action
Determines the action to be taken if this file transfer filter configuration is enabled. If set to BlockAll then all file
transfers will be prohibited, regardless of file extension. If set to Block (the default value) file transfers will be
allowed unless the file extension appears as one of the prohibited file types listed in the Extensions property.
To allow unrestricted file transfers (that is, to allow users to exchange any type of file, regardless of file extension),
set the Enabled property of this policy to False.
Type: FileFilterAction
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Enabled
Enables or disables file transfer filtering. If this parameter is set to True, files with the specified extensions (or all
files, depending on the value of the Action property) cannot be transferred from the client. If this parameter is set to
False, any file can be transferred.
Default: True.

Type: Boolean
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Extensions
List of file extensions that will be blocked. If you attempt to use a Skype for Business Server client to transfer a file
that has a file extension matching one of the extensions in this list, that transfer will be blocked and the file will not
be transferred. This list is ignored if Action is set to BlockAll (all file transfers are blocked) or if Enabled is set to
False (no file transfers are blocked).
By default, the following file extensions are included in the Extensions property Default: .ade, .adp, .app, .asp, .bas,
.bat, .cer, .chm, .cmd, .com, .cpl, .crt, .csh, .exe, .fxp, .grp, .hlp, .hta, .inf, .ins, .isp, .its, .js, .jse, .ksh, .lnk, .mad, .maf, .mag,
.mam, .maq, .mar., mas., .mat, .mau, .mav, .maw, .mda, .mdb. .mde, .mdt, .mdw, .mdz, .msc, .msi, .msp, .mst, .ocx, .ops,
.pcd, .pif, .pl, .pnp, .prf, .prg, .pst, .reg, .scf, .scr, .sct, .shb, .shs, .tmp, .url, .vb, .vbe, .vbs, .vsd, .vsmacros, .vss, .vst, .vsw, .ws,
.wsc. .wsf, .wsh

Type: PSListModifier
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses any confirmation prompts that would otherwise be displayed before making changes.
Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Identity
Unique identifier of the file transfer configuration you want to modify. This value will be either global or site:<site
name>, where <site name> is the name of the site to which the settings apply, such as site:Redmond.
If this parameter is not specified, then the Set-CsFileTransferFilterConfiguration cmdlet will, by default, update the
global settings.

Type: XdsIdentity
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Instance
Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. This object
must be of type FileTransferFilterConfiguration and can be retrieved by calling the
Get-CsFileTransferFilterConfiguration cmdlet.

Type: PSObject
Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-WhatIf
Describes what would happen if you executed the command without actually executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs
Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration object. Accepts
pipelined input of file transfer filter configuration objects.

Outputs
This cmdlet does not return a value or object. Instead, the cmdlet configures instances of the
Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration object.
Related Links
New -CsFileTransferFilterConfiguration
Remove-CsFileTransferFilterConfiguration
Get-CsFileTransferFilterConfiguration
minutes to read • Edit Online

Set-CsFIPSConfiguration
In ths Article

Modifies an existing collection of Federal Information Processing Standards (FIPS ) configuration settings. The FIPS
standards are a set of United States government security standards required for use in computers maintained by
non-military government agencies and by government contractors. This cmdlet was introduced in Lync Server
2013.

Syntax
Set-CsFIPSConfiguration [[-Identity] <XdsIdentity>] [-Confirm] [-Force] [-RequireFIPSCompliantMedia <Boolean>]
[-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

Set-CsFIPSConfiguration [-Confirm] [-Force] [-Instance <PSObject>] [-RequireFIPSCompliantMedia <Boolean>]


[-Tenant <Guid>] [-WhatIf] [<CommonParameters>]

Description
The Federal Information Processing Standards (FIPS ) are a series of standards and guidelines used by computers
engaged in work for the United States government; for example, there are FIPS standards that govern the use of
such things as cryptography, encryption, and digital signatures. (See http://www.itl.nist.gov/fipspubs/by-num.htm
(http://www.itl.nist.gov/fipspubs/by-num.htm) for more information.) Skype for Business Server provides an option
that enables the software to use only algorithms that meet the FIPS standards. If you need to work with the United
States government (or with other entities that follow FIPS ) then you can enable FIPS compliance in Skype for
Business Server.
Keep in mind, however, that, for the on-premises version of Skype for Business Server, you have only a single,
global collection of FIPS configuration settings: FIPS compliance can only be enabled or disabled for your entire
Skype for Business Server implementation. You cannot selectively enable or disable FIPS compliance on, say, an
individual site or an individual Registrar pool. If you do enable FIPS compliance, you could potentially encounter
problems when trying to communicate with organizations that do not fully adhere to the FIPS standards.
By default, FIPS compliance is disabled in Skype for Business Server.
The Set-CsFIPSConfiguration cmdlet is used to enable or disable FIPS compliance.
Skype for Business Server Control Panel: The functions carried out by the Set-CsFIPSConfiguration cmdlet are not
available in the Skype for Business Server Control Panel.

Examples
-------------------------- Example 1 --------------------------

Set-CsFIPSConfiguration -Identity "global" -RequireFIPSCompliantMedia $True


In Example 1, the RequireFIPSCompliantMedia property of the global FIPS configuration settings is set to True
($True).

Parameters
-Confirm
Prompts you for confirmation before executing the command.

Type: SwitchParameter
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Force
Suppresses the display of any non-fatal error message that might occur when running the command.

You might also like