This week I wanted to do something a little bit fun. You’ve probably seen scripts that keep your mouse moving so your machine doesn’t go to sleep…
But have you ever seen one with PowerShell?
Yes, with the
[System.Windows.Forms.Cursor]… [ Continue reading ]
This past weekend, while working with a customer on a new proof-of-concept deployment of Exchange Hybrid and Microsoft Teams, we had a need to validate that no user accounts would be inadvertently updated during the upgrading of Exchange 2003 Recipient Policies to modern Exchange email address policies.… [ Continue reading ]
This morning, while attempting to set up a virtual machine in my lab environment, I encountered an error while attempting to install the MSOnline module–the NuGet and PowerShellGet components were not already installed. Easy enough–the installation procedure prompts to install them anyway, so just hit yes, right?… [ Continue reading ]
Today, a colleague asked how to disable OneDrive for Business for a customer.
The answer, of course, is like many tech answers.
In this case, it depends on whether you mean “prevent OneDrive from provisioning” or “prevent users from accessing OneDrive sites that have already been provisioned.” … [ Continue reading ]
This week, I was testing something for a customer that required me to check back on a data replication/sync task. The fun part about continuously checking on something is that I’m human and I will eventually forget (or get bored and just stop doing it). … [ Continue reading ]
This past week, I’ve been heads down working on an application to take inbound data from one application that doesn’t have a webhook or API available and query a Dynamics 365 instance.
In order to query Dynamics 365 (or any Azure/Microsoft 365 service, to be honest) successfully, you’ll need to work with OAuth. … [ Continue reading ]
Yesterday, I needed to help configure a SharePoint Server 2019 User Profile service to import from local Active Directory using the native SharePoint Active Directory Import.
In order to perform Active Directory Import, the service account you specify must have Replicating Directory Changes permissions.… [ Continue reading ]
Today, I was asked about manually disabling the Skype of Business Outlook plug-in for a customer where users have both Skype and Teams clients and are configured in Islands mode.
This is what I came up with. … [ Continue reading ]
UPDATE: This script is now available on the PowerShell Gallery at https://www.powershellgallery.com/packages/Teams-AutoAnswerWithVideo/.
Today, while working with my esteemed colleague Stephen Jones, we were discussing a need for some of our customers to auto-answer Teams with a video call. … [ Continue reading ]
I was installing a new SharePoint Server 2019 farm and after applying all updates and configuring the SharePoint Products Wizard, I restarted my servers a final time and logged on, only to find that I couldn’t access the SharePoint Products Wizard anymore.… [ Continue reading ]
If you ever find yourself in a sticky wicket and need to extract usernames and passwords from Credential Manager (usually because you forgot them), you can use this handy-dandy little function from PowerShell:
# Dump local passwords from credential manager
… [ Continue reading ]
As luck would have it, I had to get the newest version of the Microsoft Teams PowerShell module. It’s still a test module and not available in the main PSGallery. So, I had to poke around and figure out how to add it and get the version that supports Get-TeamChannelUser.… [ Continue reading ]
This afternoon, while working on my upcoming book for the MS-300 exam, I was attempting to sign into SharePoint Online via PowerShell and encountered this moderately cryptic message:
Cannot contact web site 'https://tenant-admin.sharepoint.com/' or the web site does not support SharePoint Online
… [ Continue reading ]
Just a quickie post this holiday week.
Many customers have had Exchange on-premises forever. Back in the olden days, we just had user mailboxes. Need a shared team mailbox? You get a user mailbox. Need a conference room mailbox? … [ Continue reading ]
While twirling my luscious locks and thinking of ways to input data for my haveibeenpwned-based query tool, I thought to myself, “self, how cool would it be to just generate a list of hyper-linked email addresses from a public website?”… [ Continue reading ]
I got caught up in doing this, and now it’s 3:45AM. C’est la vie! My loss of sleep is your threat analysis gain.
I’ve made several updates to the PwnCheck tool (used to query the HaveIBeenPwned.com… [ Continue reading ]
Today, I was updating a script I wrote a while ago, and I wanted to streamline the processing loops once input was received. This particular script took parameters for:
- Identity (as an email address or UserPrincipalName)
- CSV (with either no header or a header of UserPrincipalName)
- Target environment type (either Active Directory or Office 365/Azure AD, which return a UserPrincipalName property with Get-ADUser or Get-AzureADUser)
I had gone the “easy” route and just done a simple If/Then to see if the Identity parameter had been passed, and if it had, run a separate chunk of code (which made troubleshooting or updates much harder since I had to keep two branches of the code synced when I made updates).… [ Continue reading ]
Today, I just put together a quick little project for a friend of mine who needed a way to scrape downloadable documents and video files from a website for a project. Rather than clicking and downloading each one manually, he wondered if there was a way he could do it with a script.… [ Continue reading ]
I couldn’t really come up with a cool-sounding title for this post, so I just went with the basics of what it does.
Last week, I worked with a customer that wanted to deploy custom retention labels to custom folders inside a user’s mailbox–the idea being that they would create a custom folder structure such as this under a user’s Inbox:
\Inbox\Retention Schedule\2 Year (apply a 2-year retention label to everything in this folder)
\Inbox\Retention Schedule\4 Year (apply a 4-year retention label to everything in this folder)
\Inbox\Retention Schedule\7 Year (apply a 7-year retention label to everything in this folder)
\Inbox\Retention Schedule\Forever (apply a ‘Never delete’ retention label to everything in this folder)
Seems easy enough, right? … [ Continue reading ]
Here’s a fun one … Disabling Teams auto-startup. Imagine this scenario:
- You haven’t trained your service desk on how to answer/troubleshoot/manage Teams help desk calls
- You’ve configured restrictions on who can create Teams
- You’ve deployed the new Office ProPlus update with Teams integrated.
… [ Continue reading ]