As we work for our customers, we often find ourselves in a position where we know it's not only our problem but most likely, a lot of people will hit this sooner or later. This Technical Hub provides our customers and us with solutions, scripts, and other information useful for Administrators and, to some degree, for non-technical people.

March 19, 2021

Submitting blogs to using PowerShell

Since my website went down in fire with OVH SBG2, I used this occasion to publish my restored website via Cloudflare. It allows me to have to cache, minimization, and some additional security. One thing that caught my attention while browsing through Cloudflare settings was the Always Online feature based on Basically, the concept is - whenever the website is down, Cloudflare would go and fetch content from
archive, blogs, powershell, pswritecolor, rss,, write-color
March 16, 2021

Advanced HTML reporting using PowerShell

I've been using HTML reporting in PowerShell for a while. Initially, I would usually build HTML by hand, but the time spent trying to figure out what works and what doesn't drive me mad. With the PSWriteHTML module, a lot has changed. With just a few PowerShell lines, I can create feature-rich reports that change how I show data to my Clients. Today I wanted to show you some advanced HTML reporting without actually complicating PowerShell code. In the last few months, I've added many features that create advanced reports without sacrificing readability.
advanced reporting, css, html, javascript, powershell, pswritehtml, reporting
March 2, 2021

Monitoring LDAPS connectivity/certificate with PowerShell

Some time ago, I wrote a blog post on checking for LDAP, LDAPS, LDAP GC, and LDAPS GC ports with PowerShell. It mostly works, but it requires a tad bit of effort, and it doesn't cover the full scope that I wanted. Recently (well over 3 years ago), Chris Dent shared some code that verifies the LDAP certificate, and I thought this would be good to update my cmdlets to support just that with a bit of my own magic on top.
active directory, ad, ldap, powershell, testimo
Active Directory, PowerShell
January 24, 2021

The only command you will ever need to understand and fix your Group Policies (GPO)

I've been working on cleaning up Group Policies for a couple of months. While it may seem trivial, things get complicated when you're tasked with managing 5000 GPOs created over 15 years by multiple teams without any best practices in mind. While working on GPOZaurr (my new PowerShell module), I've noticed that the more code I wrote to manage those GPOs, the more I knew passing this knowledge to admins who will be executing this on a weekly/monthly basis is going to be a challenge. That's why I've decided to follow a similar approach as my other Active Directory testing module called Testimo. I've created a single command that analyses Group Policies using different methods and shows views from different angles to deliver the full picture. On top of that, it provides a solution (or it tries to) so that it's fairly easy to fix - as long as you agree with what it proposes.
active directory, gpo, group policy, powershell
Active Directory, GPO, PowerShell
January 3, 2021

Creating Office 365 Migration Diagram with PowerShell

A few weeks ago, I posted a concept migration diagram for Office 365 to Twitter and Facebook. Today I thought I would show you how you can do it yourself using PowerShell and PSWriteHTML PowerShell module. When I started working on this, I've thought I want to create before and after infrastructure to see how it will look when migration ends. I've initially planned to assign myself an Office 365 Visio Plan 2 license and do something manually, thinking it may be just much easier. Unfortunately for me, there were no free Visio licenses in my tenant, and my laziness took over, so I've decided to give it a go using PowerShell only.
diagram, module, office 365, powershell, pswritehtml
Office 365, PowerShell
December 6, 2020

Remove-Item : Access to the cloud file is denied while deleting files from OneDrive

I like OneDrive. It allows me to keep my data secure and always synchronized. If things go wrong, I can always get it back. I use it for almost everything. Even for my PowerShell projects, which are committed to GitHub, so in theory, I shouldn't need that. But every once in a while, I make some stupid mistake and delete a file that has yet not been committed to GitHub, and that's where the OneDrive comes in handy. Quick restore, and we're back. Unfortunately, sometimes things aren't as I would expect them to work. For example, let's have a look at this nice list of markdown files that are documentation for my module called GPOZaurr.
delete, onedrive, powershell, remove-item
Office 365, PowerShell, Windows
November 9, 2020

Introducing PSTeams 2.0 – Support for Adaptive Cards, Hero Cards, List Cards and Thumbnail Cards

PSTeams PowerShell module has been on the market for a while now. It supports sending notifications to Microsoft Teams channels via Incoming WebHooks. You could send a pretty message to the team's channel with just a few lines of code. With PSTeams 2.0, support for Adaptive Cards, Hero Cards, List Cards, and Thumbnail Cards was added.
microsoft teams, office 365, powershell, reporting, webhook
Office 365, PowerShell
September 14, 2020

Visually display Active Directory Trusts using PowerShell

Active Directory Trusts are useful to connect one or more domains. But as useful those are, they can be very dangerous. Also, keeping trusts working and in good shape should be a top priority for Active Directory Admins. While there is a couple of command in the Active Directory module Get-ADTrust, I thought I would try and write my own that checks a few more things. I want to thank Chris Dent for his input on the part of this command. His binary skills amaze me!
activedirectory, adessentials, get-winadtrust, powershell, pswritehtml, show-winadtrust
Active Directory, PowerShell
September 2, 2020

Visually display Active Directory Nested Group Membership using PowerShell

In the Active Directory PowerShell module, you have two commands to your disposal that help display group membership. Those are Get-ADGroup and Get-ADGroupMember. The first command contains property Members, which gives you DistinguishedName of all members, and Get-ADGroupMember can provide you either direct members or with Recursive switch all members recursively (skipping groups). Till a few weeks ago, I was a happy user of those commands until I noticed two things. Member property for Get-ADGroup sometimes misses elements for whatever reason.
adessentials, diagram, get-adgroup, get-adgroupmember, nested groups, powershell, pswritehtml
Active Directory, PowerShell
August 28, 2020

Restoring (Recovering) PowerShell Scripts from Event Logs

A few days ago, I was asked to take a look at PowerShell Malware. While I don't know much about malware, my curiosity didn't let me skip on this occasion, and I was handed and WindowsPowerShell.evtx file. Ok, that's not what I expected! I wanted PowerShell .ps1 files that I can read and asses? Well, you play with the cards you were dealt with. What I was handed over was PowerShell Event Log. By design, PowerShell writes whatever you execute, and it thinks it is risky to Windows PowerShell Operation Event Log.
event log, get-events, powershell, powershellmanager, pseventviewer
PowerShell, Windows
August 4, 2020

Mailozaurr – New mail toolkit (SMTP, IMAP, POP3) with support for oAuth 2.0 and GraphApi for PowerShell

Today, I'm introducing a new PowerShell module called Mailozaurr. It's a module that aims to deliver functionality around Email for multiple use cases. I've started it since native SMTP cmdlet Send-MailMessage is obsolete,  and I thought it would be good to write a replacement that adds more features over it as things around us are changing rapidly.
imap, mailozaurr, o365, office 365, pop3, powershell, smtp
Azure AD, Office 365, PowerShell
July 12, 2020

Active Directory DHCP Report to HTML or EMAIL with zero HTML knowledge

I'm pretty addicted to reading blog posts. I saw this new blog post the other day, where the author created the DHCP HTML report, and he did it by manually building headers, footers, table borders, and finally, adding some coloring to the percentage of DHCP being in use. It's the "standard" approach to build HTML in PowerShell, and I've seen a similar path before, but that got me thinking how much time it would take for me to replicate the very same functionality using PSWriteHTML module.
dhcp, html, powershell
Active Directory, PowerShell
June 20, 2020

Getting file metadata with PowerShell similar to what Windows Explorer provides

I'm working on a new feature for one of my modules that requires me to know what kind of files I am working with. It's quite easy in PowerShell, and without a lot of code, you can reasonably quickly get necessary information about data stored on your desktop or anywhere else for that matter.
files, metadata, powershell
June 2, 2020

Using Win32_UserAccount WMI filter in PowerShell/Group Policies and what to avoid

Some months ago, I created PowerShell Script to create local administrative users on workstations - Create a local user or administrator account in Windows using PowerShell. It's a bit overcomplicated, but the goal was it should work for Windows 7 and up, and that means supporting PowerShell 2.0. As part of that exercise, I've been using Win32_UserAccount WMI based query to find local users and manage them to an extent. While Get-LocalUser exists, it's not suitable for the PowerShell 2.0 scenario. I also use the same query in GPO for WMI filtering. You can say it's been a good friend of mine.
active directory, ad, gpo, powershell, wmi
Active Directory, GPO, PowerShell
May 28, 2020

Converting Pester V4 to Pester V5 basics

Now that Pester V5 is out, I decided that I need to make sure that my Pester tests for all my modules keep on running correctly. Some substantial changes in Pester add new features, changing some things, but that also means all the tests that you have defined most likely will need a small push to get it up and running again on Pester V5. Starting this blog post, I wanted to mention that I am by no means an expert on Pester, but I do use it for some time now for most of my projects.  I am using basic functionality, but even that basic functionality stops working once you upgrade from PesterV4 to PesterV5, so I thought I would save you some time and give you a small overview of how you can quickly fix it. It works for me, but you may have to find your way to fix things.
pester, powershell
May 15, 2020

Get-ADObject : The server has returned the following error: invalid enumeration context.

In the last weeks, I'm working on a PowerShell module that the main goal is to work on gathering and fixing GPOs. I've been testing my module a lot of times on my test environment, and it worked fine till the moment I run it on production, and it started to fail pretty quickly. The difference between my environment and production is 25 GPOs vs. 5000 GPOs. The error I was getting:
active directory, get-adobject, powershell
Active Directory, PowerShell
May 8, 2020

Getting Verified badge next to your GitHub commits in VS Code

A bit over two years ago, I started posting my PowerShell code as modules on GitHub. Initially, I planned to have them hosted on my website, but few people asked to post it there, and they were right. It would be fairly hard for me to keep my code up to date on my website and, at the same time, let people submit bug reports or help with some PR. It was the right decision! Now that I've worked for over two years on GitHub as a daily driver, I wanted to get a new green badge that's shown on GitHub when you edit some code. I don't know if you ever noticed, but if you write any code, text file directly via the webpage, your commits always have Verified badge next to them.
git, github, powershell, vscode
April 25, 2020

Azure AD – Removing Inactive Azure AD Pass-through Agent

Recently I was switching Office 365 tenant from ADFS to Azure AD Pass-through authentication (PTA). It all went smoothly with one exception. After removing one of the Azure AD Connect servers and all applications from its Azure AD Connect interface still is showing said agent, just inactive.
azure ad, azure adconnect
Azure AD
April 9, 2020

PowerShellGallery disables support for TLS 1.0 breaking Install-Module

A few days ago, I tried to use Install-Module on the old Windows 2008R2 system that I use for specific tasks.
powershell, tls, tls 1.0, tls 1.2
April 7, 2020

Office 365 – Limiting license to minimum apps required

Office 365 has a lot of options and applications to choose from. Enabling one E1, E3, or any other license gives the user a lot of features, including Exchange, SharePoint, and Teams. But what if you want to make sure that the user can access only Microsoft Teams? By default, you can do it manually during the assignment of the license. Simply choose only Apps you want to assign to a user.
azure ad, office 365, powershell
Azure AD, Office 365, PowerShell
March 24, 2020

Office 365 – msExchHideFromAddressLists does not synchronize with Office 365

