TTL Update for all DNS Resource Records in Multiple Zones

Today I had to change the TTL (time-to-live) values on a bunch of pinpoint Lync resource records in a multi-domain (35+) DNS environment. I’d discovered that they had all been created by different people with different timeout settings. As you can imaging, the thought of changing several thousand records by hand was quickly dismissed. Powershell to the rescue. Now, a few notes on this script, it’s quick-and-dirty, no guarantees here: It assumes you have all of the AD/DNS PowerShell tools available on your system. It can definitely be improved with logging and better status output. Feel free to add those yourself. Because …

Continue reading

PowerShell Progress Bar with Time Remaining

I spent a bunch of time searching the internet for some pre-baked PowerShell code showing how to display a progress bar that showed more than percent complete or records to completion. I couldn’t find anything, so spend some time writing one. This snippet should be pretty usable for anyone familiar with PowerShell loops. It gives you a nice little display like this, displaying total number of records, percentage complete, time left, as well as records complete.   2015-09-16: Updated to set % Complete to Always 2 decimal places.

Continue reading

Combined PowerShell Console to Manage Lync, Active Directory, Exchange Online and Office 365

As a Lync / Skype for Business administrator, I need to make changes frequently to Active Directory (on-premises), Lync/Skype for Business (on-premises), Office 365 Licensing and Exchange (cloud) on a regular basis. For months, when working with only Active Directory and Lync, I’d just remote desktop to the necessary machines to run PowerShell commands, then run my PowerShell commands in a local window. Then we went to Office 365, and I could only PowerShell remote to those services. I spent hours and hours scouring the internet looking for some example code that would allow me to administer all four of those …

Continue reading

Find Disabled Users Still Licensed in Office 365

Recently I needed to discover why we’d run out of Office 365 licenses. Turns out, in a federated Office 365 Active Directory environment with DirSync, this is not easy data to come by. There’s no canned reports in Office 365 that really can answer this question for you. Because I’m a PowerShell addict, I decided I  needed to get a list of licensed Office 365 users that were disabled in the local Active Directory, using PowerShell. Now, Pat Richard’s ehloworld.com has a great little one-liner on how to query this data in a fully on-premises AD/Lync (or Skype for Business…thanks …

Continue reading

Factory Default Polycom VVX from Web Interface

Just making a quick note here on resetting Polycom VVX phones to factory defaults. We know that we can use the key combination of 3,5,1 (all held down together) to default a phone when you are at the actual device. What do you do when you are remote and you don’t want to give the user the phone administrative password? You need to use the web interface. Took me a while to figure out where this is. I’ve done it before, but I’m slow and I hate documenting, so promptly forgot! Login to the phone using the web interface (Polycom disables …

Continue reading

Lync Auto Attendants with PowerShell in Office 365

How to create multiple Lync auto attendants, in an environment where you are running Lync 2013 or Skype for Business on-premises, using Office 365 Exchange Online for voice mail. This use case was developed for a mid-sized corporation that has many sub-businesses and locations. Business requirements necessitated separate Auto Attendants in Lync for each location/office and sub-business. In this example, we’re going to create two automated attendants, one for a sub-business called Salamander (SL), in the Rome (RM) location/office. In Active Directory, we are using CustomAttribute1 for business abbreviation, and CustomAttribute2 for location abbreviation. Exchange Online Connection First of all, we need to …

Continue reading