As a fun scripting project, I thought it would be beneficial to create an Event Log Matrix of sorts that displayed Windows Server application and system errors and warnings by count and error message on a simple HTML page using PowerShell. The below script dumps the top 5 errors per server, along with the error count, Event ID, Error Type and the event message for the last 2 hours. This is a great tool for daily system checks.
I recently deployed Lync 2013 with great success and wanted to share a test diagram that depicts the infrastructure that was used.
In my environment we have the following requirements or constraints:
- Single Forest with Multiple Peer User Domains
- No Split DNS, so all users are treated as External users
- All IP addresses are publically routable – (Private IPs are used for test lab purposes)
- DNS Load Balancing is used for all non-HTTPS Traffic
- Hardware Load Balancing is used for all HTTPS traffic
- Threat Management Gateway 2010 is used for Reverse Proxy role
- We have no WAC or Office App server deployed
- Only basic IM, Web Conferencing, Desktop Sharing, and Mobility is offered
- No telephony or voice integration at the moment
- Lync AutoDiscover SRV and DNS records point at the Lync Edge Access IPs
- Mobile AutoDiscover points at the HWLB for the TMG Array
- Public Certificates are used
- Lync 2013 servers are running on Windows 2008 R2
- SQL Servers are running SQL 2012 on Windows 2012
- We decided to go with Windows 2008 R2 on all of the Lync 2013 Edge and Frontend servers due to an issue with Certificates and the Windows Fabric Manager service. After a lengthy Microsoft case, it was recommended we use Windows 2008 R2 until they fixed the bug internally. (My project had a short deadline, so we did not have time to wait)
- 75,000 Users
- Basic IM, Web Conferencing, Desktop Sharing, Mobility, File Transfer, Outlook Integration
- Mixture of Communicator 2007 and Lync 2013 clients
- Broad BYOD mobile policy, where we support iOS, Android and Windows mobile devices
- Multiple User domains
- Archiving is Enabled – 30 day retention
- Outlook Integration is Enabled
- We only have a peak utilization rate of 15% for logged in, concurrent users. (11,000 of the 75,000 at one time)
- Note: Each virtual Lync Frontend server can support roughly 7,500 concurrent users, so scale accordingly.
3 Lync 2013 Front-end Servers – 16 GB RAM, 8 Logical Processors – Single 100 GB Volume
2 Lync 2013 Edge Servers – 16 GB RAM, 8 Logical Processors – Single 100 GB Volume
2 SQL Standalone Servers – 16 GB RAM, 8 Logical Processors – (1) 40 GB OS, (1) 100 GB SQL
1 SQL Standalone Quorum Server – 4GB RAM, 8 Logical Processors – Single 50 GB Volume
Note: All servers are Virtual Machines running on VMware.
- Publically routable IP addresses (not in the lab of course)
- No Split DNS
- DNS Load Balancing and HWLB design
- SRV records point at SIP.domain.com, SIP.domain.com points at Lync Edge servers
- Both TMG and Lync Edge servers have two NICs, in dual homed setup.
- Edge and TMG are non-domain members
GET THE FULL FILE HERE – Lync 2013 PDF Diagram Download it now
I’ll get into the installation steps at another time, but this should give you general idea of how the architecture will look like when you don’t have split DNS, all IPs are publically routable, and all users must be treated as external users.
Best of luck!
While migrating mailboxes from Exchange 2003 to Exchange 2010, I wanted to get periodic email updates on the mailbox move status. Below is a quick Exchange PowerShell script to do this work. (I am sure it can be improved greatly, but it served as a quick fix to my need)
The script: Save this file as Get-MOVE-STATUS.ps1 in your C:\Scripts folder. (CAS server works best)
Note: If you want to automate this, save the above PowerShell Script as Get-MOVE-STATUS.ps1 and then create a batch file with the below text. You can then create a scheduled task calling the batch file with whatever time iterations you need. (Be sure to run it as “elevated” or highest privileges and as an account that has access to Exchange servers)
Best of luck!
How much overhead is there in Exchange 2010 with regard to mailbox content and storage consumption in the Junk Email and Deleted Items folders? This topic often comes up as expensive SANs and Storage arrays fill up, especially with thin-provisioned storage arrays, such as Equallogic designs for Exchange.
There are 2 main topics that I wanted to check on each Exchange 2007 Mailbox Server:
- How much data is stored in the Deleted Items Folder
- How much data is stored in the Junk E-Mail Folder
My experience has shown that 10-15% of your overall Exchange data is located in one of these two folders if your organization does not institute some type managed folder or retention policy in your Exchange organization.
I have written a script to pull the Mailbox size, Deleted Items, and Junk Email Size out of Exchange. For large Exchange organizations, this script could take some time to run. The script dumps all of the data to an Excel spreadsheet that is then emailed to the email administrator. At the end of the script you will have to define the Recipient, Sender and SMTP server.
Out-Put is dumped to Excel:
Remedial Actions on cleaning up this data within Exchange:
- We can create Exchange 2007 Managed Folder Policies or Exchange 2010 Retention Policy Tags, meaning we auto-purge items in specific folders.
- We can adjust how long the Deleted Items or Dumpster is preserved
- We can adjust the DIRT (Deleted Item Retention Time) and DMRT (Deleted Mailbox Retention Time)
- We can adjust quotas and nag limits on usersdatabases
Update: I just recently added a “Managed Folder” query as well, which is defined as part of your Managed Folder or Item Retention Policy.
This is one of the more handy scripts I have put together. It enumerates both the Active Directory and Exchange mailbox data\statistics and sends them to an administrator’s email account, in a nicely formatted message.
Active Directory Information
Exchange Mailbox Statistics
Safe Senders List
Exchange Logon Statistics
Exchange ActiveSync\Mobile Device Info
I am still working on the syntax for the Safe Senders list…..
Usage: Run the script and pass it two variables at the prompts:
- The alias of the mailbox you want to dump
- The Email address of the person you want to send the report
Best of luck,
I decided to work on an Exchange 2010 PowerShell, HTML Status page script that would dump the following Exchange 2010 Mailbox information statistics:
- Exchange Mailbox and Distribution List counts per domain
- Total Exchange Mailbox Count, with averages and totals of Mailbox size and content
- Total number of Databases with raw storage used, averages, and max and min DB sizes
- The script: Save the script below as
The Output: Nice and organized HTML Page
If you want to automate this and archive the HTML file each day, you can create a batch file and call the PowerShell script using a scheduled task.
Best of luck!