azure ad, msExchHideFromAddressLists, office 365, powershell
Azure AD, Office 365, PowerShell
March 12, 2020

The security account manager (SAM) has determined that SID is already in use in the Forest

The security account manager (SAM) has determined that the security identifier (SID) for this computer is already in use in the Forest you want to join. This can happen when restoring an Active Directory Domain Controller with an improper backup. Reinstall the operating system on the local AD DC to obtain a new SID.
active directory, powershell, sid
Active Directory, PowerShell, Windows
February 24, 2020

AzureAD – Enable Password Expiration with Password Hash Synchronization

Azure AD Connect allows three ways to make sure the user password is the same in Active Directory and Office 365. Those are Password Hash Sync, Pass-Thru Authentication, and ADFS. While my preferred option to go with would be Pass-Thru Authentication, only Password Hash Synchronization is the easiest and least resource-intensive. It synchronizes user password to Office 365, and even if your Active Directory is down, you can still log in to Office 365. It's perfect for small and even more significant companies that don't have resources or can't guarantee that their infrastructure will stay 100% time online so users can authenticate based on their Active Directory.
azure ad, azure adconnect, powershell
Active Directory, Azure AD, PowerShell
February 20, 2020

Active Directory DFS Health Check with PowerShell

One of the critical parts of Active Directory is DFS. It allows you to share same NETLOGON/SYSVOL folders across all Domain Controllers in your Forest. Its health is vital to the functionality of your Active Directory. If it's broken, a lot of things may not work, and it's not that easy to tell the status of it. At first sight, everything may seem to work correctly, but if you take a closer look - not so much. It's great if you find it out by yourself, but not fun if suddenly GPO's don't apply to some users, computers, and you find out a year later.
active directory, adessentials, dfs, gpo, testimo
Active Directory, PowerShell
February 19, 2020

Finding GPOs missing permissions that may prevent GPOs from working correctly

I've been in IT for a longer time now. I've made my fair share of mistakes and misconfigurations. One of those misconfigurations was removing Authenticated Users from Security filtering in Group Policy Objects. While it worked fine at some point Microsoft rolled out a Hotfix MS16-07 on June 14th 2016.
active directory, adessentials, gpo, powershell
Active Directory, PowerShell
February 16, 2020

Renaming NETBIOS name of Active Directory Error

Recently I was testing renaming the NETBIOS name of an Active Directory domain. While this process is fairly easy, there are a few gotcha's, and before one would like to rename their domain or NETBIOS name, serious testing is required to be sure everything works after rename. In the end, if something goes wrong, the rollback will not be a walk in a park. It will hurt, and it will eat your time. So there was I going thru the usual steps.
active directory, netbios, powershell
Active Directory, PowerShell
January 19, 2020

Four commands to help you track down insecure LDAP Bindings before March 2020

In March 2020, Microsoft will release its monthly updates. With those updates, Microsoft will disable insecure LDAP Bindings, which is going to break a lot of your systems (hopefully not). But this was already communicated, and you know all about it, right? If not, you should read those two articles that can help you with understanding what is happening and when.
adessentials, powershell, pseventviewer, pswinreportingv2
Active Directory, PowerShell
January 6, 2020

PowerShell Modules I worked on in 2019

It's year 2020 and 365 days passed since my last year blog post about PowerShell modules I worked on in 2018. I thought it would be a good occasion to review what happened and how things changed during that time. When I wrote the last blog post in the first days of 2019, my PowerShell modules were downloaded just a bit over 15000 times. Fast Forward today, and the counter is at 280000 times spread over 40 modules. Of course, not all those modules are equal. In 2019 I created multiple new PowerShell modules, but some modules were archived, while others were migrated back to their "parents". Just to see how my community road was going in the last years I decided to check some statistics.
office 365, powershell, powershell modules, summary
January 1, 2020

Sending information to Event Log with extended fields using PowerShell

Reading Event Logs is something that every admin does or at least should do quite often. When writing PowerShell scripts, you often need to read event logs to find out different things across your infrastructure. But now and then it's quite the opposite. You need to write something to Event Log so it can be recorded for the future. Sure, you can write your information to log files, but since Windows already has a built-in logging system, it may be much easier to write stuff to event log. This allows you to centralize your event logs and processed by specialized tools like SIEM.
events pswinreporting, pseventviewer, write-event
December 29, 2019

Merging, splitting and creating PDF files with PowerShell

We're in the last days of 2019, and this will be my last blog post this year. What better way to end a good year than with the release of the new PowerShell module. If the title of today's blog post isn't giving it up yet, I wanted to share a PowerShell module called PSWritePDF that can help you create and modify (split/merge) PDF documents. It joins my other PowerShell modules to create different types of documents such as PSWriteWord, PSWriteExcel, PSWriteHTML. I know that PSWriteExcel is relatively basic, but both PSWriteHTML and PSWriteWord deliver robust build capabilities.
merge-pdf, pdf, powershell, pswritepdf, split-pdf
December 22, 2019

Sending Messages to Microsoft Teams from PowerShell just got easier and better

Christmas time is upon us, and I've decided that my PSTeams module needs some love. I wrote it in late 2018 and updated it a few times at the beginning of 2019. This release hopefully is worth of having 1.0 version number. I don't do that often and usually go for build numbers changes only, but Microsoft Teams message cards have their limits on functionality. Therefore, there are not many things that can be added unless Microsoft opens up and gives us all the cool features of Adaptive Cards. PSTeams module uses Webconnector to send messages to Teams. That method only supports Message Cards, which even Microsoft calls Legacy. But legacy doesn't mean fully functional with some cool features of their own. If you're new to PSTeams you may want to read those 2 posts below to get information how to set it up.
microsoft teams, office 365, powershell
Office 365, PowerShell
December 14, 2019

Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send while connecting Graph API

In the last few days, I've got two reports that my PowerShell module for Office 365 Health suddenly started giving errors. This was a bit weird because it worked perfectly fine on my end. But while I could understand one person having an issue of their own, with their network or firewalls, if the second person comes along with the same report, that means something else is going on.
invoke-restmethod, office 365, powershell, tls 1.0, tls 1.1, tls 1.2
Office 365, PowerShell
December 8, 2019

Getting Azure Health by parsing HTML using PSParseHTML

Some time ago I've wrote PowerShell way to get all information about Office 365 Service Health, and if you were thinking that I would try the same concept for Azure Services you were right. However, I failed. This is because Office 365 Health can be gathered using Microsoft Graph API, and Azure Health information, as far as I know, is not available in the form I wanted it. Azure Status is available as part of Azure Status website. Contrary to Office 365 health you don't have to login to your Office 365 tenant to read it.
azure, azure health, powershell, psparsehtml
Azure, PowerShell
December 5, 2019

Microsoft Graph – InvalidAuthenticationToken – Access token validation failure. Invalid audience

Today I had a need to connect to Microsoft Graph and do some tasks on Office 365. Since I have already done similar stuff for my PSwinDocumentation.O365HealthService PowerShell module that I've described in PowerShell to get all information about Office 365 Service Health, I thought this will be easy run as I'll just reuse the code I've done for that module. As always for Graph related tasks you need to register your application and assign correct permissions. I've used my own article for that with changes to which API I want to access. Now that I've done all that I've extracted my Connect-O365Graph function from my module and started connecting.
microsoft graph, office 365, powershell
Office 365, PowerShell
November 21, 2019

Set-PSRepository Installation Policy Trusted – Invalid Class Error

I have to admit - executing the same command three times and expecting different results is dumb, but I still do it anyway. Fortunately, after trying three times I usually resort to other methods and try to solve the problem I have. Today while trying to trust PowerShellGallery I was greeted with an error.
errors, import-module, install-module, powershell, powershellget
November 17, 2019

Removing user from local administrator group based on data stored in Active Directory

We need to deal with a group names through SID's rather than names because each group name is different in different languages. The second problem is to distinguish whether a user is a local or domain user. Finally, I need to connect to Active Directory to verify if the user I am about to remove has ExtensionAttribute10 (or any other field in AD) filled in or not.
active directory, adsi, powershell, powershell 2.0, windows 7
November 12, 2019

Emailimo merged into PSWriteHTML, IE support and no dependencies

If you don't know this yet, I use PSWriteHTML a lot. That means I get to test it under a lot of different conditions. I use it in reports, emails for small, medium, and large companies. Today's blog post summarizes the work I did in the last few weeks over different areas of PSWriteHTML.
emailimo, ie, internet explorer, powershell, pswritehtml
October 30, 2019

Create a local user or administrator account in Windows using PowerShell

Recently I got a simple task to implement LAPS for the newly created local user instead of using the built-in local administrator account. It seemed easy at first. Go to Group Policies, create a new user, add it to an administrators group, and then follow standard steps to implement LAPS. That is until you find out it's actually not possible anymore due to password encryption key being available in the wild, which made Microsoft block that Group Policy Preference. While that road is blocked, I still need to get my user-created somehow. Let's do it with PowerShell. It's quite simple - use New-LocalUser a few parameters, some random password that I don't need to save as LAPS will overwrite it. Except it's not available on PowerShell 2.0, which is the default for Windows 7 that I have to support. Things get even more complicated if you consider that Administrators group is called differently in different countries. While I stopped supporting anything below PowerShell 5.1, I can't say if it's the project requirement.
administrator, gpo, powershell
PowerShell, Windows
October 13, 2019

Nested Tabs, Diagram Updates, Diagram Events, Calendar Object and more in PSWriteHTML

One of the new features I've worked on was connecting Diagrams with Tables. Someone suggested, and I thought it would be cool to be able to click on the Diagram node and find more details about it in a table next to it. But then I thought it would be even cooler if you could have multiple tables linked to one Diagram. For example, below, I've created two tables with Users and Computers and populated Diagram with that data.
dashimo, html, powershell, pswritehtml
September 29, 2019

Easy way to create diagrams using PowerShell and PSWriteHTML

A few months ago, when I was working on PSWriteWord and PSWriteHTML, I thought to myself that in 2020 if I'll get time, I'll try to create PSWriteVisio. While I wasn't sure I would be able to make it past some concept, it was in my plans for 2020. It's still 2019 though, and while working on Testimo for Active Directory Healthchecks, I thought it would be nice to have a visual representation of network, forest schema or replication. I couldn't get this idea out of my head. I thought on using PSGraph from Kevin Marquette to generate image and import that to PSWriteHTML but it was a bit tricky and PSGraph requires external software to work - and has some additional steps for Windows, Mac or Linux.
architecture, css, dashimo, diagram, html, js, network, powershell, pswritehtml, reports
September 8, 2019

What do we say to health checking Active Directory?

Setting up a new Active Directory is an easy task. You download and install Windows Server, install required roles and in 4 hours or less have a basic Active Directory setup. In an ideal world that would be all and your only task would be to manage users, computers, and groups occasionally creating some Group Policies. Unfortunately, things with Active Directory aren't as easy as I've pictured it. Active Directory is a whole ecosystem and works well ranging from small companies with ten users to 500k users or more (haven't seen one myself - but so they say!). When you scale Active Directory adding more servers, more domains things tend to get complicated, and while things on top may look like they work correctly, in practice, they may not. That's why, as an Administrator, you need to manage Active Directory in terms of its Health and Security. Seems easy right? Not quite. While you may think you have done everything, checked everything, there's always something missing. Unless you have instructions for everything and can guarantee that things stay the same way as you left them forever, it's a bit more complicated. That's why Microsoft delivers you tools to the troubleshoot your Active Directory, such as dcdiag, repadmin and some others. They also sell monitoring solutions such as Microsoft SCOM which can help and detect when some things happen in your AD while you were gone. Surely there are some 3rd party companies give you some tools that can help with a lot of that as well. Finally, there is lo of folks within the community creating PowerShell scripts or functions that help with some Health Checks of your Active Directory.
active directory, ad, dhcp, dns, health checks, powershell, security checks, testimo
Active Directory, PowerShell, Windows
September 8, 2019

Making PowerShellGallery modules Portable

I'm a big fan of PowerShellGallery. It's easy to use, Microsoft owned, a place to host your PowerShell modules. Every time I release a new PowerShell module, it's readily available for me or anyone with a single command Install-Module. No need to host it yourself, no need to prepare anything - plug & play. Additionally, if your PowerShell module has any dependencies, it will download and install them, so it directly works out of the box. But what if you can't use PowerShellGallery? What if you don't want to use Install-Module on 100 computers, but you prefer to do it in a more controlled way? What if your servers do not have internet connectivity?
module, portable, powershell
August 25, 2019

Comparing two or more objects visually in PowerShell (cross-platform)

For the last few weeks I'm working on a small project, that should be released within next few weeks (it is open source so don't worry - you'll get to play with it). This project requires me to compare two or more objects and tell if those are equal and if those aren't to what degree. Of course, PowerShell offers built-in functionality via Compare-Object command. It's mighty but it leaves comparing differences, different properties to you. While there are probably other solutions that help users compare objects, I haven't found anything that would meet my requirements. After I've written Compare-MultipleObjects function, I thought it could be interesting to implement visual comparison - you know human-readable - and I had the perfect place to apply it.
compare, dashimo, html, out-htmlview, powershell, pswritehtml, statusimo
August 11, 2019

Formatting and minifying resources (HTML, CSS, JavaScript) with PowerShell

When you work with HTML, CSS, and JavaScript, you often meet three versions on how those are stored in files - minified, formatted, somewhere in the middle (usually a total mess). I have all three versions in my PSWriteHTML module. Some are minified 3rd party resources, some are generated by my PowerShell commands (and are a total mess when it comes to formatting), and finally, some are formatted resources by using built-in VSCode features. In whatever form they are, they generally have no impact on how browsers display them. Browsers will read them in any kind and not care for how they look.
css, html, javascript, powershell, psparsehtml, pswritehtml
August 5, 2019

Getting Active Directory Last Backup Time using PowerShell

I shouldn't be telling you that, but Active Directory Backup is an essential part of your Active Directory setup. When a backup of Active Directory happens, AD is aware of it. Following PowerShell solution allows you to get Active Directory Last Backup Time for the whole forest or by domain.
active directory, powershell
Active Directory, PowerShell
August 4, 2019

Working with HTML in PowerShell just got better

Last few weeks, I've been working on making creating HTML based Dashboards, Reports, and Emails better. PSWriteHTML already allows fancy looking reports or emails without much effort, but this release makes it even more helpful. I will be mixing three PowerShell modules in this blost post - PSWriteHTML (responsible for creating HTML/CSS/JS code), Emailimo (simplifies creating emails based on PSWriteHTML) and Dashimo (simple dashboard building). If you've never heard of those modules before I encourage you to start from earlier blogs about them to understand the concepts before you dive into this one.  Hopefully, those will give you some ideas that will match what you will learn today.
css, dashimo, emailimo, html, js, powershell, pswritehtml
August 4, 2019

Testing LDAP and LDAPS connectivity with PowerShell

One of the common ways to connect to Active Directory is thru LDAP protocol. There are a lot of applications that talk to AD via LDAP. By default Active Directory has LDAP enabled but that's a bit insecure in today's world. That's where LDAPS comes in. It's not easy to set up, but when you get it done, it works. The problem I had recently is that while setting up LDAPS on DC's I only did this on some of the DC's, and not all of them as I should.
active directory, ldap, powershell
Active Directory, PowerShell
July 21, 2019

Instant Replication between Active Directory sites with PowerShell

In Active Directory when you change something, it's replicated to other Domain Controllers regularly. It's a standard procedure that happens automatically in the background for you. It's a handy feature because you can have multiple DC's all over the world and have your users data in sync. You can change almost anything on DC nearest to you and be sure it will be the same value all over the place. But is it always the same? Well, it should be unless it isn't. Today I was given a new migration from  Exchange to Office 365. I started with ADConnect installation and wanted to make sure that UserPrincipalNames have all UPNSuffixes in place.
active directory, ad, instant replication, powershell, replication
Active Directory, PowerShell
July 14, 2019

Executing hidden or private functions from PowerShell Modules

When you write PowerShell modules, there's a high chance you will have conflicts with either existing system commands (you should avoid that) or with someone else's modules. There are also times when someone wants to use a private function from a module that only exports essential functions. Here's a couple of ways how to deal with those scenarios.
hidden, powershell, powershell module
July 14, 2019

Using Lansweeper with PowerShell to your advantage

I'm on a tight deadline for one of the chapters for PowerShell Conference Book vol. 2. That means my brain wants me to do a lot of different things but writing that chapter. I've decided to write this simple PowerShell command that allows me to use Lansweeper in PowerShell. If you never heard of Lansweeper, it's a great inventory tool that can scan Windows, Linux, Network, Printers, and other types of assets gathering it all in SQL Database. Usually, you would use their friendly, fast interface to access data it stores because it offers a lot of flexibility, export options, and many many features.
dbatools, lansweeper, powershell, reporting, sql, user reports
July 11, 2019

Getting Bitlocker and LAPS summary report with PowerShell

Having Bitlocker and LAPS in modern Active Directory is a must. But just because you enable GPO and have a process that should say Bitlocker and LAPS are enabled doesn't mean much. Now and then you should verify things yourself. One of the Facebook users on PowerShell group just had this idea of exporting Bitlocker keys and then giving that list to his colleagues for manual verification. He wanted to do it half PowerShell and half manually. While the idea was great, why not take full advantage of PowerShell and have a helpful report with all the necessary information?
active directory, ad, bitlocker, laps, powershell
Active Directory, PowerShell
July 11, 2019

Sending HTML emails with PowerShell and zero HTML knowledge required

I saw this article by Altaro tweeted Building PowerShell Tools for MSPs: HTML Tables for Reporting, and it describes how you can create HTML emails with just a few lines of code. Luke created that article in 2018 (tweets from the archive I guess), but I just saw it now so thought I would make a slight comparison. In 2018 I would probably go the same way as shown by Luke Orellana, who takes a simple example of querying WMI to get disk drive sizes and send them over, formatted via Email.
dashimo, email, emailimo, html, powershell, pswritehtml
Altaro, PowerShell
June 28, 2019

All your HTML Tables are belong to us

Last few days, I've fulfilled my little dream related to building HTML tables. You know I've been using HTML based scripts for a long while for Microsoft Exchange from multiple people like Steve Goodman or Paul Cunningham (and others) and when I was going thru their PowerShell building code on how they create an HTML table with multi-row titles I thought Those guys are crazy. The effort to build an HTML table for a report for a person who has no clue how to do it is not something one can easily digest and understand. Sure I've learned how to build HTML tables at some point, but there was one final piece that I was missing - multi-row headers. If you don't know what I mean, and how they look like the below image from Steve's Goodman script should give you a hint.
dashimo, html, javascript, powershell, pswritehtml
June 25, 2019

Fixing Active Directory PasswordNotRequired with PowerShell

There was I, deploying PSPasswordExpiryNotifications for one of my Clients when I started getting complaints that some users are not getting their Password Expiry Notifications. Well, that's a new one. I've tested this script multiple times, and it worked just fine. So I dive into the details of my script to see what I did in there (I don't even remember anymore - it just works) to find out this little line:
active directory, ad, PasswordNotRequired, powershell
Active Directory, PowerShell
June 23, 2019

Export-CliXML and Import-CliXML serialization woes

I've been working today trying to deliver to one of my Clients Active Directory documentation. To my surprise, something that worked fine for a very long time has started to provide weird results. So, after spending about 8 hours taking apart a few of my PowerShell modules trying to find out what is wrong finally, I've found it: Export-CliXML / Import-CliXML. Those two commands are great. I've used them multiple times with great success (or so I thought).
export-clixml, import-clixml, powershell
Active Directory, PowerShell
June 17, 2019

Dashimo (PSWriteHTML) – Charting, Icons and few other changes

A few months ago when I first released Dashimo, I've promised that Charts will come. Unfortunately, time passed by, and there were no Charts in sight. It's not that I didn't want to deliver, I just wasn't sure on the way I want to allow charts building. Today after playing with the idea for a while I've decided to release essential support for diagrams, with a couple of other fixes. Some of that stuff is already there for longer while I just never announced it. There are probably a lot of other hidden gems you may find if you explore PSWriteHTML or Dashimo.
css, dashimo, html, javascript, js, powershell, pswritehtml
June 14, 2019

Getting Windows 10 build version from Active Directory

Today I saw an article on how to get Windows Version Report from Active Directory and thought that this is a cool idea. Something handy for migration scenarios or information on how up to date is your infrastructure. Since there are many ways to do the same thing I decided to tackle this myself and further include it into PSWinDocumentation.AD project. By default Active Directory stores Operating System and Operating System Version but it doesn't really show versions one may expect.
active directory, build, powershell, windows 10
Active Directory, PowerShell
May 30, 2019

Install-module : The ‘install-module' command was found in the module ‘PowerShellGet', but the module could not be loaded.

I've been working last few hours trying to set up my laptop for PowerShell Conference, and one of the tasks is to get my modules up and running. To my surprise on Windows 10 1903 Install-Module thrown a weird error
import-module, install-module, powershell, powershellget
May 19, 2019

How I didn't know how powerful and fast hashtables are

I've been using PowerShell for a long while now using Hashtables, OrderedDictionary, and other types of data types in PowerShell, but I never paid attention to how powerful those are. And I don't mean your general knowledge about hashtables that is already covered by Kevin Marquette in his article Everything you wanted to know about Hashtables or my article PowerShell – Few tricks about HashTables and Arrays I wish I knew when I started. Let's find out, how Powerful they are, shall we?
active directory, hashtable, learn, powershell, speed
Active Directory, PowerShell
May 12, 2019

What do we say to writing Active Directory documentation?

It's no secret that nobody likes creating documentation. I don't like it, and you don't like it, even documentation lovers don't like it. But while you can live without documentation, you really shouldn't. And I am not talking here only about documentation that is only useful in the onboarding process of new employees or documentation concerning introducing someone to some concepts to get them easily start. I'm talking about documentation for your live environment where you know what you have, how you have set it up, but is still the same after one week, one month, or one year? Usually, not so much. And one of the worst mistakes admin can do is assume that his environment doesn't change, things are as they were when they were set up.
dashimo, documentation, documentimo, excel, excelimo, powershell, pswindocumentation, word
Active Directory, PowerShell, Windows
April 28, 2019

The only PowerShell Command you will ever need to find out who did what in Active Directory

While the title of this blog may be a bit exaggeration, the command I'm trying to show here does it's best to deliver on the promise. What you're about to witness here is something I've worked on for a while now, and it meets my basic needs. If you don't have SIEM product or products that monitor who does what in Active Directory this command makes it very easy, even for people who don't have much experience in reading Event Logs. If you'd like to learn about working with Windows Event Logs here's a great article I wrote recently - PowerShell - Everything you wanted to know about Event Logs and then some.
active directory, ad, events, events viewer, powershell, pswinreporting, pswinreportingv2
Active Directory, PowerShell, Windows
April 24, 2019

Does having Format-Table or Format-List in the middle of the pipeline makes sense?

Recently there was this discussion on PowerShell Group on Facebook about issue posted by one user. While the subject doesn't matter for this post, few people commented on the idea that he was using Format-Table in the middle of the pipeline to do something. They all said Format-Table should be used as last in the pipeline. Otherwise, you would get the wrong output. But should it? Well, it depends!
Format-List, Format-Table, powershell
April 24, 2019

The curious case of $null should be on the left side of equality comparisons PSScriptAnalyzer

If you're using VSCode with Powershell extension, you probably got used to PSScriptAnalyzer giving you all kind of tips on optimizing things. It makes your code better. Chris Bergmeister does a great job working on it. One of the tips PSScriptAnalyzer gives you when you use $null on the right side of the comparison.
$null, powershell, PSScriptAnalyzer
April 22, 2019

Preparing Azure App Registrations permissions for Office 365 Service Health

As you may have seen in my other post, there's a simple, PowerShell way to get Office 365 Health Service data for you to use any way you like it. But before you can use that, you need to register granular permissions on your Office  365 tenant so that that data is provided to you. Here's a step by step way to do it.
azure, health, office 365, powershell
Azure, PowerShell
April 22, 2019

PowerShell way to get all information about Office 365 Service Health

Office 365 is an excellent cloud service. But like any service, there's some infrastructure behind it that has to be cared for. Since this is Cloud, Microsoft does this for you. But any problems Microsoft has to have some impact on your end users. And you may want to have that visibility for your users. Microsoft provides this to Admins when they login to the portal, but while useful you may want to use that data in other ways than those planned by Microsoft.
health, office 365, powershell, pswindocumentation
Azure, Office 365, PowerShell
April 12, 2019

Meet Emailimo – New way to send pretty emails with PowerShell

When reading this blog post, you may be thinking that there's nothing new one can add to emailing with PowerShell as there were tons of articles in recent years covering this subject pretty good. It's all known, and people have used it since the early days of PowerShell. You can even send an email with just one line using Send-MailMessage. Now, this post is not about that. This post is about sending HTML based emails. You see when you want to send an email that is just text based that's pretty trivial. Things get complicated when you want your emails to have some colors, some tables, some links or some lists. This is where you have to involve HTML and CSS. Since I've been working with PowerShell for a while now, I've seen my share of scripts/modules or blog posts that cover this but one thing that usually hit me - it was sometimes tough to understand what is happening, what the author is doing, and what happens if I change this or that. While I've seen people dismissing programmers doing HTML / CSS or JavaScript for not being real programmers, I disagree entirely. You have to know what you're doing if you want your stuff to look good. I've spent days or even weeks playing with HTML/CSS/JS, and I must admit half of what I do I don't even understand until I see the output. So before you go and tell people that HTML/CSS is easy, think again.
css, emailimo, html, javascript, js, mailing, outlook, pswritehtml, send-email, send-mail
Linux, Mac OS X, PowerShell, Windows
April 6, 2019

Out-HtmlView – HTML alternative to Out-GridView

One of the most comfortable output's in PowerShell to work and analyze data is Out-GridView. It's handy as you can search, sort and have things done quicker than trying to do things in the console. However it's currently not available in PowerShell Core (PowerShell 6+), and when it is available in PowerShell 7, it will NOT be cross-platform.  Since I had released Dashimo a few days ago, I thought it was trivial to make a simple command out of it that could solve this problem.
cross-platform, powershell, powershell 6, powershell 7, powershell core
Mac OS X, PowerShell, Ubuntu, Windows
April 4, 2019

Dashimo – Easy Table Conditional Formatting and more

Dashimo ultimate goal is to be as easy to use as possible. With the introduction of it a few days ago I made a promise to myself that I want to keep it as simple to use as possible. If you don't know what Dashimo is, have a read here - Meet Dashimo. When I posted it on Reddit few people had some ideas and feature request that would make it a bit nicer, and when I heard about I agreed. So today, after a couple of days I have a few updates. I also noticed that my examples might have been too hard to use and understand for beginners and people not having a lot of touch with Active Directory. This time all code you can find below will use Get-Process as a way to show you that you can use any output that comes as a Table.
dashimo, powershell, pswritehtml, reporthtml
April 1, 2019

Meet Dashimo – PowerShell Generated Dashboard

Today I wanted to introduce a little product that I've created in the last few weeks called Dashimo. It doesn't cover everything I wanted from it (feature wise), but it already can be used in production. Therefore, I thought it would be a good idea to get some feedback on whether I should spend some more time on it or throw it in the dumpster. Dashimo joins it's older brother Statusimo of PowerShell modules allowing an easy way to build HTML output. If it will feel familiar, it's because it was inspired with Bradley Wyatt PowerShell script he did. It gave me the idea of how I would like to build something similar but in a bit different way then he did, with much more flexibility. Still, if it wasn't for him, the idea wouldn't be there, therefore you should send him your thanks.
css, dashboard, dashimo, html, javascript, powershell, statusimo
March 31, 2019

Backing up Bitlocker Keys and LAPS passwords from Active Directory

Having a modern, secure infrastructure in 2019 is a requirement. You should implement BitLocker to make sure that in the event of stolen laptop data is not readily extractable and implementing LAPS is a must in a fast changing IT world. But I'm not here to convince you to those two security features. I'm here to show you an easy way to backup LAPS and BitLocker. While having everything stored in Active Directory is excellent, things can get complicated when you don't have access to your Active Directory, or you restore an older version of it. You see, LAPS, for example, keeps only last Administrator password. This is great and all but what happens if you restore the machine from backup from 6 months back? Your password has already changed multiple times. During our testing of DR scenarios, we wanted to access the computer via their local Administrator credentials and we just couldn't because that password was already gone.
active directory, bitlocker, laps, powershell
Active Directory, PowerShell
March 30, 2019

Creating Visual Indicators for spoofed / external emails with PowerShell

I've been managing mail service for users for a lot of years now. I don't do it daily but I've spent my fair share of time analyzing spam emails. Mail vendors are doing what they can fighting spam, but it's not easy. Each month, each year spam is getting more sophisticated. Spam emails either look like a legit email, or worse someone is targeting your company trying to get them to transfer money into a wrong account. While most of those end up in spam, there are those that come thru. It's even worse if the company you work with has not implemented SPF or their SPF is configured to soft fail which can't be treated as spam.
exchange, exchange 2013, exchange 2016, exchange online, office 365, powershell
Exchange, Office 365, PowerShell
March 28, 2019

Accessing AzureVM with NLA and broken domain trust relationship

Hosting your VM's in Azure Cloud is excellent. You have all those features, professionally managed and virtually limitless. I don't want to take your time to sell you Azure Services but to share a solution to one of the things I had to solve in Azure and sooner or later you may end up with on. During the test restore for Active Directory and multiple other machines which were much older (or newer) then Active Directory Domain Controller that was restored it turned out one can't log in to most of the devices. First of all your domain password is already changed, but that can quickly be addressed. Your second and more significant problem is Network Level Authentication (NLA), and your 3rd problem is broken trust relationship.
ad trust, azure, azure vm, nla, powershell
Active Directory, Azure, PowerShell
March 27, 2019

Active Directory – The directory service was unable to allocate a relative identifier

I've been testing Disaster Recovery scenario restoring Active Directory. One of the servers was restored, and it worked for a moment after restore. If you can regain your Primary DC, it's best to do so. If you can't, a standard thing to do during DR is to move all FSMO roles to the restored server so that it can become a master server. You can find out your FSMO holders by using those commands below:
active directory, ad, error, powershell
Active Directory, PowerShell
March 22, 2019

Changing Exchange folder permissions in multilanguage Office 365 tenants

One of the tasks I often get when setting up new Office 365 tenant or installing Exchange Servers is to change the visibility of Room Mailboxes or in some cases even standard users. There's nothing hard about it, and there are plenty of articles about it. It's just three simple steps.
exchange, exchange online, powershell, room mailbox
Exchange, Office 365, PowerShell
March 11, 2019

Using PowerShell to fix Ubiquiti Unifi requirement for MongoDB 3.6 on Ubuntu 18

I've been using Ubiquiti Unifi for some years now, for both home and work usage. It's great hardware at a great price, and the best thing for a software maniac like me is that it's continuously updated. Some time ago I upgraded Ubuntu to 18.04, and things went a bit sideways. You see Unifi started to add to their DEB packages that Mongo 3.6 is not supported and therefore blocking any installation. The idea is, it works perfectly fine on MongoDB 3.6 but migration between 3.4 to 3.6 is just not straightforward. Long story short when I upgraded Ubuntu I was suddenly greeted with not working Unifi.  I've fixed that, and blogged about it how you can do so using manual steps - Ubuntu 18.04 – Fixing Unifi .deb package to run with 3.6 MongoDB. The thing is with each new version out I have to do multiple steps to fix every single package from Unifi (you see where I'm going right?). While a few years ago I would be stuck to use bash or some other workaround which would be a pain for me, this is 2019, and PowerShell Core works excellent on Linux systems! I know that installing PowerShell Core for hardcore Linux fans may not be as fun as it is for me, but you do get a lot of benefits from it.
linux, mongodb, powershell, ubuntu, ubuntu 18.04, unifi
PowerShell, Ubuntu, UniFi
March 10, 2019

PSWinReporting 1.8 – Split of branches (Legacy vs. New Hope)

A new branch of PSWinReporting is slowly coming, and I thought it would be the best time to have a final article about it with all configuration options available for those that will want to stay using PSWinReporting from Legacy branch. The idea is that you may have it working in your systems and it's good enough for you. You may not want to change it, and with New Hope, the changes are so big it's a rewrite.
event, event monitoring, events, powershell, pswinreporting
Active Directory, PowerShell, Windows
March 8, 2019

PowerShell – Returning one object from a function as an Array

Few weeks had passed since I've initially written PowerShell – Few tricks about HashTables and Arrays I wish I knew when I started. I was happily using my tips and tricks myself till today when I noticed a strange problem. Do you know how I showed you that you could use a comma to return Array with just one member (that otherwise would be unwrapped and end up a string)?
array, foreach, foreach-object, goot-to-know, powershell
March 6, 2019

Meet Statusimo – PowerShell generated Status Page

A few weeks ago, Mateusz Czerniawski, mentioned that he wants to build a Status Page for his company services. While I haven't needed for myself, it seems like an excellent idea to try and create one in PowerShell. Since I've been working on PSWriteHTML for a while, it wasn't that far fetched idea. While PSWriteHTML has a long way to go, to be in a state I want it to be, after a few days I had a prototype that didn't require much work to generate. If you're wondering what Status Page is it's a little summary page for your users to check what is the status of services they use. It has been popular in the last few years and is offered by many services (Twitter, GitHub, Office 365 - they all have it). Companies are selling it as a service as well where you can host your status page for your users. This one is free.
css, html, javascript, powershell, status page, statusimo
February 25, 2019

Hyper-V – Can't start Virtual Machine because it's backing up

Working as a small business often brings you little tasks here and there. Today I've decided to shut down the Hyper-V machine to expand its disks. Unfortunately for me, while extending of HDD went great, I couldn't start Virtual Machine any longer.
backup, error, hyper-v, powershell
Hyper-V, PowerShell
February 20, 2019

PowerShell – Everything you wanted to know about Event Logs and then some

If you feel this title is very familiar to you it's because I actually have stolen the title from Kevin Marquette. I'm in awe of his posts that take you thru topic from beginning till the end. No splitting, no hiding anything, everything on a plate, in a single post. That's why I've decided to write a post that will take you on a trip on how to work with Event Logs, something that is an internal part of Windows Administration. If you've never worked with Events and you're in IT you most likely should make an effort to find out what it is and how you can eat it.
event logs, events, get-eventlog, get-winevent, microsoft window, windows, windows server
Active Directory, PowerShell, Windows
February 18, 2019

PowerShell – Few tricks about HashTables and Arrays I wish I knew when I started

I've been working with PowerShell for a while now and like with most things I do I've learned it by doing and not by reading. I had a job to do, and since I don't like doing things over and over, I thought it's time to learn and do it in PowerShell. Problem with that approach is that you take bits and pieces from PowerShell scripts online that sometimes do the job but not necessarily pay attention to details. And it's fine. I've learned a lot from reading someone else's work, and I learn something new every day. Hopefully, it will be useful to you to some extent.
array, arraylist, genericlist, hashtable, powershell, tricks
February 14, 2019

Bittitan MigrationWiz – The selected Mailboxes cannot be subscribed

Recently I'm doing yet another migration between Office 365 tenants using Bittitan Migration Wizard. It's a great tool and takes away a lot of headaches when dealing with the migration of mailboxes or OneDrive data. Unfortunately, like with many blogs on my website I had to hit yet another error. This time error occurred when I tried to assign User Migration Bundle license to users on the Migration Wizard.
bittitan, exchange online, office 365
Exchange, Office 365
February 6, 2019

How to find different server types in Active Directory with PowerShell

Working as a freelancer is a great thing if you can handle it. Each day, each week something new happens and a new problem shows up on my doorstep. It also means it's almost never boring at your job and you get to play with new stuff. But there's one drawback to this. You're often thrown at the problem, told to fix it but often that's about as much information as you get. It wasn't very different today. I was told to switch Office 365 from ADFS to Password Synchronization. While reasons for this are not really important, the important question here is what is the name of AD Connect server that's responsible for this configuration?
active directory, ad, adconnect, azure ad, exchange, powershell, sql, windows
Active Directory, Azure AD, Hyper-V, PowerShell, Windows
February 3, 2019

A short story on PowerShell HashTables that beat me hard

Today's story happened a few days back to me, and I think many people may not even know about some object behaviors in PowerShell (just like me). I know some of you may think this is basic PowerShell knowledge but even thou I've written a lot of different PowerShell modules I kind of skipped basics. That means I often find myself struggling with something that's obvious if you've done your due diligence before starting to work with the code. But that's typical me, playing with complicated stuff, failing at simple things.
powershell hashtable, pscustomobject
January 29, 2019

Office 365 – Report containing User Information and Mailbox Usage

Working with Office 365 is my bread and butter in the last few months. I'm a System Architect and I am dropped in multiple projects, both new and old, to fix certain aspect and get out before anyone sees me. One of the common tasks I get is to provide some data about users stored in Office 365.
exchange, exchange online, msol, office 365, powershell
Exchange, Office 365, PowerShell
January 24, 2019

Active Directory – How to track down why and where the user account was locked out

I've been working with Windows Events for a while now. One of the things I did to help me diagnose problems and reporting on Windows Events was to write PSEventViewer to help to parse the logs and write PSWinReporting to help monitor (with use of PSEventViewer) Domain Controllers for events that happen across the domain. It's handy and I, get those excellent daily reports of what happened while I was gone.
active directory, event viewer, get-events, get-winevent, powershell, pseventviewer, pswinreporting, windows, windows server
Active Directory, PowerShell, Windows
January 23, 2019

How to change your own expired password when you can't login to RDP

I must admit that it was a bit embarrassing to see my Administrator password expired when I tried to log in as Domain Admin to Domain Controller. I got this little message saying This user account's password has expired. The password must change to logon. Please update the password or contact your system administrator or technical support.
expired password, powershell, rdc, rdp, remote desktop connection, remote desktop protocol, windows
PowerShell, Windows
January 22, 2019

Windows Server 2019 – Desktop path for all users redirected to System32 \ SystemProfile \ Desktop

ransomware, windows, windows 2019, windows server
January 19, 2019

Windows 2019 – Windows License Expired

Windows Server 2019 is out now for a couple of months now, and some of you may be interested in playing with it. When you first install it, you can test it for 180 days (so-called Grace Period) after which you need to activate it with a proper production license.
expired license, license, windows 2019, windows server, windows server 2019
January 6, 2019

PowerShell modules I worked on in 2018

We're a few days in 2019, and from a time perspective, I can say I had a busy 2018. I must say I've never expected that but in 2018 I've created or worked on 24 PowerShell modules. Some were simpler ones, some were a bit more advanced, and some will be retired in 2019 because their features will be moved to other modules. In PowerShellGallery alone those were downloaded over 15000 times (I must admit that some of those are surely automated tests - "Hello Pester" that I've learned in 2018. It's a nice number thou, and something I'm kind of proud of myself. After all, before 2018 I've not created a single PowerShell module before. Sure, I've created a bunch of scripts, hardcoded, that did the task that I had to solve. But I've never before built something, that could be installed by one little command Install-Module (something I've learned in 2018 as well) and executed by anyone, anywhere. I know the title says Sixteen PowerShell Modules but some modules are just too simple to give them anything else than a small mention.
module, powershellgallery, windows
January 6, 2019

Active Directory – Move-AD Directory Server Operation Master Role: Access is denied

When working with Active Directory one of the common tasks is to move FSMO roles between servers. Well, maybe not that common but it happens from time to time where you have to move all or just some of the FSMO roles. For that purposes, there is single PowerShell command Move-ADDirectoryServerOperationalMasterRole. Sure you can do this via GUI but if there's one command available to fix it all why bother? To make the move one has to be a Domain Admin, Enterprise Admin and Schema Admin. Everything was going smoothly for some roles but wasn't working for others.
active directory, fsmo, powershell
Active Directory, PowerShell
January 2, 2019

A command with name is already available on this system. This module may override the existing commands.

Another day, another issue one may say. Today I wanted to install one of my modules to a new server and was greeted with a well-known message (it may seem on first look): A command with name '' is already available on this system. This module 'PSEventViewer' may override the existing commands. If you still want to install this module 'PSEventViewer', use -AllowClobber parameter.
module, powershell
January 2, 2019

Windows 2019 – How to add language pack?

Today I've been setting up a new server on Windows 2019. By default, I install Windows with English version even if Client works in their language such as German, Polish or Swedish. While some people install Windows in a language they desire to work with, years of experience taught me that installing English and then adding Language Pack is the best way to go. All errors, windows events, and general troubleshooting is much easier if those are in the native English language. Each version of Windows made it easier to install the language pack and have that up and running in no time. In Windows 2019 it's even more comfortable... or is it?
windows, windows server, windows server 2019
December 12, 2018

Import-Module: This script contains malicious content and has been blocked by your antivirus software.

I've been working today on a little project when suddenly my modules stopped working. It was weird because I have not touched anything that could cause it. A message was a bit cryptic mentioning that my PSWriteColor module is required but not available. I've decided to try and load PSWriteColor manually using Import-Module command.
powershell, windows
November 29, 2018

Azure AD Connect – Completed-Export-Errors – Permission-Issue

During synchronization of Active Directory with Office 365 via Azure AD Connect I was greeted with a list of accounts that have permission-issue. Error message by itself gives you a slight hint, but it doesn't tell you exactly where to look.
azure, azure ad, windows
Azure, Azure AD
November 28, 2018

Azure Agent – Where did my space go?

Recently I had a weird case where one of our Azure servers was starting losing space pretty quickly making Pulseway go nuts. As you can assume from the title of this post the cause for this is Azure Agent itself. But before I actually knew that I had to do some digging as it's not that obvious because Windows Explorer isn't showing anything worth checking.
azure, Azure Agent, TreeSize, windows, Windows Azure
Azure, Windows
November 23, 2018

Outlook – The primary account cannot be removed unless it is the only account in the profile

Last few months I'm responsible for the migration of Office 365 to Office 365. While doing so, we came into a situation where users have their old mailbox as Primary Account and new Mailbox as their secondary account. This is a quite common scenario that people are running into and something that is expected. Usually, my recommendation is: Please create a new profile for user and topic is closed. It's also quite easy to achieve this in an automated way where you delete all profiles and Outlook just goes with autodiscovery adding new account as required. That's how I have always done this till now. My Client has gone thru setting up 1000+ users with their second account in Outlook and deleting a whole profile, recreating would cause lots of downloading of emails from Office 365 that my Client wanted to avoid.
error, exchange, outlook, windows
Exchange, Outlook, PowerShell
November 18, 2018

PowerShell – Working with Format-Table in Verbose, Debug, Output Streams

As you may know, PowerShell has multiple streams. Write-Output, Write-Error, Write-Warning, Write-Verbose, Write-Debug, and Write-Information. It also has Write-Host which until PowerShell 5 was a bit special. Since PowerShell 5.1 it's a wrapper over Write-Information, so it doesn't kill puppies anymore. While I could spend the next five pages trying to give my best and describe those streams, there are already many articles describing them in detail. Please check the following link if you need that information.
powershell, write-debug, write-host, write-verbose
November 16, 2018

PowerShell – Single PSM1 file versus multi-file modules

I've been working with PowerShell Modules for a while now, and most of my knowledge about them came from Warren F (psCookieMonster) blog about Building a PowerShell Module. It is a handy piece of information and recommended read for anyone starting up writing PowerShell Modules. He introduces an idea where a module is stored in multiple folders Private, Public, Bin, Lib and so on and having YourModule.psm1 as a wrapper for functions, binaries in those folders, where each function is stored in its file. It's an excellent concept, and I use it every day. It allows me to jump into a file quickly I want to find and fundamentally easier for development, especially in teams.
powershell, ps1, psm1
November 14, 2018

Microsoft Exchange – 420 4.2.0 Recipient deferred because there is no Mdb

Last few weeks I'm responsible for migrating from Office 365 to Office 365. Part of this migration process is to set up new Exchange 2016 server that will work as relay instead of using IIS server. I've setup hybrid, added accepted domains, prepared connectors, but there's one thing missing. Any time an email is sent via relay to a user that exists on Office 365 and at the same time exists in Active Directory email never gets there.
exchange, exchange online, office 365
Exchange, Office 365
November 13, 2018

Bittitan MigrationWiz – Users getting undergoing maintenance message

MigrationWiz from Bittitan is one of the best tools on the market allowing for migration of user mailboxes. Whether it's a google account, exchange account or IMAP, it will help you out. Last few months I'm part of migration project that is using Bittitan at its core. One of the signature features of this tool is the ability to migrate mailboxes from Office 365 tenant to Office 365 tenant. This is not something that every application can do. Another feature (and something I want to address today) is the ability to ask users for their logins and password to migrate their data from one tenant to another tenant. While in general, you shouldn't do that and you should use migration accounts with proper permissions sometimes you have no other choice.
bittitain, migrationwiz, office 365
Exchange, Office 365
November 9, 2018

Azure AD Connect – Synchronizing MAIL field with UserPrincipalName in Azure

Azure AD Connect is an application responsible for synchronizing Active Directory with Azure AD allowing for a natural population of users, groups, and devices in Office 365. While for most companies standard setup is very easy and most of the time touch-free, there are companies which require greater customization. During installation of AD Connector, you choose what should be used for Azure AD Username from your AD. UserPrincipalName field is an obvious choice for this and also proposed by default for that purpose. This field is utilized further by your users to log in to your Exchange, SharePoint, Teams and so on.
active directory, azure, azure ad, office 365
Active Directory, Azure AD, Office 365
November 3, 2018

PSBlackListChecker – Added Discord support

It's been less than 24 hours since I've released PSBlackListChecker with support, among other improvements, for Microsoft Teams and Slack and I'm now adding Discord to the mix. Discord was a popular request (well not really, just one person asked, but let's pretend everyone loves PSBlackListChecker so much that they are too shy to ask for feature requests!).
discord, powershell, psblacklistchecker, windows
Exchange, PowerShell
November 3, 2018

PowerShell – Environment Path is missing or overwritten

autoit, environment, parameters, powershell, psmodulepath, variables, windows
PowerShell, Windows
November 2, 2018

PSBlackListChecker – Notifications to Microsoft Teams, Slack of Blacklisted IPs

blacklist, blacklist ip, exchange, ip, net.dns, powershell, resolve-dns, runspaces, smtp, workflow
Exchange, PowerShell, Windows
October 29, 2018

Office 365 – Using dynamic variable as prefix for Office 365 commands

office 365, powershell, prefix
Office 365, PowerShell
October 29, 2018

Office 365 – Using Import-PSSession from separate module

import-pssession, office 365, powershell
Office 365, PowerShell
October 24, 2018

Office 365 – Creating Archive Mailboxes with PowerShell in bulk

exchange mailbox move, exchange online, mailbox, office 365, powershell
Office 365, PowerShell
October 20, 2018

Office 365 – Find Users Forwarding Emails (PowerShell)

exchange online, forwarding rules, inboxrules, mailbox, office 365, powershell
Office 365, PowerShell
October 19, 2018

Update-Module – PackageManagement\Install-Package : Unable to find repository

powershell, windows, windows 2012, windows 2012R2, windows server
PowerShell, Windows
October 10, 2018

Windows 10 – No prompt to overwrite when pasting from .zip file

insiders, windows 10, windows 10 1809
Insiders, Windows
October 7, 2018

PSWinDocumentation – Audit Active Directory Passwords

If you're paying attention to what's happening around the world now you probably know Have I Been Pwned service by now. You probably know that it has huge lists of hashes of passwords that leaked out over the years from different services (LinkedIn, Adobe, and so on). This means those passwords are now in possession of good guys, but also bad guys. With Active Directory being often a central place to store your password that allows you to access your Office 365 account, ADFS, Microsoft Exchange it's important that your AD passwords is both secure and safe. Bad guys may want to try and access your email accounts or other data that's available online. And having a list of passwords you or other people may have used before doesn't help you in protecting your own data.
active directory, ad, audit, powershell, windows
Active Directory, PowerShell, Windows
October 5, 2018

Ubuntu 18.04 – Fixing Unifi .deb package to run with 3.6 mongodb

mongodb, ubuntu, ubuntu 18.04, unifi, unifi 5.9
Ubuntu, UniFi
October 4, 2018

Windows 10 – Microsoft Store, Edge, Windows Updates, Microsoft Outlook not able to connect with error 0x80072EE7, 0x80070005

0x800700005, 0x80072EE7, insiders, windows 10, windows 10 insiders
Insiders, Windows
October 4, 2018

PSTeams – Send notifications to MS Teams from Mac / Linux or Windows

microsoft teams, powershell, powershell core, psteams, teams
September 26, 2018

Office 365 – The following error occurred during validation in agent Archive ParameterSet Enforcement Agent

exchange online, office 365, powershell
Azure AD, Office 365, PowerShell
September 23, 2018

PSWinDocumentation – Export to Word, Excel, SQL of AD, AWS, Exchange, O365 Exchange, O365 Azure AD

Today I'm pushing forward with PSWinDocumentation project. I've fixed some bugs but I also added a couple of new features. I did lie a bit in the first sentence because this time it's not all me. I got help from Mateusz Niemczyk who is a certified AWS engineer working for Euvic with me on some projects. If you've not yet guessed where I got him involved from the introduction - yes we're adding basic AWS data support to PSWinDocumentation. But that's not all...
aws, excel, exchange, export, office 365, powershell, pswriteexcel, PSWriteWord, sql, word
Active Directory, Azure AD, Office 365, PowerShell, Windows
September 22, 2018

PowerShell Core – The type initializer for Gdip threw an exception.

powershell, powershell core, ubuntu
PowerShell, Ubuntu
September 16, 2018

PSWinReporting – Forwarders, Microsoft Teams, Slack, Microsoft SQL and more

active directory, event log, events, microsoft teams, ms sql, powershell, slack, sql, teams
Active Directory, PowerShell, Windows
August 23, 2018

PSWinDocumentation – Version 0.1 with Word / Excel export

A few weeks ago I've released my first version of PSWinDocumentation. It was simple, one command module where you start it and get some basic AD stuff into Microsoft Word document. Today... I'm releasing a new version that has a bit bigger feature set. Are you ready for it? Let's go!
active directory, ad, excel, powershell, scripts, windows, word
Active Directory, PowerShell, Windows
August 22, 2018

Install-Module : A parameter cannot be found that matches parameter name AllowPrerelease.

AllowPrerelease, Get-Module, install-module, powershell, update-module
August 22, 2018

Update-Module : Module ‘PowershellGet' was not installed by using Install-Module, so it cannot be updated.

powershell, powershellget, update-module
August 21, 2018

PSWriteWord – Version 0.5.1

docx, microsoft office, microsoft word, PSWriteWord, word
DocX, PowerShell
August 19, 2018

PowerShellGallery – You are installing modules from an untrusted repository

powershell, powershellgallery
August 16, 2018

No account settings were returned from the Autodiscover response – Microsoft Exchange 2016

exchange, exchange 2013, exchange 2016, exchange on-premise, exchange online, office 365
Exchange, Office 365, PowerShell
August 16, 2018

Microsoft Exchange Approval Assistant – Your message couldn't be delivered because delivery to this address is restricted to authenticated senders

exchange, exchange 2010, exchange 2013, exchange 2016, exchange hybrid, exchange online
Exchange, Office 365, Outlook
August 13, 2018

Not able to accept or deny messages sent to group in Exchange Hybrid Scenario

exchange, exchange online, Hybrid, office 365
Exchange, Office 365, Outlook
August 8, 2018

Windows 10 – You'll need the internet for this 0xCAA7004 or 0xCAA30194 or 0x80072EFD

0x80072EFD, 0xCAA30194, 0xCAA70004, insiders, insiders channel, windows, windows 10, windows 10 insiders
Insiders, Windows
July 25, 2018

Install-Module: The term Install-Module is not recognized as the name of cmdlet, function, script file or operable program

install-module, pseventviewer, psteams, pswinreporting, pswritecolor
PowerShell, Windows
July 24, 2018

Windows 10 – High CPU Usage with EvntAgnt Warning Event ID 3007 in Event Log

event 3007, evntAgnt, windows 10, windows 10 insiders
Insiders, Windows
July 7, 2018

PSWriteWord – Add-WordTable / Add-WordText Expanded

docx, examples, microsoft word, powershell, PSWriteWord, word
DocX, PowerShell, Windows
June 28, 2018

PSWriteWord – Updated to 0.4.1 (Breaking Change included)

docx, examples, microsoft word, powershell, PSWriteWord, word
DocX, PowerShell, Windows
June 26, 2018

CollectGuestLogs.exe – High Disk Usage on Azure VM

azure, azure vm, collectguestlogs
Azure AD, Windows
June 10, 2018

PSWinReporting 1.0 – Monitoring Active Directrory Events

active directory, ad, domain controller, email, html, monitoring, powershell, powershell gallery, powershell module
Active Directory, PowerShell, Windows
May 28, 2018

Working with Windows Events with PowerShell

event viewer, get-events, get-winevent, microsoft, powershell, windows
Active Directory, Exchange, PowerShell, Windows
May 23, 2018

Just different approach to Active Directory Password Notifications

active directory, ad, Password Notifications, passwords, task scheduler, tasks
Active Directory, PowerShell, Windows
May 7, 2018

Write-Color is now published as PowerShell Module

module, powershell, powershell gallery, scripts, write-color
April 29, 2018

Monitoring BlackLists with PowerShell module

exchange, microsoft exchange, monitoring, powershell, powershell module, reporting, smtp, spf
Exchange, PowerShell
April 19, 2018

Get-EventsLibrary.ps1 – Monitoring Events PowerShell

active directory, ad, domain controller, get-events, monitoring, powershell
Active Directory, PowerShell, Windows
April 17, 2018

Monitoring User, Groups Changes in Active Directory – version 0.8

active directory, event logs, events, powershell, script
Active Directory, PowerShell, Windows
April 9, 2018

Write-Color – 2 year Anniversary Edition – v0.3

powershell, scripts, write-color
March 27, 2018

What's new – Event Monitoring v0.7

active directory, ad, dc, domain controller, event id, event monitoring, events, monitoring
Active Directory, PowerShell, Windows
March 27, 2018

Get-EventLog shows wrong maximum size of event logs

event, event id, event logs, event viewer, get-eventlog, get-winevent, win32_nteventlogfile
PowerShell, Windows
March 25, 2018

What's new – Event Monitoring v0.6

active directory, ad monitoring, changelog, event monitoring, events, version
Active Directory, PowerShell, Windows
March 23, 2018

Granting “Logon as a batch job” permission for Task Scheduler to work

batch job, event id 4625, events, task, task scheduler
March 23, 2018

Monitoring Active Directory Changes on Users and Groups with PowerShell

active directory, event id, event log, event viewer, events, group membership, groups, monitoring, powershell, security events, user changes
Active Directory, PowerShell, Windows
March 15, 2018

Microsoft Outlook – Cannot start Microsoft Outlook. Cannot open the Outlook window.

adfs, microsoft, microsoft outlook, outlook, outlook.exe, rds, remote desktop services, windows server, windows server 2016
Exchange, Office 365, Outlook, Windows
March 4, 2018

Add Google Chrome mobile bookmarks into Bookmarks Bar

bookmarks, bookmarks bar, browser, google chrome, mobile bookmarks, mobile browser
iOS, Windows
February 16, 2018

Sync any folder in Windows to OneDrive

cloud, google drive, hard links, microsoft windows, mklink, office 365, onedrive, onedrive for business, soft links, symbolic links, windows, windows 10, windows 7, windows 8, windows 8.1
Office 365, Windows
February 15, 2018

A number of emails failed to be processed by GFI MailEssentials

antispam, exchange 2013, exchange 2016, gfi, gfi antispam, gfi mail essentials
Exchange, GFI, PowerShell, Windows
February 6, 2018

Manage NTFS permissions with Powershell

automation, inheritance, manage permissions, ntfs permissions, permissions, powershell, set-inheritance
PowerShell, Windows
January 26, 2018

Prepare Windows 10 Start Menu for all computers in Active Directory

1703, 1709, gpo, gpresult, gpupdate, group policy, powershell, powershell editor, powershell ise, start menu, windows 10, windows 10 1703, windows 10 1709
Active Directory, PowerShell, Windows
January 24, 2018

Synchronizing Active Directory with External Time Source

active directory, ad, ntp, ntp servers, pdc, powershell, sync, synchronization, time, time configuration, time managment, time source, w32tm
Active Directory, PowerShell
January 17, 2018

Office 365 – address missing from user synchronized from Active Directory

exchange, exchange 2013, exchange online, exchange target address, microsoft office 365, office365,
Active Directory, Azure AD, Exchange, Office 365
December 13, 2017

Remove Protect Object setting from Organizational Unit via PowerShell

active directory, powershell, windows 2012, windows 2012 r2, windows 2016
Active Directory, PowerShell
October 22, 2017

Set service recovery options in PowerShell

microsoft windows, pc monitor, powershell, pulseway, recovery options, sc.exe, services, set-recovery, windows server
October 8, 2017

Azure ADConnect Export Failed – Permission-issue error

active directory, adconnect, azure ad, azure adconnect, error, errors, export failed, office 365, permission-issue, permissions, powershell, windows 2012R2, windows 2016, windows server 2016
Active Directory, Azure AD, Office 365, PowerShell
August 6, 2017

UniFi Controller upgrade on Ubuntu fails during package installation

5.5.19, 5.5.20, apt update, apt upgrade, debian, error, errors, hardware, ubiquiti, ubuntu, unifi
July 12, 2017

Upgrading Exchange 2010 SP3 to Rollup Update 18 fails with blank webpage

cumulative update, errors, exchange, exchange 2010, exchange 2010 sp3, exchange 2013, microsoft exchange 2013, rollup update, updates
June 29, 2017

Office 365 – Emails sent to Office 365 group contain Chinese characters

chinese, email, emails, exchange online, office 365, office 365 groups
Exchange, iOS, Office 365, Outlook
June 11, 2017

Hyper-V – There was an error during move operation

error, hyper-v, microsoft, microsoft windows, windows 2012, windows 2012R2, windows 2016, windows hyper-v
Active Directory, Hyper-V
February 19, 2017

Test-MailFlow status failure on Exchange 2013 with GFI Mail Essentials installed

fail, failure, gfi, gfi mail essentials 20, gfi mailessentials, microsoft exchange 2013, microsoft exchange 2016, test-mailflow
Exchange, GFI, PowerShell
February 2, 2017

The shadow copy provider had an unexpected error while trying to process the specified command.

altaro, error, errors, shadow copy provider, vss, vss error, vssadmin
Altaro, Windows
November 1, 2016

Microsoft Exchange – OU picker is empty when creating new user

error, exchange, exchange 2013, microsoft exchange, microsoft exchange server
October 30, 2016

Hyper-V – Incorrect function when trying to move files

altaro, altaro hyper-v, error, errors, hyper-v, microsoft hyper-v, microsoft hyper-v 2012
Altaro, Hyper-V
October 24, 2016

Sharepoint Online – Sorry, you don't have access to this page

errors, office 365, sharepoint, sharepoint collection administrator, sharepoint online
Office 365, SharePoint
October 23, 2016

Microsoft Exchange 2013 – Room doesn't respond to meeting requests

meeting requests, microsoft exchange, microsoft exchange 2010, microsoft exchange 2013, microsoft exchange 2016, room finder, room resources
October 22, 2016

Suggestions are not provided because most attendees are not available during your working hours

error, exchange 2010, exchange 2013, exchange 2016, outlook 2010, outlook 2013, outlook 2016, room finder
September 14, 2016

iOS 10 – iMessage shows texts instead of effects

accesibility, imessage, iOS 10, reduce motion, texts instead of effects
August 17, 2016

Delegating Active Directory attribute physicalDeliveryOfficeName

active directory, attributes, physicalDeliveryOfficeName, windows 2012, windows 2012 r2
Active Directory, Windows
August 8, 2016

GFI MailEssentials – License counting explained

dag, exchange 2010, exchange 2013, exchange 2016, gfi, gfi antispam, gfi mail essentials 20, license, licenses
Exchange, GFI
August 8, 2016

How to get Windows 10 Anniversary Update outside of Windows Update

iso, media creation tool, microsoft, upgrade tool, windows 10, windows 10 anniversary update
August 8, 2016

Install Windows 10 Anniversary Update on Parallels Desktop for Mac

mac os x, mac os x el capitan, parallels desktop, windows 10, windows 10 anniversary update
Mac OS X, Windows
August 4, 2016

Altaro VM Backup taking lots of space for CBT backups on system drive

altaro, altaro backup, altaro hyper-v, altaro vm backup, backup, hyper-v
Altaro, Hyper-V
August 2, 2016

Office 365 – Adding email addresses based on Email Address Policy

email address policies, emails, exchange 2010, exchange 2013, exchange 2016, exchange online, office 365
Office 365
August 1, 2016

Juniper – Web interface is not responding

firmware, juniper, junos, routers, web interface
July 31, 2016

The program can't start because mfc120ud.dll is missing from your computer

mfc120ud.dll, windows 10, windows 2012, windows 2012 r2, windows 7, windows 8
July 28, 2016

Office 365 – A parameter cannot be found that matches parameter name UserPrincipalName on New-Mailbox

exchange, exchange 2013, exchange 2016, new-mailbox, office 365
Exchange, Office 365
July 17, 2016

Does GFI Mail Essentials 20.1 support full SPF specification

exchange 2010, exchange 2013, exchange 2016, gfi, gfi mail essentials 20, spf, spf rfc, spf specification, spf support
Exchange, GFI
July 11, 2016

GFI – How to stop backscatter spam using GFI Mail Essentials

backscatter, backscatter spam, exchange 2013, gfi, gfi mail essentials 20
Exchange, GFI
July 11, 2016

Office 365 – Migrating mail from Office 365 to Office 365 account using Outlook

exchange 2013, exchange 2016, office 365, outlook 2010, outlook 2013, outlook 2016
Exchange, Office 365
May 26, 2016

DocX – Add nested lists to Microsoft Word document programmatically

c#, csharp, docx, microsoft word, visual studio, visual studio 2013, visual studio 2015
May 26, 2016

DocX – Add horizontal lines to Microsoft Word document programmatically

c sharp, c#, csharp, docx, microsoft word, microsoft word 2013, microsoft word 2016, visual studio, visual studio 2013, visual studio 2016
May 19, 2016

Office 365 – Sharing SharePoint access with External customers

office 365, sharepoint, sharepoint online
May 12, 2016

Migrate List Items from SharePoint 2007 to SharePoint 2013 with Access 2016

access 2013, access 2016, list migration, migration, moss 2007, sharepoint 2007, sharepoint 2013, sharepoint 2016
May 10, 2016

Mac OSX – Install HTML signature in Mail OSX

html, html signature, mac os x, mac os x el capitan, mac os x yosemite, mail
Mac OS X
May 9, 2016

How to change DELL iDRAC password remotely

idrac, idrac 6, idrac 7, password
May 9, 2016

How to encrypt Hyper-V host with Bitlocker on Windows 2012

bitlocker, hyper-v, windows server
Hyper-V, Windows
April 9, 2016

PowerShell – How to format Write-Host with multiple colors

colors, formatting, powershell, scripting, scripts, write-color, write-host
March 21, 2016

Microsoft discontinues Active Directory Replication Status Tool

active directory. replication, microsoft, replication tool, windows
March 16, 2016

GFI – How to move GFI MailEssentials 20 to different IIS website

exchange 2013, exchange 2016, gfi, gfi mail essentials 20, iis, iis 7, mailessentials
Exchange, GFI
March 15, 2016

Mac OS X El Capitan – How to disable autoresizing tabs in Safari 9

autoresizing tabs, el capitan, mac os x, mac os x el capitan, safari 9, simbl
Mac OS X
March 15, 2016

Mac OS X El Capitan – Missing favicons in Safari

easy simbl, el capitan, favicons, mac os x, mac os x el capitan, safari, safari 8, safari 9, safari stand, simbl
Mac OS X
March 6, 2016

Windows Server – SNMP Service Tabs missing

snmp, snmp service, snmp trap, windows, windows server, windows server 2012 r2
PowerShell, Windows
March 5, 2016

DocX – Add image to Microsoft Word document programmatically

c sharp, c#, docx, microsoft visual studio 2013, microsoft visual studio 2015, microsoft word, microsoft word 2010, microsoft word 2013, microsoft word 2016, visual studio
March 4, 2016

Microsoft Exchange – Set address book policy based on group membership

exchange 2010, exchange 2013, exchange 2016, powershell
Exchange, PowerShell
March 3, 2016

Office for Mac 2016 activation problem

office 365, office for mac, office for mac 2016
March 1, 2016

Exchange 2013 – Health Mailbox has been corrupted

exchange, exchange 2013, exchange 2016, heatlh mailboxes, powershell
February 29, 2016

GFI MailEssentials 20 – How to count licenses for users?

exchange, exchange 2013, exchange 2016, gfi, gfi mailessentials, licensing
Exchange, GFI
February 25, 2016

Exchange 2013 – How to add Relay Connector from PowerShell

exchange 2010, exchange 2013, exchange 2016, powershell, receive connector
Exchange, PowerShell
February 25, 2016

Get-AdPermission – The operation couldn't be performed because object couldn't be found

error, exchange, exchange 2013, powershell
Exchange, PowerShell
February 9, 2016

Powershell – Change DNS IP Addresses remotely

dns, powershell, windows, windows servers
PowerShell, Windows
February 1, 2016

How to permanently disable UAC in Windows Server

registry, uac, windows 2012, windows 2012R2
January 28, 2016

Microsoft Exchange – Set Address Book Policy to multiple users based on group membership

exchange, exchange 2013, exchange 2016, powershell
Exchange, PowerShell
January 27, 2016

How to backup FTP to Synology Station

backup, ftp, linux, synology
January 22, 2016

Exchange 2013 – Grant SendOnBehalf permission for Mailbox overwrites Existing permissions

exchange 2010, exchange 2013, exchange 2016, GrantSendOnBehalfTo, powershell, Set-DistributionGroup, Set-Mailbox
Exchange, PowerShell
January 18, 2016

GFI MailEssentials 20 installation stuck on Administrators email address

exchange, exchange 2013, gfi, gfi antispam, gfi installer, gfi mailessentials, gfi mailessentials 20, mail essentials, microsoft exchange
Exchange, GFI
January 14, 2016

Microsoft Exchange 2013 CU11 Readiness Checks Error

cu11, exchange 2013, exchange 2013 cu11, exchange cu11, exchange cumulative update, exchange error, microsoft exchange
November 26, 2015

Microsoft Exchange – Connecting to remote server failed with the following error message

error, exchange, microsoft exchange, microsoft exchange 2007, microsoft exchange 2010, microsoft exchange 2013, microsoft exchange 2016, microsoft exchange server, powershell, ssl certificate
November 20, 2015

DocX – Password protect Microsoft Word document programmatically

c sharp, c#, csharp, docx, microsoft word, microsoft word 2013, password protected, visual studio, visual studio 2013, visual studio 2015
November 20, 2015

PowerShell – How to find users without default quota set on Microsoft Exchange

default quota, ecp, exchange, exchange 2013, exchange 2016, mailboxes, microsoft exchange, powershell
November 16, 2015

Microsoft Word – How to remove last section break

add new section, final section break, insert new section, microsoft office, microsoft office 2013, microsoft word, microsoft word 2013, section breaks, sections, word, working with sections
November 15, 2015

Windows Server – How to change SHA1 to SHA256, SHA384 or SHA512 options in Certification Authority

ca, certificate templates, certification authority, cnghashalgorithm, csp, key size, key usage, microsoft enhanced rsa and aes cryptographic provider, sha256, sha512, windows 2008, windows 2008R2, windows 2012R2, windows ca
October 30, 2015

Windows 10 – How to permanently disable Windows Defender

Windows 10 was released by Microsoft on July 29th of 2015. Even though several months has already passed, millions of users using it, it's not entirely prime time ready. One of the features that is pretty annoying is Windows Defender which seems to be incompatible with some applications (namely VPN) and causes CPU spikes up to […]
registry, registry editor, windows 10, windows defender, windows defender disable, windows defender enable
October 28, 2015

PowerShell – How to check response code from a website

powershell, response codes, scripts, website
October 22, 2015

Exchange 2013 – Exchange Management Shell (EMS) loading very slow

ems, exchange, exchange 2010, exchange 2013, exchange 2016, exchange management shell, microsoft exchange, microsoft exchange server
October 19, 2015

Mac OS X El Capitan – How to get SIMBL working after upgrade

easy simbl, mac os x, mac os x el capitan, safari, safari 8, safari 9, simbl
Mac OS X
October 19, 2015

Mac OS X El Capitan – How to manage SIP (System Integrity Protection)

el capitan, mac os x, mac os x el capitan, sip, system integrity protection
Mac OS X
October 3, 2015

DocX – A short tutorial for beginners HelloWorld()

Beginning your coding story with DocX is very easy and intuitive even for beginners. Below you can find a quick overview on how to create a simple HelloWorld document with use of DocX. In a series of screenshots, followed by code example you can easily see how easy it is to create a simple .DOCX document.
c#, docx, helloworld, microsoft word, microsoft word 2013, tutorial, word
October 2, 2015

Exchange 2016 – Microsoft has released RTM version of Exchange

exchange, exchange 2016, exchange 2016 rtm, exchange server 2016, exchange server 2016 rtm
September 21, 2015

Exchange 2013 – TooManyMissingItems or TooManyBadItems

During Microsoft Exchange 2010 to Exchange 2013 Migration one of the steps is to migrated all mailboxes from old servers to new servers. Unfortunately with large number of mailboxes a lot of possible things can go wrong during New-MoveRequest.
exchange 2013, exchange 2016, exchange error, exchange mailbox move, exchange migration, exchange server, mailbox move, microsoft exchange, microsoft exchange server, toomanybaditems, toomanymissingitems
September 16, 2015

Exchange Server 2010 – Service Pack 3 Update Rollup 11 (SP3 RU11) Released

On September 15th Microsoft has released Exchange Server 2010 Service Pack 3 Update Rollup 11 (SP3 RU11). Rollup Update 11 contains the latest set of fixes. Exchange Server 2010 Service Pack 3 Update Rollup 11, is the minimum version of Exchange Server 2010 which will be supported in a coexistence deployment with Exchange Server 2016.
exchange 2010, exchange 2010 RU11, exchange 2010 sp3, exchange 2010 sp3 ru 11, exchange server 2010, microsoft exchange, microsoft exchange server, sp3 ru11
September 16, 2015

Exchange Server 2013 – Cumulative Update 10 (CU10) Released

On September 15th Microsoft has released Exchange Server 2013 CU10. Cumulative Update 10 contains the latest set of fixes and builds upon Exchange Server 2013 Cumulative Update 9. As a reminder CU releases are full Microsoft Exchange products allowing new installations.
cumulative update, exchange 2013, exchange 2013 cu10, exchange 2013 cumulative update, exchange server 2013, exchange server 2013 cu 10, exchange updates, exchange upgrade
September 15, 2015

Exchange 2013 CU9 KB3087126 installation goes bad

After installing CU9 on our customers systems and rebooting Windows we usually check for any additional updates that may come up after new installation. Updates actually came up with Security Update for Exchange Server 2013 CU9 (KB3087126). If you trust Microsoft like us, and you always want your systems up to date, you instantly click […]
exchange 2013, exchange 2013 cu9, exchange 2013 cu9 kb3087126, exchange server 2013, kb3087126
September 15, 2015

Exchange 2013 Upgrade – Service ‘WMSVC' failed to reach status ‘Running' on this server

One of the quarterly tasks that every Exchange administrator should do is to install new Cumulative Update for their Exchange 2013 server. While most of the time such upgrades are painless sometimes you reach a problem.  In our case Microsoft.Exchange.Configuration.Tasks.ServiceDidNotReachStatusException: Service ‘WMSVC' failed to reach status ‘Running' on this server. was enough to stop us for even […]
exchange, exchange 2013, exchange server, exchange upgrade
September 12, 2015

Adding user to local Administrators group in multiple languages

Everyone now and then, there comes a moment you need to add a user into Administrators group on each computer in domain. It's not a big problem, if all your systems are in one language, or if you have to just add one user to multiple systems which you can easily accomplish with Group Policies. […]
administrators, powershell, scripts
August 10, 2015

How to detect rogue DHCP server?

Recently one of our Clients complained that printers are not printing and are shown offline on computers. Since the client has Windows as a print server we've verified the server functionality only to find out it has IP in the wrong DHCP scope. We immediately suspected there must be a rogue DHCP server in our network causing havoc. 
detect dhcp, dhcp server, microsoft dhcp, rogue dhcp server
August 10, 2015

Environment Variables in Group Policy preferences

Today our customer asked us to configure a group policy for multiple users on one of the servers. While standard GPO is something most administrators do as a daily job, sometimes one need to use an environment variables instead of hardcoded values.
gpo environment, gpo preferences, group policy, group policy environment
August 5, 2015

Quickly test multiple computers availability

Sometimes we need to quickly test a bunch of servers for ping responsiveness, dns availability and rdp connectivity. Following PowerShell script can quickly scan multiple servers and provide an easy, consistent way overtime.
ping, poweshell, rdp, scripts
August 5, 2015

Quickly test multiple proxies with Powershell

Recently we were tasked with testing connectivity with Good For Enterprise servers. Since the environment is highly secure it requires proxy to go out. As we had to test connectivity on over 40 servers for multiple proxies and multiple URL's we had to find a simple, yet efficient way to do this.
powershell, proxy, proxy powershell, proxy telnet, proxy test, scripts, telnet
June 14, 2015

Exchange 2013 integration with SharePoint doesn't work

The steps to integrate new Microsoft Exchange 2013 with SharePoint 2013 are fairly simple. You just need to follow Microsoft Configure site mailboxes in SharePoint Server 2013 recommendations and you're done. As life turns out it's not always the case.
exchange, exchange 2013, exchange error, exchange server, integration, microsoft exchange, sharepoint, sharepoint 2013, sharepoint integration
Exchange, SharePoint
June 5, 2015

Mac OS X Yosemite – How to disable autoresizing tabs in Safari 8

autoresizing tabs, cosytabs, easysimbl, mac os x, mac os x el capitan, mac os x yosemite, safari, safari 9
Mac OS X
May 25, 2015

Exchange 2010 / 2013 meetings with rooms stopped working

Our client had a little problem today where after patching of all Exchange 2010 / 2013 servers users started noticing weird issues with Meeting Requests and Room Mailboxes in particular. 
exchange 2010, exchange 2013, meetings, resource mailboxes
May 22, 2015

Active Sync doesn't work for some users on Exchange 2010/2013

Recently our team had a case where some users started complaining that they cannot configure Windows Phone / Android 5 devices to connect to mixed environment Exchange 2010 with Exchange 2013. Exactly same accounts didn't had problems to connect on other devices with iOS or older.
active sync, active sync problem, exchange 2010, exchange 2013, msExchActiveSyncDevice, msExchActiveSyncDevices
April 3, 2015

Mac OS X Yosemite – Missing favicons in Safari

Ever since Apple released OS X Yosemite, and subsequently OS X El Capitan with redesigned Safari interface a lot of people were asking Apple for bringing favicons on the tabs back. While one cannot expect Apple to fix it any time soon (at least not until next OS X version) there is now a solution that was […]
el capitan, evotec, favicon, favicons, glimps, mac os x, safari, safari 8, safari 9, simbl, yosemite
Mac OS X
March 22, 2015

The Microsoft Exchange Replication service does not appear to be running on Exchange Server

When trying to move a mailbox database from one Exchange 2010 DAG server to another there’s an error displayed: The Microsoft Exchange Replication service does not appear to be running on “PassiveMailboxServer”. Make sure that the server is operating, and that the services can be queried remotely.
dag, evotec, exchange 2010, exchange 2013, exchange dag, exchange replication
March 22, 2015

Exchange 2013 powershell errors out, and Exchange 2013 ECP doesn't work correctly

event id, events, evotec, exchange 2013, https, microsoft exchange, powershell, problems
March 14, 2015

Exchange 2013 SP1 – The fully qualified domain name for node ‘DAG-EX2013' could not be found.

During move of database to a different Exchange 2013 server an error is displayed: “The fully qualified domain name for node ‘DAG-EX2013‘ could not be found. An Active Manager operation failed with a transient error. Please retry the operation. Error: The fully qualified domain name for node ‘<Your DAG Name>’ could not be found.”
dag, dag problem, evotec, exchange 2013, exchange 2013 dag, exchange 2013 sp1, microsoft, microsoft exchange server
March 4, 2015

Recovering a file from linux partition stored on VHDX on Windows 8

altaro hyper-v, backup, evotec, ext2read, hyper-v, linux, microsoft hyper-v 2012, restore
Hyper-V, Linux
March 4, 2015

Microsoft Exchange – Meeting requests keeps updating not invited person

One of our clients received an recurring meeting request in Outlook 2010 via Microsoft Exchange 2007, which he then auto forwarded thru a global rule to his private email and accepted it on private account. Now the user claims he keeps on getting updates to his private account even though he has already disabled the global rule […]
evotec, exchange, exchange 2010, exchange 2013, meeting requests, outlook 2007, outlook 2010, outlook 2013
March 3, 2015

Windows – Killing remotely hanging RDP session

You can't log in to RDP session on Windows 2003/Windows 2003 R2 server because you get a message that all sessions are taken, or you simply want to cleanup your RDP sessions from Windows 2008-2012R2 servers.
evotec, microsoft, rdp, windows 2003, windows 2003R2, windows 2008, windows 2008R2, windows 2012, windows 2012R2, windows servers
Load More

This is a unique website which will require a more modern browser to work! Please upgrade today!