October 30, 2024

Optimizing Coauthoring in SharePoint: Essential Checks and Configurations

When assessing a customer I found some challenges in their environment regarding co-authoring. Coauthoring is a collaborative feature of SharePoint that allows multiple users to work on a document simultaneously. This feature enhances productivity and teamwork by enabling real-time collaboration, ensuring everyone has the latest version, and preventing the creation of multiple conflicting versions of a document.

Microsoft Feature Confirmation: You can find official information confirming coauthoring as a feature of SharePoint in the following Microsoft documentation: Collaborate on Word documents with real-time co-authoring.

Areas to be Tested by the Script and Their Importance

  1. Basic Connectivity Test: Command: Test-NetConnection -ComputerName $sharePointSite Description: This tests the basic network connectivity to the SharePoint site. Ensuring that users can reach the SharePoint servers is fundamental for accessing documents and co-authoring.
  2. Ping Test: Command: Test-Connection -ComputerName $sharePointSite -Count 4 Description: This measures the response time and packet loss to the SharePoint site. High latency or packet loss can significantly affect real-time collaboration and document saving.
  3. DNS Resolution Test: Command: Resolve-DnsName -Name $sharePointSite Description: Verifies that the domain name for the SharePoint site resolves correctly. DNS issues can prevent users from accessing SharePoint.
  4. HTTP Test: Command: Invoke-WebRequest -Uri “https:// yoursharepointsite” Description: Tests the HTTP connectivity to ensure that the web services required for SharePoint functionalities, including coauthoring, are accessible.
  5. Network Interface Statistics: Command: Get-NetAdapterStatistics Description: Provides details on the network interface’s performance, helping diagnose issues related to network throughput and errors.
  6. IP Configuration: Command: Get-NetIPConfiguration Description: Captures the IP configuration of the user’s device to ensure it is correctly configured for network communication.
  7. Route Print: Command: Get-NetRoute Description: Checks the routing table to ensure there are no routing issues that might affect connectivity to SharePoint.
  8. Port Scan: Command: Test-NetConnection -ComputerName $sharePointSite -Port 443 Description: Ensures that the necessary ports for HTTPS communication are open and accessible, which is crucial for secure communication with SharePoint.
  9. Network Card Settings (Speed and Duplex): Command: Get-NetAdapter | Select-Object Name, Status, LinkSpeed, MediaType, FullDuplex Description: Verifies that the network card is operating at optimal settings, which is vital for maintaining good network performance.
  10. WebDAV Metrics: Command: Custom function Get-WebDAVMetrics Description: Checks the status of WebDAV, which is often used for accessing and managing documents in SharePoint libraries.
  11. HTTP Connectivity Data: Command: Custom function Check-HTTPConnectivity Description: Measures the response time of HTTP requests to ensure web services are performing well.
  12. Performance Data: Commands: CPU Usage: Get-Counter -Counter “\Processor(_Total)\% Processor Time” Available RAM: Get-Counter -Counter “\Memory\Available MBytes” Cache Size: Get-Counter -Counter “\Memory\System Cache Resident Bytes” Disk Response Time: Get-Counter -Counter “\PhysicalDisk(_Total)\Avg. Disk sec/Transfer” Description: Monitors system performance to identify any local issues that could impact the user’s ability to coauthor documents effectively.
  13. Office Document Cache Data: Command: $cachePath = “$env:LOCALAPPDATA\Microsoft\Office\16.0\OfficeFileCache” Checks location and then you can get the size of Office cache Description: Ensures that the Office document cache is not excessively large, which can affect performance.
  14. VPN Data: Command: Get-VpnConnection – Checks if the user is connected via VPN Description: VPNs can introduce latency and connectivity issues; verifying this helps identify potential network bottlenecks.
  15. Document Access Method: Command: Custom function Determine-AccessMethod Description: Determines if the document is being accessed via OneDrive or SharePoint, which can help diagnose specific access issues.
  16. OneDrive Sync Check: Command: Test-Path -Path $oneDrivePath Description: Checks if the document is being synced via OneDrive, which can affect coauthoring performance.
  17. Microsoft Graph User Activity: Command: Custom function Get-UserActivityFromGraph Description: Fetches user activity from Microsoft Graph to monitor what the user is doing in SharePoint during monitoring. This helps identify any actions that might affect coauthoring.
  18. Check the version of Office Each User is Using: Ensuring all users are on the latest version of Office can prevent compatibility issues and provide access to the latest features and security updates.
  19. Check How Users Are Accessing Files (OneDrive or SharePoint): Understanding how users access files can help troubleshoot coauthoring issues. Accessing files using OneDrive which syncs SharePoint files can cause problems with coauthoring.
  20. Check Document Library Settings in SharePoint: Proper configuration of document libraries is crucial for smooth coauthoring.
  21. Check Desktop OneDrive Configuration for Syncing: Proper syncing configurations can prevent issues with accessing and editing documents offline.
  22. Check OneDrive Configuration Pushed to Clients: Ensure group policies or other configurations pushed to clients are correct and up-to-date.

Importance of These Tests

Network Connectivity: Ensures that users can reach SharePoint servers, which is the baseline requirement for accessing documents and using coauthoring features.

System Performance: Local system performance impacts the user’s ability to work efficiently. High CPU usage, low available RAM, and disk performance issues can degrade the coauthoring experience.

HTTP and WebDAV Connectivity: Validates that the necessary web services for document access and collaboration are performing well.

400 Bad Request: The server could not understand the request due to invalid syntax.

401 Unauthorized: Authentication is required and has failed or has not yet been provided.

403 Forbidden: The server understood the request but refused to authorize it.

404 Not Found: The requested resource could not be found.

500 Internal Server Error: The server has encountered a situation it doesn’t know how to handle.

502 Bad Gateway: The server, while acting as a gateway or proxy, received an invalid response from the upstream server.

503 Service Unavailable: The server is not ready to handle the request, often due to maintenance or overloading.

Network Configuration: Proper network setup, including IP configuration and routing, is critical for maintaining stable connections to SharePoint.

OneDrive and SharePoint Access: Differentiate between access methods, as syncing via OneDrive can introduce additional variables affecting performance and functionality.

VPN Connectivity: VPNs can introduce additional latency and connection issues, making it important to identify if they are in use.

User Activity: Monitoring user activity through Microsoft Graph provides insights into what users are doing during monitoring, which helps in troubleshooting coauthoring issues effectively.

Additional Information

For more detailed information about coauthoring in SharePoint, please refer to the official Microsoft documentation: