-
Notifications
You must be signed in to change notification settings - Fork 0
Get LyncInfrastructureReport
Generates a detailed infrastructure and configuration report for Lync/Skype for Business environments. This reporting tool analyzes pools, computers, services, topology, and conference directories to provide administrators with comprehensive infrastructure documentation and health assessment.
- Pool Categorization: Automatic classification by pool type (Standard, SBA, IVR, Edge)
- Computer Deployment Analysis: Server distribution across pools
- Service Configuration Review: Role-based service mapping
- Topology Documentation: Site structure and configuration
- Conference Directory Inventory: Meeting infrastructure assessment
- Infrastructure Health Summary: Operational status indicators
- Customizable Display Limits: Control report verbosity
- Flexible Pattern Matching: Adapt to various naming conventions
- PowerShell Version: 3.0 or higher
- Required Environment: Lync/Skype for Business Management Shell
-
Required Permissions:
- CsServerAdministrator or CsAdministrator role
- Read access to Lync topology
- Network Requirements: Access to Lync Central Management Store
-
OrganizationName: Organization name
- Type: String
- Default:
"Organization" - Description: Organization name for report headers
-
ReportPath: Output file path
- Type: String
- Default:
"C:\Reports\Lync_Infrastructure_{timestamp}.txt" - Description: Full path where infrastructure report will be saved
-
SBAPattern: SBA pool identification pattern
- Type: String
- Default:
"*MSSBA*" - Description: Wildcard pattern to identify Survivable Branch Appliance pools
-
IVRPattern: IVR pool identification pattern
- Type: String
- Default:
"*ivr*" - Description: Pattern to identify IVR (Interactive Voice Response) pools
-
EdgePattern: Edge server pool pattern
- Type: String
- Default:
"*edge*" - Description: Pattern to identify Edge server pools for external access
-
LyncPattern: Standard Lync pool pattern
- Type: String
- Default:
"*lync*" - Description: Pattern to identify standard Lync/Skype pools
-
MaxComputersPerPool: Computer display limit
- Type: Integer
- Default:
5 - Description: Maximum computers to show per pool in detailed analysis
-
MaxServicesPerRole: Service display limit
- Type: Integer
- Default:
5 - Description: Maximum services to show per role in detailed analysis
.\Get-LyncInfrastructureReport.ps1Generates infrastructure report with default organization name and patterns.
.\Get-LyncInfrastructureReport.ps1 -OrganizationName "Contoso Corp" -ReportPath "D:\Reports\Contoso_Infrastructure.txt"Creates report with custom organization name and output location.
.\Get-LyncInfrastructureReport.ps1 -SBAPattern "*Branch*" -LyncPattern "*teams*" -MaxComputersPerPool 10Uses custom patterns for Teams-branded deployment with increased computer display.
.\Get-LyncInfrastructureReport.ps1 -OrganizationName "Global Corp" -EdgePattern "*dmz*" -MaxComputersPerPool 20 -MaxServicesPerRole 10Detailed report for large multi-site deployment with custom Edge pattern.
.\Get-LyncInfrastructureReport.ps1 -SBAPattern "*sba*|*branch*|*remote*" -MaxComputersPerPool 3Focuses on branch office infrastructure with multiple SBA patterns.
- Total Pools: Count and breakdown by type
- Total Computers: Server count across all pools
- Total Services: Service instance count
- Topology Sites: Geographic/logical site count
- Conference Directories: Meeting infrastructure count
Core communication infrastructure:
- Identity: Full pool FQDN
- Site: Site assignment
- Services: Registrar, WebServices, Conferencing, Application
- Computers: Frontend servers, Director servers
- Computer Count: Number of servers in pool
Branch office resilience:
- Identity: SBA FQDN
- Site: Branch location
- Services: Registrar, Gateway, Mediation
- Computer: SBA appliance or server
- Purpose: Branch survivability during WAN outage
Voice response systems:
- Identity: IVR system FQDN
- Services: Application, UCMA services
- Integration: Workflow applications
- Computer: Application server
External access infrastructure:
- Identity: Edge pool FQDN
- Services: Access Edge, Web Conferencing Edge, A/V Edge
- External FQDN: Public-facing address
- Computer Count: Number of Edge servers
Pools not matching defined patterns:
- Listed for review and categorization
- May include appliances, third-party systems, or legacy servers
For each pool (up to MaxComputersPerPool shown):
- Computer FQDN: Server fully qualified domain name
- Pool Assignment: Parent pool
- Services Hosted: Services running on server
- Operating System: Windows version (if available)
- Physical/Virtual: Deployment type (if detectable)
Services grouped by role:
- Registrar: User registration and authentication
- WebServices: Web-based services and APIs
- Conferencing: Meeting and collaboration services
- Application: Application server and workflows
- Mediation: PSTN gateway mediation
- Monitoring: Call Quality and monitoring services
- Archiving: Compliance and archiving services
- PersistentChat: Persistent chat room services
For each service:
- Service name and role
- Pool assignment
- Computer hosting the service
- Status indicators
For each site:
- Site Identity: Site name
- Pools in Site: Pools assigned to location
- Central Site: Whether site is central or branch
- Site Links: Connectivity to other sites (if configured)
Conference infrastructure:
- Directory ID: Numeric identifier
- Home Pool: Pool hosting directory
- Purpose: Meeting ID range and assignment
- Usage: Active/inactive status
- Healthy Pools: Pools with all services running
- Pools with Warnings: Pools with degraded services
- Critical Pools: Pools with service failures
- Computer Distribution: Balance across pools
- Service Distribution: Service role distribution
Default: C:\Reports\
Pattern: Lync_Infrastructure_{YYYYMMDD_HHmmss}.txt
Example: Lync_Infrastructure_20251223_143052.txt
Progress indicators:
- Pool categorization status
- Computer enumeration progress
- Service discovery status
- Report generation progress
Solution: Ensure you have write permissions to output directory:
# Test write access
New-Item -Path "C:\Reports\" -ItemType Directory -Force
# Or specify alternate path
.\Get-LyncInfrastructureReport.ps1 -ReportPath "$env:USERPROFILE\Desktop\Lync_Infra.txt"Solution: Adjust pattern parameters to match your naming convention:
# First, identify your pool naming
Get-CsPool | Select-Object Identity
# Then adjust patterns accordingly
.\Get-LyncInfrastructureReport.ps1 -SBAPattern "*yoursbapattern*" -LyncPattern "*yourpoolpattern*"Solution: Reduce display limits:
.\Get-LyncInfrastructureReport.ps1 -MaxComputersPerPool 3 -MaxServicesPerRole 3Solution: Increase display limits:
.\Get-LyncInfrastructureReport.ps1 -MaxComputersPerPool 50 -MaxServicesPerRole 50Solution: Run from Lync Management Shell or import module:
# Import Lync module
Import-Module "C:\Program Files\Common Files\Skype for Business Server 2015\Modules\SkypeForBusiness\SkypeForBusiness.psd1"
# Or launch Lync Management Shell
# Start Menu β Lync Server Management ShellPossible Causes:
- No pools match patterns: Adjust pattern parameters
- Permissions issue: Verify CsAdministrator role
- Incomplete topology: Verify topology publishing
Solution: Verify data availability:
# Test each cmdlet manually
Get-CsPool
Get-CsComputer
Get-CsService
Get-CsTopology
Get-CsConferenceDirectoryExample: Both "lyncpool" and "lyncsba" match "lync"
Solution: Use more specific patterns:
# Use more specific patterns
.\Get-LyncInfrastructureReport.ps1 -LyncPattern "*lyncfe*" -SBAPattern "*lyncsba*"Complete infrastructure documentation:
- Generate comprehensive infrastructure report
- Archive for compliance and audit
- Update network diagrams from pool/computer data
- Document service distribution
Analyze infrastructure for capacity:
- Review computer distribution per pool
- Identify overloaded pools
- Plan new pool deployments
- Document growth trends
Before Lync to Teams migration:
- Document all pools and their purpose
- Identify SBA locations needing Teams survivability
- Map Edge servers to Direct Routing requirements
- Capture conference directory assignments
For DR planning:
- Document pool dependencies
- Identify critical vs. non-critical pools
- Map service distribution for recovery prioritization
- Document site topology for geo-redundancy
Before major changes:
- Generate pre-change infrastructure report
- Perform infrastructure upgrade or change
- Generate post-change infrastructure report
- Compare reports to verify changes
For site connectivity problems:
- Review topology sites section
- Identify pool assignments per site
- Verify site links and routing
- Compare with network topology
Infrastructure security assessment:
- Identify all Edge servers (external access points)
- Document service distribution (attack surface)
- Review computer inventory for patching
- Identify unclassified pools (potential rogue systems)
Evaluate branch infrastructure:
- Focus on SBA pools using custom pattern
- Count branch locations
- Assess survivability coverage
- Plan Teams Phone survivability requirements
| Deployment Type | Example Names | Recommended Pattern |
|---|---|---|
| Standard Pool | lyncpool01.contoso.com |
*lync* or *pool*
|
| SBA | boston-sba.contoso.com |
*sba* or *branch*
|
| Edge Server | edge.contoso.com |
*edge* or *dmz*
|
| IVR | ivr01.contoso.com |
*ivr* or *voice*
|
| Teams Hybrid | teamspool.contoso.com | *teams* |
| Multi-Site | newyork-lync.contoso.com | Use site prefix |
-
*matches any characters:*lync*matches "prelync01", "lyncpool", "mylyncserver" - Case insensitive:
*LYNC*and*lync*are equivalent - Multiple patterns: Not supported directly (use most specific pattern)
Before running report, test your patterns:
# Get all pools
$pools = Get-CsPool | Select-Object -ExpandProperty Identity
# Test SBA pattern
$pools -like "*MSSBA*"
# Test Lync pattern
$pools -like "*lync*"
# Adjust patterns as needed- β All expected services running
- β Computer count matches deployment
- β Services distributed appropriately
- β No configuration warnings
β οΈ Fewer computers than expectedβ οΈ Unbalanced service distributionβ οΈ Services on unexpected computersβ οΈ Pools in unclassified category
- β No computers in pool
- β Required services missing
- β Conference directories missing
- β Topology inconsistencies
- Get-ComprehensiveLyncReport.ps1 - Complete environment assessment
- Get-LyncHealthReport.ps1 - Health monitoring and diagnostics
- Get-LyncServiceStatus.ps1 - Service status details
- Start-LyncCsvExporter.ps1 - CSV exports for data analysis
-
v2.0 (2025-09-17): Enhanced infrastructure reporting
- Added pool categorization by type
- Enhanced service role grouping
- Added topology site details
- Improved conference directory reporting
- Added customizable display limits
- Enhanced infrastructure health summary
-
v1.0 (2024): Initial release
- Basic infrastructure reporting
- Pool and computer listing
- Overview
- Start-LyncCsvExporter
- Get-ComprehensiveLyncReport
- Get-LyncHealthReport
- Get-LyncInfrastructureReport
- Get-LyncServiceStatus
- Get-LyncUserRegistrationReport
- Export-ADLyncTeamsMigrationData
- New-Office365Accounts
- Sync-ContactsFromCsv
- Set-EmailToSharedAccount
- Set-SMTPForward
- Invoke-UserSignOutAndBlock
- Security Assessment Scripts (coming soon)
- Azure Automation (documentation pending)
- Get-GraphToken
- Get-GraphHeaders
- Get-AzureResourcePaging
- Get-EnterpriseAppUsage
- Get-ExchangeErrorsGraph
- Get-PBIWorkspaceUsageReport
- Intune Management (documentation pending)