Yes. I said it.
Someone needed to put a line in the sand and today, that person is me. I’m going to say these are some best practices.
But of course, your mileage may vary, depending on your type of organization (users at a local bank or city government will have different threats presented to them than an engineering firm with international customers, for example). … [ Continue reading ]
With the advent of scammers, spammers, phishers, and other types of baddies, and the complementary rise in anti-malware, anti-spam, domain and sender verification techniques, we’re in a perpetual cat-and-mouse game. I’ve had several customers over the past few weeks ask me about best practices for configuring some of the Advanced Threat Protection (ATP) features.… [ Continue reading ]
After several months of hard work, the team at Packt has brought this book to life! The requisite shout-outs include:
Thanks to everyone who was patient with me and supported me along the way with pizza, tacos, good vibes, and positive feedback. … [ Continue reading ]
While working on a script for an upcoming project, I wanted to test for the presence of various Office versions, including 32-bit and 64-bit components before initiating setup. Here’s one way I found:
SET CURRLOCATION32="C:\Program Files (x86)\MicrosoftOffice\root\Office16"
SET CURRLOCATION64="C:\Program Files\MicrosoftOffice\root\Office16"
SET PREV1LOCATION32="C:\Program Files (x86)\MicrosoftOffice\root\Office15"
SET PREV1LOCATION64="C:\Program Files\MicrosoftOffice\root\Office15"
SET PREV2LOCATION32="C:\Program Files (x86)\MicrosoftOffice\root\Office14"
SET PREV2LOCATION64="C:\Program Files\MicrosoftOffice\root\Office14"
REM Check for 64-bit versions
IF EXIST ""%CURRLOCATION64%\MANIFEST.XML""
… [ Continue reading ]
A new year, a new test!
While troubleshooting a few installation and update issues, I noticed that the endpoints list was a smidgen out of date, so I’ve updated that. For this update, I attached Fiddler (http://www.telerik.com/Fiddler… [ Continue reading ]
Surprise! I have another book! It’s available for pre-order on Amazon now.
This is gonna be a busy year for me. This time, I’m collaborating with two of my peers:
Together, we’re putting together the MS-900 exam guide, chock full of things you wish you would have known the first time you took the it. … [ 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 ]
Hey, everyone! I know I’ve been quiet for the last few weeks, but not without good cause. I’ve been furiously making edits and checking them twice for my newest book, “Deploying Microsoft 365 Teamwork: Exam MS-300 Guide.”… [ 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, while logging into a Windows Server via my favorite RDP tool (RDCMan), I was faced with the “Your password has expired” prompt. No worries, just enter my password and change it.
Except for the part where the password has been saved and I neglected to add it to my password manager.… [ Continue reading ]
So, for a while, there has been a gap in the Office 365 Government Community Cloud (GCC) SharePoint environment when it comes to the integration of Flow in GCC vs how it looks in our commercial environments. … [ Continue reading ]
My colleague Andreas asked today for some help troubleshooting an issue he’d run into with the Create-LabUsers script failing while using the InflateMailboxes parameter.
The problem ended up being three-fold:
- I had some pre-populated user names that had spaces in them
- I hadn’t trimmed the spaces out when constructing the SMTP address (although I had for the UPN)
- I didn’t test for a valid RFC sender address when constructing the mail
So, all of those things together conspired to generate errors whenever some of those user names were hit. … [ 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 ]
This certainly seems to be a day for updates! Based on some additional feedback from my peers, I’ve updated the Get-UserHoldPolicies script to exclude legacy Exchange MRM policies by default. MRM policies, while they have RetentionPolicyTags, are technically either moving or deleting content, not preserving it.… [ Continue reading ]